还记得那个"南听不懂北,上听不懂下"的年代吗?方言的差异让交流变得困难。直到推广普通话,才让全国各地的人们能够顺畅交流。在 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 一经推出,立刻获得了广泛支持。国内外各大公司纷纷加入:
• Cursor、CLine、continue.dev 等代码工具率先支持
• 国内一夜成名的的 Manus 工具作为通用AI助手面世
• 百度更是在前几天(2025年3月21日)宣布地图 API 和千帆平台全面支持 MCP
MCP 是什么
MCP(Model Context Protocol)是一个创新性的协议标准,它为应用程序提供了与 AI 大模型交互的统一接口。通过 MCP,我们可以实现各类工具、服务和数据源与 AI 模型的无缝集成,如下图所示:
MCP 的核心功能包括:
• 连接数据源:可以连接数据库、日志、代码仓库等各种数据来源
• 统一对话方式:帮助 AI 更好地理解用户的需求
• 提供标准工具:封装了各种常用功能,比如代码管理、调试等
• 保障数据安全:严格控制工具的操作权限,防止误操作
一个实际应用场景
让我们通过一个具体的应用场景来展示 MCP 的强大功能。假设我们构建了一个支持 MCP 的服务器,它能够访问产品需求系统和代码仓库。我们可以向 AI 大模型发送如下指令:
请编写代码完成{产品需求}的需求,并将代码提交到代码仓库中。需要保证如下要求:
1. 代码必须有完整的单元测试覆盖
2. 代码必须包含详尽的文档注释
在这个场景中,AI 大模型会执行以下步骤:
1. 通过 MCP 的产品需求服务获取详细的需求信息
2. 基于需求生成符合规范的代码
3. 编写相应的单元测试
4. 通过测试执行服务验证代码质量
5. 必要时根据测试结果优化代码
6. 最后通过 GitLab 服务将代码提交到仓库
这个例子展示了 MCP 如何让 AI 与各种开发工具无缝协作,实现自动化的代码开发流程。(程序员可能真要失业了)
动手试试 MCP
想要体验 MCP 的魔力,我们先从一个简单的例子开始。下面是一个最基础的 MCP 服务,它能做两件事:
1. 帮你计算 1+1
2. 跟你说"你好"
## calculator_server.py
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Demo")
@mcp.tool()
defadd(a: int, b: int) -> int:
return a + b
@mcp.resource("greeting://{name}")
defget_greeting(name: str) -> str:
returnf"你好, {name}!"
mcp.run()
就这么简单!MCP 社区已经为我们准备好了各种开发工具:
• Python SDK[1]:最成熟的实现,文档完善
• TypeScript SDK[2]:适合前端开发者
• Java SDK[3]:企业级应用的理想选择
注:MCP Golang[4] 目前是个人维护版本,已经有两个月不更新了,暂不支持 resource template,与 CLine 存在兼容性问题。
MCP 调试
官方提供了一个名为 mcp 的调试工具,用于验证和测试 MCP 服务的功能:
mcp dev calculator_server.py # 启动调试服务器
启动后会打开调试界面:
连接后,我们就可以测试示例中的加法工具和查看资源了。(讲道理,debug工具对中文展示并不友好)
CLine 配置
虽然 Cursor 是一个功能强大的付费工具,但我们可以使用开源的 CLine 来实现同样的功能。只需将以下配置添加到 mcpServers 配置中:
"calculator-server": {
"command": "uv",
"args": [
"--directory",
"/Users/lpf/Source/github.com/mcp-example/calculator-server",
"run",
"calculator_server.py"
],
"disabled": false,
"autoApprove": []
}
当我们输入:请告诉我 901 加上95 等于几,会告诉我答案是996
如下是,cline 中自动调用mcp 服务。
MCP 的未来:机遇与挑战
相对于 ChatGPT 的 Function Calling 和自定义 Agent,MCP 的出现确实是一个颠覆性的创新。虽然不用 MCP,通过自定义 Agent 也能实现类似功能,但 MCP 就像是"车同轨,书同文"一样,统一了工具的使用方式,大大降低了接入成本,提高了复用性。
🌟 新机遇
1. 工具生态爆发
• 更多公司会推出支持 MCP 的工具
• 开发者可以更容易地创建和分享 AI 工具
• 工具之间的互操作性大大提升
2. 开发效率提升
• 统一的接口降低学习成本
• 工具可以轻松组合使用
• 代码复用更加方便
⚠️ 安全隐患
如果大模型误解了你的 prompt,一个 drop database 就让你变成背锅侠了。所以在使用 MCP 时,一定要注意工具的权限控制、确认机制、安全防护机制。
写在最后
MCP 的出现,让我们看到了 AI 工具互联互通的曙光。就像当年推广普通话一样,统一的标准能带来巨大的便利。但同时,我们也要警惕安全风险,在享受便利的同时做好防护。
未来已来,让我们一起拥抱这个 AI 工具能够"无障碍沟通"的新时代!
引用链接
[1]
Python SDK: https://github.com/modelcontextprotocol/python-sdk[2]
TypeScript SDK: https://github.com/modelcontextprotocol/typescript-sdk[3]
Java SDK: https://github.com/modelcontextprotocol/java-sdk[4]
MCP Golang: https://github.com/metoro-io/mcp-golang