MCP 教程
欢迎学习 MCP(Model Context Protocol)!本教程将带你从零开始掌握这一连接 AI 应用与外部系统的开放标准协议。
什么是 MCP?
MCP(Model Context Protocol) 是由 Anthropic 推出的开放标准协议,用于在 AI 应用程序和外部数据源、工具之间建立安全的双向连接。
核心价值
MCP 解决了 AI 应用集成的核心痛点:
- 标准化接口:一次开发,处处可用
- 安全连接:建立在安全协议之上,保护数据隐私
- 双向通信:AI 可以读取数据,也能执行操作
- 生态兼容:支持 Claude、ChatGPT、VS Code、Cursor 等主流平台
MCP 能做什么?
通过 MCP,AI 应用可以:
- 访问 Google Calendar 和 Notion,成为个性化的 AI 助手
- 根据 Figma 设计生成完整网页应用
- 连接企业数据库,通过对话分析数据
- 在 Blender 中创建 3D 设计,并使用 3D 打印机输出
为什么学习 MCP?
对开发者
- 减少开发时间:无需为每个 AI 应用单独开发集成
- 降低复杂度:标准化协议简化了集成流程
- 生态系统:一次开发即可接入多个 AI 平台
对 AI 应用
- 增强能力:获取外部数据和工具的能力
- 改善体验:为用户提供更强大的功能
- 扩展生态:轻松接入各种数据源和工具
对最终用户
- 更强大的 AI:AI 可以访问你的数据并执行操作
- 更好的隐私:数据访问透明可控
- 统一的体验:跨平台一致的 AI 能力
核心概念
参与者(Participants)
MCP 采用客户端-服务器架构,主要参与者包括:
| 角色 | 说明 | 示例 |
|---|---|---|
| MCP Host | AI 应用程序,协调管理多个客户端 | Claude Desktop、VS Code、Cursor |
| MCP Client | 维护与 MCP Server 的连接 | 每个 Server 对应一个 Client 实例 |
| MCP Server | 提供上下文数据的程序 | 文件系统服务器、数据库服务器 |
[!NOTE] 关于语言选择:Node.js (TypeScript/JavaScript) 和 Python 都是 MCP 官方支持的一等公民语言。无论你是要开发服务器还是客户端,都可以根据需求自由选择其中之一,它们在协议功能上是完全对等的。
核心原语(Primitives)
MCP 定义了三种核心原语,用于在服务器和客户端之间共享上下文:
| 原语 | 说明 | 用途 |
|---|---|---|
| Tools(工具) | 可执行的函数 | 执行操作,如文件操作、API 调用、数据库查询 |
| Resources(资源) | 数据源 | 提供上下文信息,如文件内容、数据库记录、API 响应 |
| Prompts(提示) | 可重用模板 | 结构化交互,如系统提示、Few-shot 示例 |
传输层(Transport)
MCP 支持两种传输机制:
| 传输方式 | 说明 | 适用场景 |
|---|---|---|
| Stdio | 标准输入/输出流 | 本地进程通信,性能最优 |
| Streamable HTTP | HTTP POST + SSE | 远程服务器通信,支持认证 |
架构层次
MCP 由两个层次组成:
数据层(Data Layer)
基于 JSON-RPC 2.0 的协议层,包括:
- 生命周期管理:连接初始化、能力协商、连接终止
- 服务器特性:Tools、Resources、Prompts
- 客户端特性:Sampling、Elicitation、Logging
- 实用功能:通知、进度跟踪
传输层(Transport Layer)
管理通信通道和认证:
- 连接建立:初始化连接
- 消息帧:消息格式化
- 安全通信:认证和授权
广泛的生态支持
MCP 是一个开放协议,得到广泛支持:
官方 SDK
- Node.js/TypeScript SDK:
@modelcontextprotocol/sdk - Python SDK:
mcp
AI 助手 (Hosts/Clients)
- Claude (Anthropic)
- ChatGPT (OpenAI)
- Visual Studio Code
- Cursor
- Windsurf
官方 & 社区服务器
- Filesystem (文件系统)
- PostgreSQL (数据库)
- GitHub (代码仓库)
- Slack (团队协作)
- Google Drive (云存储)
- Puppeteer (浏览器自动化)
教程目录
基础概念
实践开发
参考资源
- 速查表 - MCP API 和配置速查
学习建议
- 理解概念:先掌握 MCP 的核心概念和架构
- 动手实践:按照教程创建自己的 MCP Server
- 阅读规范:参考官方规范深入理解细节
- 参与社区:加入 MCP 社区,分享经验
环境准备
MCP 支持多种编程语言开发,目前最成熟的是 Node.js 和 Python。
1. Node.js 环境 (JavaScript/TypeScript)
MCP SDK 需要 Node.js 18 或更高版本:
# 检查 Node.js 版本
node --version # 建议 v18 或更高
# 建议安装 MCP Inspector 用于调试
npm install -g @modelcontextprotocol/inspector
2. Python 环境
MCP SDK 兼容 Python 3.10 或更高版本:
# 检查 Python 版本
python --version # 建议 v3.10 或更高
# 建议使用虚拟环境
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install mcp
3. Claude Desktop (最佳实验宿主)
Claude Desktop 是体验和测试 MCP 的最佳方式:
- 访问 Claude Desktop 下载页面
- 下载并安装对应平台的版本
- 确保使用最新版本
参考资源
准备好开始学习了吗?点击下一章深入了解 MCP 架构!