Sandbox
@lucianoayres/mcp-server-node

Cursor MCP server with custom tools and prompt

This project shows how to build a small MCP server in Node.js that Cursor can talk to. It wires up standard input/output transport, validates inputs with Zod, and exposes simple actions the agent can call when you ask for them. The server also includes a sample prompt and an example of reading an environment variable from the host config.

75 stars19 forksJavaScriptUpdated 1y ago
Who it's for

Builders who want Cursor to call custom local tools from an MCP server.

What it delivers

You can give Cursor reusable local tools and prompts instead of repeating setup by hand.

What it does

Addition tool

Adds two numeric inputs, `a` and `b`, and returns the sum as text.

Environment variable lookup

Reads `API_KEY` from the environment and returns it through the `getApiKey` tool.

Custom prompt

Provides the `add_numbers` prompt so Cursor can infer when to use the addition tool.

Input validation

Uses Zod schemas to validate tool inputs before the server runs them.

Stdio transport

Connects with `StdioServerTransport` so the server works as a local MCP process.

Cursor config example

Includes a sample MCP configuration file at `cursor/mcp.json` for Cursor setup.

How to get it

  1. 1Clone the Repository
    git clone <repository_url>
    cd <repository_directory>
  2. 2Simply run
    npm install
  3. 3If you prefer, delete the existing package.json and install the required packages manually
    npm install @modelcontextprotocol/sdk zod
  4. 4Method 1: Natural Language Prompt Simply use a natural language prompt like
    add 3 and 5
  5. 5or
    what is 7 plus 12?
  6. 6Method 2: Prompt-Based Tool Invocation Type the following prompt in the chat
    /add_numbers

README

🟢 MCP Server in Node.js

MCP Server in Node.js banner

Build and run a custom MCP Server in Node.js in just 2 minutes ⏱️

Overview · Features · Installation · Testing with MCP Inspector · Setting Environment Variables for Testing · Integrating with Cursor AI · Using the MCP Tool in Cursor (Agent Mode) · Code Overview · References & Resources · License

Overview

MCP (Model Context Protocol) is a framework that allows you to integrate custom tools into AI-assisted development environments—such as Cursor AI. MCP servers expose functionality (like data retrieval or code analysis) so that an LLM-based IDE can call these tools on demand. Learn more about MCP in the Model Context Protocol Introduction.

This project demonstrates an MCP server implemented in JavaScript using Node.js. It defines two tools: add, which takes two numeric inputs and returns their sum, and getApiKey, which retrieves the API key from the API_KEY environment variable. It also provides a predefined prompt add_numbers that allows AI models to infer the usage of the addition tool.

Requirements

  • Node.js: Version 20 or higher is required.

Features

  • MCP Integration: Exposes tool functionality to LLM-based IDEs.
  • Addition Tool: Accepts two numeric parameters and returns their sum.
  • MCP Prompt: Provides a predefined prompt ("add_numbers") that allow AI models to infer tool usage.
  • Env Var Retrieval: Demonstrates how to load an example environment variable from the configuration file.
  • Input Validation: Uses Zod for schema validation.
  • Standard I/O Transport: Connects via StdioServerTransport for integration with development environments.

Installation

  1. Clone the Repository

    git clone <repository_url>
    cd <repository_directory>
    
  2. Install Dependencies

    You can install the project dependencies in one of two ways:

    Option 1: Install using the existing package.json

    Simply run:

    npm install
    

    Option 2: Install dependencies manually

    If you prefer, delete the existing package.json and install the required packages manually:

    npm install @modelcontextprotocol/sdk zod
    

    Then, update the newly generated package.json file to include the following lines, which enables ES Modules and adds the mcp inspector command:

    "type": "module",
    "scripts": {
     "inspector": "npx @modelcontextprotocol/inspector node ./mcp-server.js"
    }
    

Testing with MCP Inspector

The MCP Inspector is a debugging tool that lets you test your server's tools interactively before integrating with an IDE.

Option 1: Run directly with npx

npx @modelcontextprotocol/inspector node ./mcp-server.js

Option 2: Use the npm script

npm run inspector

This will:

  1. Start the MCP inspector server
  2. Open your browser to the inspector interface
  3. Allow you to test tools, resources, and prompts

Open the MCP Server Inspector on the browser: http://localhost:6274/

Setting Environment Variables for Testing

To test the getApiKey tool with different API keys, you can set environment variables before running the inspector:

Linux/macOS (Bash/Zsh):

# Temporary (current session only)
export API_KEY="your-test-key"
npm run inspector

# Or set for single command
API_KEY="your-test-key" npm run inspector

Windows (Command Prompt):

# Set for current session
set API_KEY=your-test-key
npm run inspector

