MCP:让 AI 工具互联互通的"普通话"

还记得那个"南听不懂北,上听不懂下"的年代吗?方言的差异让交流变得困难。直到推广普通话,才让全国各地的人们能够顺畅交流。在 AI 工具的世界里,MCP 就像是这样一个"普通话"标准,让不同的 AI 工具能够无障碍沟通。

MCP 的前世今生

2022年11月,OpenAI 首次发布 ChatGPT,掀起了全球大模型应用的热潮。ChatGPT 的出现显著降低了大模型应用的开发门槛,让开发者能够快速构建智能应用。

2023年6月,OpenAI 在 Chat Completions API 中引入了 Function Calling 功能,为开发者提供了通过 API 方式实现 ChatGPT 插件数据交互的能力。

2024年11月,Anthropic 公司开源了 MCP(Model Context Protocol),为应用程序与 AI 大模型之间提供了统一的交互标准,使开发者能够以一致的方式将各类数据源、工具和功能连接到 AI 模型。

MCP 一经推出,立刻获得了广泛支持。国内外各大公司纷纷加入:

  • Claude Desktop、Cursor、CLine 等桌面应用率先支持
  • 国内的 Manus 工具也快速跟进
  • 百度更是在前几天(2025年3月21日)宣布地图 API 和千帆平台全面支持 MCP

MCP 是什么

MCP(Model Context Protocol)是一个创新性的协议标准,它为应用程序提供了与 AI 大模型交互的统一接口。通过 MCP,我们可以实现各类工具、服务和数据源与 AI 模型的无缝集成,如下图所示:

graph LR
    A[MCP] 
    B[GPT-4]
    C[Claude]
    D[Deepseek]
    J[...]
    E[获取产品需求]
    G[获取bug描述]
    F[GitLab服务]
    H[代码调试服务]
    I[...]
    
    B --> A
    C --> A
    D --> A
    A --> E
    A --> F
    A --> G
    A --> H
    A --> I
    J --> A

MCP 的核心功能包括:

  • 连接数据源:可以连接数据库、日志、代码仓库等各种数据来源
  • 统一对话方式:帮助 AI 更好地理解用户的需求
  • 提供标准工具:封装了各种常用功能,比如代码管理、调试等
  • 保障数据安全:严格控制工具的操作权限,防止误操作

一个实际应用场景

让我们通过一个具体的应用场景来展示 MCP 的强大功能。假设我们构建了一个支持 MCP 的服务器,它能够访问产品需求系统和代码仓库。我们可以向 AI 大模型发送如下指令:

1
2
3
请编写代码完成{产品需求}的需求,并将代码提交到代码仓库中。需要保证如下要求:
1. 代码必须有完整的单元测试覆盖
2. 代码必须包含详尽的文档注释

在这个场景中,AI 大模型会执行以下步骤:

  1. 通过 MCP 的产品需求服务获取详细的需求信息
  2. 基于需求生成符合规范的代码
  3. 编写相应的单元测试
  4. 通过测试执行服务验证代码质量
  5. 必要时根据测试结果优化代码
  6. 最后通过 GitLab 服务将代码提交到仓库

这个例子展示了 MCP 如何让 AI 与各种开发工具无缝协作,实现自动化的代码开发流程。(程序员可能真要失业了)

动手试试 MCP

想要体验 MCP 的魔力,我们先从一个简单的例子开始。下面是一个最基础的 MCP 服务,它能做两件事:

  1. 帮你计算 1+1
  2. 跟你说"你好"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
## calculator_server.py
from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Demo")

@mcp.tool()
def add(a: int, b: int) -> int:
    return a + b

@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    return f"你好, {name}!"

mcp.run()

就这么简单!MCP 社区已经为我们准备好了各种开发工具:

注:MCP Golang 目前是个人维护版本,已经有两个月不更新了,暂不支持 resource template,与 CLine 存在兼容性问题。

MCP 调试

官方提供了一个名为 mcp 的调试工具,用于验证和测试 MCP 服务的功能:

1
mcp dev calculator_server.py # 启动调试服务器

启动后会打开调试界面: /posts/mcp-example/mcp-debug-1.png 连接后,我们就可以测试示例中的加法工具和查看资源了。

CLine 配置

虽然 Cursor 是一个功能强大的付费工具,但我们可以使用开源的 CLine 来实现同样的功能。只需将以下配置添加到 mcpServers 配置中:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
    "calculator-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/lpf/Source/github.com/mcp-example/calculator-server",
        "run",
        "calculator_server.py"
      ],
      "disabled": false,
      "autoApprove": []
    }

/posts/mcp-example/mcp-config.png

计算结果

/posts/mcp-example/cline-result.png

MCP 的未来:机遇与挑战

相对于 ChatGPT 的 Function Calling 和自定义 Agent,MCP 的出现确实是一个颠覆性的创新。虽然不用 MCP,通过自定义 Agent 也能实现类似功能,但 MCP 就像是"车同轨,书同文"一样,统一了工具的使用方式,大大降低了接入成本,提高了复用性。

🌟 新机遇

  1. 工具生态爆发

    • 更多公司会推出支持 MCP 的工具
    • 开发者可以更容易地创建和分享 AI 工具
    • 工具之间的互操作性大大提升
  2. 开发效率提升

    • 统一的接口降低学习成本
    • 工具可以轻松组合使用
    • 代码复用更加方便

⚠️ 安全隐患

如果大模型误解了你的 prompt,一个 drop database 就让你变成背锅侠了。所以在使用 MCP 时,一定要注意工具的权限控制、确认机制、安全防护机制。

写在最后

MCP 的出现,让我们看到了 AI 工具互联互通的曙光。就像当年推广普通话一样,统一的标准能带来巨大的便利。但同时,我们也要警惕安全风险,在享受便利的同时做好防护。

未来已来,让我们一起拥抱这个 AI 工具能够"无障碍沟通"的新时代!

0%