AI知识篇
什么是MCP
AI 连接外部世界的"USB接口"
MCP(Model Context Protocol,模型上下文协议) 是 Anthropic 推出的一个开放标准,让 AI 模型能够以统一的方式连接外部数据源和工具。
💡 类比:在 MCP 出现之前,每个 AI 应用要连接不同的工具,都需要写专门的代码——就像每个设备都需要不同的充电线。MCP 就是 AI 世界的"USB-C 接口"——一个标准解决所有连接问题。
加载图表中...
MCP 解决了什么问题?
| 问题 | MCP 之前 | MCP 之后 |
|---|---|---|
| 集成成本 | 每个工具写一套集成代码 | 统一协议,一次对接 |
| 重复开发 | N 个 AI 应用 × M 个工具 = N×M 次开发 | 工具提供方写一次 Server,所有 AI 应用通用 |
| 标准化 | 各家自定义格式 | 统一的协议标准 |
| 生态 | 碎片化 | 共享的工具生态 |
加载图表中...
MCP 的架构
MCP 采用客户端-服务器架构:
加载图表中...
| 角色 | 说明 | 例子 |
|---|---|---|
| Host(宿主) | 运行 AI 的应用 | Claude Desktop、Cursor、你的应用 |
| Client(客户端) | Host 中负责与 Server 通信的部分 | MCP SDK 提供 |
| Server(服务器) | 提供工具和数据的服务 | GitHub Server、文件系统 Server |
MCP Server 提供三种能力
加载图表中...
| 能力 | 说明 | 类比 |
|---|---|---|
| Tools | AI 可以调用的操作(类似 Function Calling) | 遥控器的按钮 |
| Resources | AI 可以读取的数据源 | 书架上的书 |
| Prompts | 预定义的提示词模板 | 常用话术模板 |
写一个简单的 MCP Server
// my-weather-server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new McpServer({
name: "weather-server",
version: "1.0.0",
});
// 注册一个工具
server.tool(
"get_weather",
{ city: { type: "string", description: "城市名称" } },
async ({ city }) => {
// 调用天气API
const res = await fetch(`https://api.weather.com?city=${city}`);
const data = await res.json();
return {
content: [
{ type: "text", text: `${city}:${data.weather},${data.temp}°C` },
],
};
}
);
// 启动服务器
const transport = new StdioServerTransport();
await server.connect(transport);
在 Claude Desktop 中使用 MCP
在 Claude Desktop 的配置文件中添加 MCP Server:
{
"mcpServers": {
"weather": {
"command": "node",
"args": ["my-weather-server.js"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "your-token"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
}
}
}
配置后,Claude 就能:
- 查询天气
- 管理 GitHub 仓库、创建 PR
- 读写你的项目文件
MCP vs Function Calling
加载图表中...
| 对比 | Function Calling | MCP |
|---|---|---|
| 工具定义 | 在代码中定义 | 独立的 Server |
| 复用性 | 每个应用重新实现 | 一次开发,多处使用 |
| 运行方式 | 应用内执行 | 独立进程 |
| 标准化 | 各厂商API不同 | 统一开放标准 |
| 适合 | 简单的工具调用 | 构建可复用的工具生态 |
MCP 可以看作是 Function Calling 的"升级版"——把工具从应用中独立出来,变成可共享的服务。
常见的 MCP Server
| Server | 功能 |
|---|---|
| filesystem | 读写本地文件 |
| github | 管理仓库、PR、Issue |
| postgres | 查询 PostgreSQL 数据库 |
| slack | 发送和读取 Slack 消息 |
| brave-search | 网页搜索 |
| memory | 持久化记忆存储 |
🎯 AI编程小贴士:想让你的 AI 应用连接更多工具?先去 MCP 官方仓库看看有没有现成的 Server。如果没有,告诉 AI"帮我写一个 MCP Server,能够查询我的 PostgreSQL 数据库",它会帮你从零搭建。
小结
- MCP 是 AI 连接外部工具和数据的统一标准协议
- 解决了"N×M 集成问题",一个 Server 可以被多个 AI 应用使用
- 架构:Host(AI应用)→ Client → Server(工具服务)
- Server 提供三种能力:Tools(工具)、Resources(资源)、Prompts(模板)
- 是 Function Calling 的"升级版",工具独立部署、生态共享
- Claude Desktop、Cursor 等已经支持 MCP