找回密码
 立即注册
首页 业界区 业界 【入门】使用Node.js开发一个MCP服务器

【入门】使用Node.js开发一个MCP服务器

步雪卉 昨天 23:30
介绍

一个小小后端码农,研究了一下午,终于搞明白怎么开发一个nodeJs的MCP服务器,特写成一篇粗略的博客,供大家参考。
MCP 是什么?

MCP(Model Control Protocol)是一个标准化接口协议,用于定义AI工具的功能和参数格式。它允许AI以标准方式调用各种工具,例如通过定义参数格式(如城市名称)来获取城市天气信息。当用户请求查询北京天气时,AI会按照MCP标准参数格式组装参数,调用MCP服务器执行相应功能,并处理返回结果。
开发MCP服务器(Node.js方式)

提示:首先需要下载安装nodeJs
下边我将带你开发一个简单的MCP服务器:
文件结构

1.png

package.json 文件:
  1. {
  2.   "name": "mcp-test",
  3.   "version": "1.0.0",
  4.   "description": "",
  5.   "main": "index.js",
  6.   "scripts": {
  7.     "test": "echo "Error: no test specified" && exit 1"
  8.   },
  9.   "keywords": [],
  10.   "author": "",
  11.   "license": "ISC",
  12.   "dependencies": {
  13.     "@modelcontextprotocol/sdk": "^1.20.2",
  14.     "zod": "^3.23.8"
  15.   },
  16.   "type": "module"
  17. }
复制代码
demo-server.js:
  1. #!/usr/bin/env node
  2. import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
  3. import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
  4. import { z } from "zod";
  5. const server = new McpServer({
  6.     name: "demo_service",
  7.     version: "1.0.0"
  8. });
  9. server.tool(
  10.     "say_hello",
  11.     {
  12.         needShowMeText: z.string().describe("想要展示的话")
  13.     },
  14.     async ({ needShowMeText }) => {
  15.         try {
  16.             // 返回成功响应
  17.             return {
  18.                 content: [{ type: "text", text: 'Hello =>' + needShowMeText }]
  19.             };
  20.         } catch (error) {
  21.             // 错误处理
  22.             return {
  23.                 content: [{ type: "text", text: `失败: ${error.message}` }],
  24.                 isError: true
  25.             };
  26.         }
  27.     }
  28. );
  29. async function main() {
  30.     try {
  31.         console.log("MCP服务器启动中...");
  32.         const transport = new StdioServerTransport();
  33.         await server.connect(transport);
  34.         console.log("MCP服务器已启动并等待连接");
  35.     } catch (error) {
  36.         console.error("启动服务器时出错:", error);
  37.         process.exit(1);
  38.     }
  39. }
  40. main();
复制代码
在根目录下,cmd 命令框输入 npm install 进行安装相关依赖:
2.png

使用node ./dist/demo-service.js 测试是否可以启动成功
3.png

使用官方工具测试

使用 mcp-inspector 进行测试,打开新终端输入以下命令:
  1. npx @modelcontextprotocol/inspector
复制代码
4.png

按图中步骤输入各项参数:
5.png

6.png

看到Tool Result: Success便成功了
Qoder、IDEA等代码编辑器集成MCP服务器

打开 文件 -> 首选项 -> Qoder 设置 -> MCP服务 -> +添加
  1. {
  2.     "mcpServers": {
  3.         "mcp本地测试3": {
  4.             "name": "mcp本地测试3",
  5.             "command": "node",
  6.             "args": [
  7.                 "G:\\Dev\\Code\\TestSource\\mcp-test\\dist\\demo-server.js"
  8.             ]
  9.         }
  10.     }
  11. }
复制代码
7.png

这样MCP安装便成功了!
使用

新建会话窗口,输入 使用 say_hello 工具告诉我world
8.png

总结

MCP 有什么作用呢?我个人理解的是它可以更加精准控制程序的中间执行过程,准确地获取数据,然后使用AI能力进行分析。比如,我们需要获取北京今天的天气,如果没有MCP服务器,服务器可能会从海量的网页中寻找数据/接口,我们无法控制最终获取的结果。如果我们不能控制数据源的准确性,那么后续的分析过程也没有任何意义。
MCP服务就是封装了一个个接口的服务器,我们可以从接口获取我们想要的准确数据,然后通过AI的理解能力,幻化出各种各样的效果,MCP服务器开发过程,就是按MCP标准封装一个个接口。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册