用途:构建 MCP 服务器,为 LLM 客户端提供设计良好的工具、资源与提示,基于官方开源 SDK(均为 MIT 许可)。适用于“为 X 构建 MCP 服务器”“把某 API 包装成 MCP 工具”“将自定义后端接入 Claude Code 或 MCP 客户端”,以及设计工具 schema、选择传输方式或调试 MCP 服务器。
Python(FastMCP,多数服务器推荐):安装 pip install "mcp[cli]"。核心模式为 from mcp.server.fastmcp import FastMCP,创建 FastMCP("my-server"),用 @mcp.tool() 装饰函数,docstring 即面向模型的描述,最后 mcp.run()(默认 stdio 传输)。运行后注册到客户端:claude mcp add my-server -- python /abs/path/to/server.py。
Node / TypeScript:安装 npm install @modelcontextprotocol/sdk zod,从 @modelcontextprotocol/sdk/server/mcp.js 引入 McpServer,从 stdio.js 引入 StdioServerTransport,用 zod 定义参数,server.tool(...) 注册工具,再 connect 到 StdioServerTransport。
传输方式:stdio 为本地客户端(Claude Code、桌面端)默认,客户端启动进程并通过 stdin/stdout 通信,切勿向 stdout 写日志,应使用 stderr;streamable-http 用于远程/托管服务器,Python 中为 mcp.run(transport="streamable-http")。
工具设计最佳实践:按动作命名工具并写精确的 docstring/描述,这是模型判断何时调用的依据;参数保持有类型且最小化,用枚举/约束让错误调用快速失败(FastMCP 从类型提示推导 JSON schema,TS SDK 用 zod);返回简洁结构化文本,避免输出巨大负载;尽量使工具幂等并校验输入;一个工具只做一件事,优先多个聚焦工具而非单个巨型工具。
限制与注意:可用 MCP Inspector(npx @modelcontextprotocol/inspector)本地测试;stdio 服务器中任何非协议流量的 stdout 输出都会破坏客户端。资料未提供收费、价格或平台支持等更多信息。