← 返回工具列表

MCP 协议 Anthropic 开源

Model Context Protocol — AI 领域的 "USB-C"

USB-C AI 的标准接口
100+ MCP Servers
开源 MIT 协议
2024.11 发布时间

🔌 什么是 MCP?

MCP(Model Context Protocol)是 Anthropic 在 2024 年 11 月发布的开源协议,旨在为 AI 模型提供连接外部数据源和工具的标准接口。就像 USB-C 统一了设备充电接口一样,MCP 正在统一 AI 与外部世界的连接方式。

🎯 核心价值:MCP 解决了 AI 模型的"信息孤岛"问题。通过 MCP,AI 可以安全地访问本地文件、数据库、API、浏览器等各种资源,从而完成更复杂的任务。

🔗 标准化连接

统一的协议规范,一次实现到处可用

🔒 安全可控

用户授权机制,AI 不能越权访问资源

🛠️ 丰富生态

100+ 开源 MCP Server,持续增长中

📖 开源协议

MIT 协议开源,任何人都可以使用和贡献

🏗️ MCP 架构

MCP 通信架构

MCP Client
(Claude/Cursor)
MCP Protocol
(JSON-RPC)
MCP Server
(文件/DB/API)

📱 MCP Client

发起请求的一方,如 Claude Desktop、Cursor、Claude Code 等

🖥️ MCP Server

提供服务的一方,连接具体资源如文件系统、数据库等

📚 核心概念

🔧 Tools(工具)

AI 可以调用的函数,如"读取文件"、"执行搜索"

📄 Resources(资源)

AI 可以访问的数据,如文件内容、数据库记录

💬 Prompts(提示词)

预定义的提示词模板,简化常见任务

🔔 Notifications(通知)

Server 向 Client 推送的实时更新

🌟 热门 MCP Servers

📁 filesystem

读写本地文件系统,支持文件搜索、创建、编辑、删除等操作。

🐙 github

与 GitHub 交互,管理仓库、Issue、PR,进行代码搜索等。

🌐 puppeteer

控制浏览器,执行网页自动化、截图、爬取等任务。

🗃️ sqlite

查询和操作 SQLite 数据库,执行 SQL 语句。

🔍 brave-search

使用 Brave 搜索引擎进行网络搜索。

📧 gmail

读取和发送 Gmail 邮件,管理邮箱。

⚙️ 配置示例

Claude Desktop 的 MCP 配置文件(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/Documents"
      ]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
      }
    },
    "sqlite": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sqlite",
        "--db-path",
        "/path/to/your/database.db"
      ]
    }
  }
}
💡 提示:配置完成后重启 Claude Desktop,在对话框中点击 🔌 图标即可看到已连接的 MCP Server 和可用工具。

📱 支持 MCP 的客户端

🧠 Claude Desktop

Anthropic 官方桌面应用,原生支持 MCP

🖱️ Cursor

AI 代码编辑器,支持 MCP 连接外部工具

💻 Claude Code

命令行 AI 助手,深度集成 MCP

🔧 更多...

VS Code 插件、Zed 等持续增加中

🛠️ 开发 MCP Server

使用 TypeScript 开发简单的 MCP Server:

import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";

const server = new Server({
  name: "my-mcp-server",
  version: "1.0.0"
}, {
  capabilities: {
    tools: {}
  }
});

// 注册工具
server.setRequestHandler("tools/list", async () => ({
  tools: [{
    name: "hello",
    description: "Say hello to someone",
    inputSchema: {
      type: "object",
      properties: {
        name: { type: "string", description: "Name to greet" }
      },
      required: ["name"]
    }
  }]
}));

// 处理工具调用
server.setRequestHandler("tools/call", async (request) => {
  if (request.params.name === "hello") {
    const name = request.params.arguments.name;
    return { content: [{ type: "text", text: `Hello, ${name}!` }] };
  }
});

// 启动服务器
const transport = new StdioServerTransport();
server.connect(transport);

🔗 相关资源