如何创建 MCP Server:从零开始的完整指南
MCP Server 是连接 AI 模型与外部工具的标准接口。本文讲解 MCP 架构原理与基本实现方式。
如何创建 MCP Server:从零开始的完整指南
Model Context Protocol(MCP) 是 Anthropic 于 2024 年 11 月发布的开源标准,专门解决 AI 模型与外部数据源、工具之间的集成问题。如果你想让 Claude、GPT-4 或其他大语言模型访问你的数据库、API 或自定义工具,创建一个 MCP Server 是目前最标准化的做法。
MCP 解决了什么问题
传统的 AI 集成是 M×N 问题:M 个 AI 模型需要分别对接 N 个外部工具,每对都要写定制代码。MCP 把这个问题变成 M+N:每个 AI 实现一次 MCP Client,每个工具实现一次 MCP Server,双方通过统一协议通信。
这就是为什么它被称为"AI 的 USB-C 接口"——标准化之后,任何符合规范的 AI 都能直接使用任何符合规范的工具,不需要额外的胶水代码。
截至 2026 年初,OpenAI、Google DeepMind、Microsoft、Apple 均已接入 MCP,月 SDK 下载量超过 9700 万次。这个增长速度说明生态已经成型,现在是学习创建 MCP Server 的好时机。
MCP 的技术架构
在动手之前,需要理解三个核心角色:
- Host:运行 AI 模型的应用,比如 Claude Desktop 或你自己的 AI 应用
- Client:Host 内部管理 MCP 连接的组件
- Server:你要创建的部分,暴露工具、资源或 Prompt 给 AI 使用
通信层基于 JSON-RPC 2.0。传输方式有两种:
- stdio:本地进程间通信,适合本地工具和开发调试
- Streamable HTTP:网络传输,适合远程服务和生产部署
对于大多数开发者来说,从 stdio 开始最简单——不需要处理网络配置,直接在本地跑起来。
基本 Server 实现结构
一个最小可用的 MCP Server 需要做三件事:
1. 声明能力(Capabilities)
Server 启动时告诉 Client 自己支持什么:工具(Tools)、资源(Resources)还是提示词模板(Prompts)。大多数场景从 Tools 开始就够了。
2. 定义工具(Tools)
每个 Tool 需要:名称、描述(AI 靠这个决定何时调用)、输入 Schema(JSON Schema 格式)、执行逻辑。
描述写得好不好直接影响 AI 能不能正确使用你的工具。描述要精确说明工具做什么、什么时候适合用、参数的含义。
3. 处理请求
实现 tools/call handler,接收 AI 发来的调用请求,执行逻辑,返回结果。结果可以是文本、JSON 或错误信息。
官方提供了 Python 和 TypeScript 的 SDK,两者都封装好了协议细节,你只需要关注业务逻辑。Python SDK 适合数据处理类工具,TypeScript SDK 适合前端或 Node.js 环境。
安全注意事项
MCP 的安全性是一个需要认真对待的话题。研究人员已经记录了几类风险:
- Prompt Injection:恶意数据源可以在返回内容中插入指令,欺骗 AI 执行非预期操作
- 工具滥用:AI 可能在没有充分授权的情况下调用破坏性工具
MCP 规范包含 OAuth 2.1 授权机制,但实现细节复杂,许多早期 Server 并未完整实现。
实践建议:对写操作(数据库写入、文件删除、API 调用)加确认步骤;限制 Server 的权限范围,遵循最小权限原则;不要信任来自外部数据源的内容作为可执行指令。
治理与生态现状
2025 年 12 月,Anthropic 将 MCP 项目捐赠给 Agentic AI Foundation(AAIF),这是 Linux Foundation 旗下新成立的组织。这意味着 MCP 不再是 Anthropic 的私有标准,而是由社区共同治理的开放协议。
对开发者来说,这个消息很重要:你现在构建的 MCP Server,未来不会因为某家公司的商业决策而失效。投入学习 MCP 的时间是值得的。
关于 agentic coding 的更多背景,可以参考我们的词汇解释。如果你想了解 MCP 在实际开发工作流中的位置,可以读读为什么 Claude Code 不只是一个编程工具这篇文章。
从哪里开始
如果你是第一次接触 MCP:
- 先读 MCP 官方规范,理解协议的设计意图
- 用官方 Python 或 TypeScript SDK 创建一个最简单的 Tool Server
- 用 Claude Desktop 或 MCP Inspector 测试你的 Server
- 在本地跑通 stdio 传输后,再考虑 HTTP 部署
MCP 的学习曲线不高,但协议细节值得仔细阅读。理解 JSON-RPC 的请求/响应结构,以及 Client 如何发现 Server 的能力,会让你少踩很多坑。
觉得有用?订阅 LoreAI,每天 5 分钟掌握 AI 动态。