Windows (PowerShell):

# Set for current session
$env:API_KEY="your-test-key"
npm run inspector

# Or set for single command
$env:API_KEY="your-test-key"; npm run inspector

Integrating with Cursor AI

To integrate this MCP server with Cursor IDE, you need to add the configuration through Cursor's settings interface:

  1. Open Cursor IDE
  2. Go to SettingsTools & Integrations
  3. Click on Add Custom MCP Server
  4. Add the configuration below

Important: If you already have other MCP servers configured, don't overwrite the entire configuration. Instead, add the "MCP Server Boilerplate" object to the existing "mcpServers" object.

Sample Configuration File: This project includes a sample configuration file at ./cursor/mcp.json that you can reference or copy from.

Configuration Structure

Below is the configuration you need to add:

Linux/macOS example:

{
  "MCP Server Boilerplate": {
    "command": "node",
    "args": ["/home/john/mcp-server-node/mcp-server.js"],
    "env": {
      "API_KEY": "abc-1234567890"
    }
  }
}

Windows example:

{
  "MCP Server Boilerplate": {
    "command": "node",
    "args": ["C:\\Users\\john\\mcp-server-node\\mcp-server.js"],
    "env": {
      "API_KEY": "abc-1234567890"
    }
  }
}

If you have existing MCP servers configured, your full configuration might look like this:

{
  "mcpServers": {
    "existing-server": {
      "command": "python",
      "args": ["/path/to/existing/server.py"]
    },
    "MCP Server Boilerplate": {
      "command": "node",
      "args": ["/home/john/mcp-server-node/mcp-server.js"],
      "env": {
        "API_KEY": "abc-1234567890"
      }
    }
  }
}

Configuration Parameters

  • MCP Server Boilerplate:
    This is the key for your server configuration. You can name it as you like.

  • command:
    The Node.js executable to run your server. You can use either:

    • "node" (if Node.js is in your PATH)
    • The full path to your Node.js executable (if needed)

    Finding your Node.js path:

    Linux/macOS:

    which node
    # Example output: /home/john/.nvm/versions/node/v20.13.1/bin/node
    

    Windows (Command Prompt):

    where node
    # Example output: C:\Program Files\nodejs\node.exe
    

    Windows (PowerShell):

    Get-Command node
    # Example output: C:\Program Files\nodejs\node.exe
    
  • args:
    An array containing the absolute path to your MCP server file.

    Linux/macOS examples:

    ["/home/john/mcp-server-node/mcp-server.js"]
    

    Windows examples:

    ["C:\\Users\\john\\mcp-server-node\\mcp-server.js"]
    
  • env: (Optional)
    Defines environment variables for your MCP server process. In this example, the API_KEY is set to "abc-1234567890". Adjust this value as needed for your environment.

Code Overview

The project comprises the following key parts:

  • MCP Server Initialization:
    The MCP server is instantiated using McpServer from the MCP SDK and connected via StdioServerTransport.

  • Tool Definitions:

    • add:
      Defined with a Zod schema that accepts two numbers (a and b) and returns their sum as text.
    • getApiKey:
      Retrieves the API key from the environment variable API_KEY and returns it as text.
  • Prompt Definition:

    • add_numbers:
      A predefined prompt that allows AI models to infer the usage of the addition tool.

Important Note: It's not required to have a prompt defined for a tool. This example just demonstrates one of the capabilities of prompts, allowing the AI model to infer which tool to use based on your input. The AI can also use tools directly when it determines they're needed for a task.

Using the MCP Tool in Cursor (Agent Mode)

With the MCP server integrated into Cursor IDE and with Agent mode enabled, you can use the tools in several ways:

Addition Tool Usage

Method 1: Natural Language Prompt Simply use a natural language prompt like:

add 3 and 5

or

what is 7 plus 12?

Method 2: Prompt-Based Tool Invocation Type the following prompt in the chat:

/add_numbers

When you press Enter after typing this prompt, Cursor will automatically:

  1. Recognize that you want to use the add tool from the Node Server
  2. Display a GUI prompt asking for the two number parameters
  3. The AI model will infer that it needs to use the add tool to calculate the result

Parameters for the Addition Tool:

  • Parameter a: First number to add
  • Parameter b: Second number to add
  • Returns: The sum of the two numbers as text

API Key Tool Usage

For the getApiKey tool, you can use:

what is my API key?

or

get my API key

The AI agent will automatically infer the appropriate tool to use based on your request.

References & Resources

License

This project is licensed under the MIT License.

Files in the repo

Repository payload6 top-level entries
  • .cursor
  • .gitignore
  • LICENSE
  • mcp-server.js
  • package.json
  • README.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k
t8y2/dbxConnectors

20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。

19k