🟢 Node.js中的MCP服务器
在Node.js中构建和运行自定义MCP服务器只需2分钟⏱️
概述 · 特性 · 安装 · MCP检验员测试 · 设置测试环境变量 · 与Cursor AI集成 · 在光标(代理模式)下使用MCP工具 · 代码概述 · 参考文献和资源 · 许可证
概述
MCP(模型上下文协议) 是一个框架,允许您将自定义工具集成到人工智能辅助开发环境中,如Cursor AI。MCP服务器公开功能(如数据检索或代码分析),以便基于LLM的IDE可以按需调用这些工具。在中了解有关MCP的更多信息 模型上下文协议介绍.
这个项目演示了一个使用Node.js在JavaScript中实现的MCP服务器。它定义了两个工具: 添加,它接受两个数字输入并返回它们的总和,以及 getApiKey 的,从 API_KEY 环境变量。它还提供预定义的提示 add_numbers 这允许AI模型推断添加工具的使用情况。
需求
- Node.js: 需要版本20或更高版本。
特性
- MCP集成: 将工具功能暴露给基于LLM的IDE。
- 添加工具: 接受两个数字参数并返回它们的总和。
- MCP提示: 提供预定义的提示(“add_numbers”),允许AI模型推断工具使用情况。
- 环境变量检索: 演示如何从配置文件加载示例环境变量。
- 输入验证: 用途 萨德 用于模式验证。
- 标准I/O传输: 通过以下方式连接
StdioServerTransport用于与开发环境集成。
安装
- 克隆存储库
git clone
cd - 再进行
您可以通过以下两种方式之一安装项目依赖关系:
选项1:使用现有 package.json
只需运行:
npm install选项2:手动安装依赖项
如果愿意,请删除现有 package.json 并手动安装所需的软件包:
npm install @modelcontextprotocol/sdk zod然后,更新新生成的 package.json 文件中包含以下行,该行启用ES模块并添加mcp-inspector命令:
"type": "module",
"scripts": {
"inspector": "npx @modelcontextprotocol/inspector node ./mcp-server.js"
}MCP检验员测试
MCP检查器是一个调试工具,它允许您在与IDE集成之前以交互方式测试服务器的工具。
选项1:直接使用npx运行
npx @modelcontextprotocol/inspector node ./mcp-server.js选项2:使用npm脚本
npm run inspector这将:
- 启动MCP检查器服务器
- 打开浏览器进入检查器界面
- 允许您测试工具、资源和提示
在浏览器上打开MCP服务器检查器: http://localhost:6274/
设置测试环境变量
为了测试 getApiKey 具有不同API键的工具,您可以在运行检查器之前设置环境变量:
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 inspectorWindows(命令提示符):
# Set for current session
set API_KEY=your-test-key
npm run inspectorWindows(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与Cursor AI集成
要将此MCP服务器与Cursor IDE集成,您需要通过Cursor的设置界面添加配置:
- 打开光标IDE
- 首选 设置 → 工具和集成
- 点击 添加自定义MCP服务器
- 添加以下配置
重要提示: 如果您已经配置了其他MCP服务器,请不要覆盖整个配置。相反,添加 "MCP Server Boilerplate" 反对现有 "mcpServers" 对象。
示例配置文件: 此项目包括一个示例配置文件,位于 ./cursor/mcp.json 你可以参考或复制。
配置结构
以下是您需要添加的配置:
Linux/macOS示例:
{
"MCP Server Boilerplate": {
"command": "node",
"args": ["/home/john/mcp-server-node/mcp-server.js"],
"env": {
"API_KEY": "abc-1234567890"
}
}
}Windows示例:
{
"MCP Server Boilerplate": {
"command": "node",
"args": ["C:\\Users\\john\\mcp-server-node\\mcp-server.js"],
"env": {
"API_KEY": "abc-1234567890"
}
}
}如果您配置了现有的MCP服务器,则完整配置可能如下:
{
"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"
}
}
}
}配置参数
- MCP服务器主板:\
这是服务器配置的关键。你可以随心所欲地命名它。
- 命令:\
运行服务器的Node.js可执行文件。您可以使用以下任一方式:
- "node" (如果Node.js在你的PATH中) - Node.js可执行文件的完整路径(如果需要)
找到你的Node.js路径:
Linux/macOS:
which node
# Example output: /home/john/.nvm/versions/node/v20.13.1/bin/nodeWindows(命令提示符):
where node
# Example output: C:\Program Files\nodejs\node.exeWindows(PowerShell):
Get-Command node
# Example output: C:\Program Files\nodejs\node.exe- args:\
包含MCP服务器文件绝对路径的数组。
Linux/macOS示例:
["/home/john/mcp-server-node/mcp-server.js"]Windows示例:
["C:\\Users\\john\\mcp-server-node\\mcp-server.js"]- 环境: (可选)\
为MCP服务器进程定义环境变量。在这个例子中 API_KEY 设置为 "abc-1234567890"。根据您的环境需要调整此值。
代码概述
该项目包括以下关键部分:
- MCP服务器初始化:\
MCP服务器使用以下方式实例化 McpServer 从MCP SDK发送并通过连接 StdioServerTransport.
- 工具定义:
- 添加:\ 使用接受两个数字的Zod模式定义(a 和 b)并将它们的总和作为文本返回。 - getApiKey:\ 从环境变量中检索API键 API_KEY 并将其作为文本返回。
- 提示定义:
- add_numbers:\ 一个预定义的提示,允许AI模型推断添加工具的使用情况。
重要提示:不需要为工具定义提示。这个例子只是演示了提示的一种功能,允许AI模型根据您的输入推断使用哪个工具。当人工智能确定任务需要工具时,它也可以直接使用这些工具。
在光标(代理模式)下使用MCP工具
将MCP服务器集成到Cursor IDE中并启用代理模式后,您可以通过多种方式使用这些工具:
添加工具使用
方法1:自然语言提示 只需使用自然语言提示,如:
add 3 and 5或
what is 7 plus 12?方法2:基于提示的工具调用 在聊天中键入以下提示:
/add_numbers键入此提示后按Enter键时,Cursor将自动:
- 认识到你想使用
add节点服务器中的工具 - 显示GUI提示,询问两个数字参数
- AI模型将推断出它需要使用
add计算结果的工具
加法工具的参数:
- 参数
a:要添加的第一个数字 - 参数
b:要添加的第二个数字 - 退货:两个数字的总和作为文本
API关键工具使用
对于 getApiKey 工具,您可以使用:
what is my API key?或
get my API keyAI代理将根据您的请求自动推断要使用的适当工具。
参考文献和资源
许可证
该项目根据 MIT许可证.
