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 提供三种能力

加载图表中...
能力说明类比
ToolsAI 可以调用的操作(类似 Function Calling)遥控器的按钮
ResourcesAI 可以读取的数据源书架上的书
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 CallingMCP
工具定义在代码中定义独立的 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