最近,在 AI 开发领域,MCP (Model Context Protocol) 是越来越火了!
前几天,我我也开发了一款 Code Runner MCP Server:
Code Runner MCP Server ,支持运行 39 种编程语言!
今天,我就把我开发 MCP Server 的经验和遇到的一些坑,分享给大家!
以 Node.js 为例,从零开始开发一个 MCP Server !
从 https://nodejs.org/en 安装 LTS 版的 Node.js 即可。
在命令行运行下面命令,安装 Yeoman Generator for MCP Server:
npm install -g yo generator-mcp
在命令行运行下面命令,创建 MCP Server 项目:
yo mcp -n 'Weather MCP Server'
generator-mcp 已经把全部需要的代码框架和依赖都生成和安装了。
你可以按需修改代码,或者利用已有的代码直接进行调试和测试。
generator-mcp 已经配置好了 VS Code 的调试配置文件:launch.json 和 tasks.json
在 VS Code 中打开项目,按 F5 就能一键启动调试!
稍等片刻,浏览器自动打开 MCP Inspector 后,就能进行测试了!
此外,你还可以在其他支持 MCP 的客户端中,测试你的 MCP Server 。
generator-mcp 已经默认创建了 .vscode\mcp.json 文件,这个文件定义了在 VS Code 运行的 MCP Server 。
注:需从 https://code.visualstudio.com/insiders/ 下载最新版本的 VS Code Insiders 。
安装好最新的 VS Code Insiders 版本,点击 “start” 按钮,就能在 VS Code Insiders 的 Agent Mode 调用你的 MCP Server 啦!
测试完成后,就可以把你的 MCP Server 发布到 npm registry 或者 Docker Hub 了!
关于 Dockerfile 怎么写,以及如何在 VS Code 、Claude Desktop 等客户端配置 MCP Server ,还有 npx 可能在 Windows 上运行失败的问题,都可以参考 Code Runner MCP Server 的 README 和源代码,完全开源:
1
z7356995 2 天前
谢谢,刚好想学这方面知识
|
![]() |
2
lqw3030 2 天前
请教下过程中是如何解决“大模型有概率不调用 mcp 服务”的问题
|
![]() |
3
Tacks 2 天前
@lqw3030 参考 openai agents sdk 里面有一个参数应该可以满足 tool_choice: "required" 设置强制模型在聊天完成和助手 API 中调用您提供的函数之一(
|
![]() |
4
formulahendry OP ![]() @lqw3030 我觉得目前可能没有终极方案,需要开发者、用户、MCP Host 三方协调吧:
* MCP Server 的开发者:把 description 尽量写好,颗粒度分明 * MCP Host/Client:提供 UI 入口,用户在输入 prompt 的时候,可以选择引用不同的 Tool 。比如 VS Code 的 Add Context 可以手动选 Tool * 用户:写 Prompt 的时候,可以加上 “use mcp-server-code-runner tool” 之类的话术 |
5
OBJECTION 1 天前
这种咋部署到 docker ? 因为目前大多都是 stdio 的形式把 docker 的话 不就直接隔离了吗? 还是说通过本地的 socket? 比如 inspect 的界面那样?
|
![]() |
6
formulahendry OP @OBJECTION 部署到 docker 的话,那 Code Runner 的 runtime 就是与 host machine 隔离的
|