30秒快速回答: MCP(Model Context Protocol)是 Anthropic 提出的一套开源协议,定义了 AI 模型如何与外部工具、数据源进行标准化通信。你可以把它理解为「AI 的 USB 接口」——只要实现了 MCP 协议,任何工具(数据库、文件系统、API 等)都能被 AI 直接调用,而不需要为每个 AI 模型单独开发插件。


MCP 解决了什么问题?

在 MCP 出现之前,AI 应用接入外部工具体系是这样的:

传统方式(M×N 问题):
  Claude ──→ 数据库插件
  GPT-5.6 ──→ 数据库插件(重写一遍)
  Gemini ──→ 数据库插件(又重写一遍)
  Claude ──→ 文件系统插件
  GPT-5.6 ──→ 文件系统插件(再重写一遍)
  ...

每个模型 × 每个数据源 = M × N 个适配器,维护噩梦。

MCP 方式(M+N 解决方案):

  Claude ─┐
  GPT-5.6 ─┤
  Gemini ──┼──→ MCP 协议 ──→ 数据库服务器
           │                ├──→ 文件系统服务器
           │                ├──→ Git 服务器
           │                └──→ API 服务器

每个模型只需实现一次 MCP 客户端,每个数据源只需实现一次 MCP 服务器。M+N 复杂度,而不是 M×N。


MCP 的核心架构

┌─────────────────────────────────────────┐
│              MCP 主机                     │
│  (Claude Desktop / Cursor / VS Code)     │
│                                          │
│  ┌──────────────────────┐               │
│  │    MCP 客户端         │               │
│  │  (协议层,管理连接)     │               │
│  └──────────┬───────────┘               │
└─────────────┼───────────────────────────┘
              │  JSON-RPC over stdio/SSE
     ┌────────┼────────┬──────────────┐
     ↓        ↓        ↓              ↓
┌─────────┐ ┌──────┐ ┌──────┐  ┌──────────┐
│文件系统  │ │数据库 │ │ Git  │  │  自定义   │
│ MCP 服务 │ │MCP服务│ │MCP服务│  │ MCP 服务  │
└─────────┘ └──────┘ └──────┘  └──────────┘

三个核心概念:

组件 说明 类比
Resources 暴露数据(文件内容、数据库记录) HTTP GET - 读数据
Tools 暴露可执行操作(查询数据库、创建文件) HTTP POST - 执行操作
Prompts 预定义的提示词模板 快捷指令

MCP 的通信方式

MCP 使用 JSON-RPC 2.0 作为消息格式,支持两种传输层:

  • stdio(标准输入/输出):本地进程通信,低延迟
  • SSE(Server-Sent Events):远程服务通信,适合网络场景

MCP vs Function Calling:关键区别

很多人混淆 MCP 和 Function Calling,但它们解决的是不同层次的问题:

维度 Function Calling MCP
定位 模型内部的”工具调用”机制 模型外部的”工具连接”标准
提出者 OpenAI Anthropic
作用层 LLM API 层面 工具/数据源层面
关系 定义”怎么调用” 定义”连什么、怎么描述”
协议 OpenAI API 私有规范 开放标准(Apache 2.0)

实际关系: MCP 服务器可以对接 Function Calling——MCP 负责描述工具和传输数据,Function Calling 负责在模型推理时决定调用哪个工具。两者互补,不是竞争。


实操:搭建一个 MCP 服务器

以下用 Python 实现一个简单的天气查询 MCP 服务器:

# weather_server.py
# 安装: pip install mcp httpx

import json
import asyncio
import httpx
from mcp.server import Server, NotificationOptions
from mcp.server.models import InitializationCapabilities
from mcp.server.stdio import stdio_server

# 创建 MCP 服务器实例
server = Server("weather-server")

@server.list_tools()
async def list_tools():
    """告诉 AI 模型这个服务器提供了哪些工具"""
    return [
        {
            "name": "get_weather",
            "description": "获取指定城市的实时天气信息",
            "inputSchema": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "城市名称,如 Beijing, Shanghai"
                    }
                },
                "required": ["city"]
            }
        }
    ]

@server.call_tool()
async def call_tool(name: str, arguments: dict):
    """处理 AI 模型的工具调用请求"""
    if name == "get_weather":
        city = arguments["city"]
        # 实际项目中调真实天气 API
        return [{"type": "text", "text": f"{city} 当前天气:晴,25°C,湿度 60%"}]

async def main():
    async with stdio_server() as (read_stream, write_stream):
        await server.run(
            read_stream,
            write_stream,
            InitializationCapabilities(
                sampling={},
                experimental={},
                roots={"listChanged": True}
            )
        )

if __name__ == "__main__":
    asyncio.run(main())

在 Claude Desktop 中配置 MCP 服务器

~/Library/Application Support/Claude/claude_desktop_config.json 中添加:

{
  "mcpServers": {
    "weather": {
      "command": "python",
      "args": ["/path/to/weather_server.py"]
    }
  }
}

重启 Claude Desktop 后,Claude 就会自动发现 get_weather 工具并能在对话中调用它。


2026 年 MCP 生态一览

工具/平台 MCP 支持方式 说明
Claude Desktop 原生支持 首个全面支持 MCP 的产品
Cursor 内置 MCP 客户端 可接入数据库、文件系统等
Claude Code 核心依赖 通过 MCP 读写项目文件
Windsurf 已集成 AI IDE 中的 MCP 工具调用
LangChain MCP 适配器 将 MCP 工具转为 LangChain Tool
Continue.dev MCP 支持 开源 AI 编程助手

官方 MCP 服务器(开箱即用):

  • @anthropic/mcp-server-filesystem — 安全访问本地文件
  • @anthropic/mcp-server-postgres — 查询 PostgreSQL 数据库
  • @anthropic/mcp-server-git — 操作 Git 仓库
  • @anthropic/mcp-server-brave-search — 网络搜索

常见问题

Q: MCP 和 OpenAI 的 GPTs Actions 有什么区别?

GPTs Actions 是 OpenAI 生态的专有方案,只能用于 ChatGPT。MCP 是跨模型的开放标准,理论上任何 AI 模型都可以接入。

Q: 我需要自己写 MCP 服务器吗?

大多数场景不需要。Anthropic 和社区已经提供了大量现成的 MCP 服务器(文件、数据库、Git、搜索等)。只有当你需要接入公司内部独有的系统时才需要自己开发。

Q: MCP 安全吗?

MCP 本身是通信协议,安全性取决于配置——你给服务器什么权限,AI 就有什么能力。最佳实践是:本地工具用 stdio(权限可控),远程服务用 SSE + HTTPS(加密传输)。


下一步建议: 下载 Claude Desktop,配置一个文件系统 MCP 服务器,体验让 AI 直接读你本地的代码项目。