ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

如何基于mcp-servers开发自己的MCP服务器:TypeScript与Python SDK实战教程

如何基于mcp-servers开发自己的MCP服务器:TypeScript与Python SDK实战教程 如何基于mcp-servers开发自己的MCP服务器TypeScript与Python SDK实战教程【免费下载链接】mcp-serversModel Context Protocol Servers项目地址: https://gitcode.com/gh_mirrors/mc/mcp-servers如果你关注AI编程、Agent应用或大模型工具调用一定听说过MCPModel Context Protocol模型上下文协议。而mcp-servers正是 Model Context Protocol 官方的参考实现集合里面包含 20 多个用TypeScript SDK或Python SDK编写的高质量示例服务器覆盖文件系统、数据库、搜索、浏览器自动化、版本控制等场景。本文将以 mcp-servers 为蓝本手把手教你从零开发自己的 MCP 服务器让大模型安全地调用你的工具和数据源真正做到一行配置AI 即插即用。什么是MCP服务器先搞懂三大核心概念在动手编码前先花两分钟理解 MCP 服务器到底在做什么。MCP 服务器MCP Server是介于大模型LLM与外部系统之间的翻译官它把文件、数据库、API 等能力封装成标准接口让 AI 客户端如 Claude Desktop能通过统一协议安全地调用。一个完整的 MCP 服务器通常包含三类能力工具Tools可被 AI 调用的函数比如读取文件查询天气是 MCP 服务器最核心的部分资源Resources可读的数据对象类似 REST 中的 GET 接口提示词Prompts预置的交互模板引导 AI 完成特定任务。传输层一般使用stdio本地子进程通信或 SSE远程通信。开发自己的 MCP 服务器绝大多数情况下你只需要聚焦如何注册一个工具。为什么选择 mcp-servers 作为开发起点自己从零写 MCP 服务器并不难但站在官方参考实现上起步能少踩 80% 的坑权威可靠仓库中的服务器均为官方维护的参考实现协议用法最规范场景齐全从 src/filesystem安全文件操作、src/postgres数据库只读访问到 src/gitGit 仓库操作、src/memory知识图谱记忆几乎覆盖所有常见集成场景双语 SDK 示范TypeScript 与 Python 各有多个可直接照抄的示例方便你选择自己熟悉的语言。第一步克隆仓库速览项目结构首先把 mcp-servers 仓库克隆到本地git clone https://gitcode.com/gh_mirrors/mc/mcp-servers克隆后你会看到src/目录下每个子目录就是一个独立的 MCP 服务器结构非常有规律TypeScript 服务器如src/everything、src/filesystem、src/sequentialthinking由index.ts入口、package.json依赖与构建脚本、tsconfig.json编译配置组成Python 服务器如src/time、src/sqlite、src/fetch由pyproject.toml、uv.lock和src/mcp_server_*/server.py组成。 建议把 src/everything功能最全的参考/测试服务器和 src/time最精简的 Python 示例当作你的活教材。第二步用 TypeScript SDK 开发第一个 MCP 服务器TypeScript 生态的 MCP SDK 依赖modelcontextprotocol/sdk。参考 src/everything/everything.ts 与 src/filesystem/index.ts一个最小可运行的服务器只需要三步① 创建 Server 实例并声明能力const server new Server( { name: my-mcp-server, version: 1.0.0 }, { capabilities: { tools: {} } } );② 注册工具列表对应ListToolsRequestSchema每个工具包含name、description和inputSchema参数结构。src/filesystem/index.ts 中read_file、write_file等工具就是这么定义的server.setRequestHandler(ListToolsRequestSchema, async () ({ tools: [{ name: hello, description: 向用户问好, inputSchema: { type: object, properties: {} } }] }));③ 连接 stdio 传输并启动参考 src/everything/index.tsconst transport new StdioServerTransport(); await server.connect(transport);构建与运行只需npm install npm run build。是不是很简单第三步用 Python SDK 开发 MCP 服务器装饰器更省心Python 版本的体验更Pythonic——全部用装饰器完成代码量极简。最佳参考是 src/time/src/mcp_server_time/server.py它用两段装饰器就实现了时区查询工具from mcp.server import Server from mcp.server.stdio import stdio_server server Server(my-mcp-server) server.list_tools() async def list_tools(): return [Tool(namehello, description向用户问好, inputSchema{type: object, properties: {}})] server.call_tool() async def call_tool(name: str, arguments: dict): return [TextContent(typetext, textHello, MCP!)]依赖管理使用uv见pyproject.toml与uv.lock一条命令即可启动uv run mcp-server-time再看 src/sqlite/src/mcp_server_sqlite/server.py你会发现它除了工具还通过memo://insights资源实现了业务洞察备忘录——这就是 MCP 服务器工具资源组合的典型范例。第四步配置客户端让 AI 用上你的 MCP 服务器服务器写好后在支持 MCP 的客户端配置文件中加入一行即可启用{ mcpServers: { my-server: { command: node, args: [/path/to/dist/index.js] } } }Python 服务器则把command换成uv run即可。启动后AI 客户端会自动获取工具列表并在需要时调用你的工具——你甚至不用写任何对话逻辑这是 MCP 最有魅力的地方。进阶技巧从示例走向生产级 MCP 服务器学会基础后这几个进阶点能让你的服务器更专业安全校验不能省src/filesystem/index.ts 中的validatePath函数用白名单目录 符号链接真实路径双重校验防止越权访问——这是文件类服务器的安全底线善用资源与提示词src/everything/everything.ts 演示了资源分页cursor 机制、资源模板订阅与日志级别控制生产环境可参考参考真实业务封装想接 GitHub 就看 src/github/operations按 issues、pulls、branches 拆分模块想接数据库就看 src/redis/src/index.ts 与 src/sqlite模块化思路可以直接复刻。总结你的第一个 MCP 服务器其实只差 30 分钟回顾一下完整链路克隆 mcp-servers → 阅读参考示例 → 用 TypeScript 或 Python SDK 注册工具 → 配置客户端 → 让 AI 调用你的能力。mcp-servers 最大的价值就是把这些步骤全部标准化摆在你面前想要什么功能就找对应示例照抄改造。现在就去打开src/everything或src/time动手写你的第一个 MCP 服务器吧【免费下载链接】mcp-serversModel Context Protocol Servers项目地址: https://gitcode.com/gh_mirrors/mc/mcp-servers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表