随着大模型技术的快速发展,各大科技公司纷纷推出代码执行、搜索等实用功能,致力于解决AI与真实世界数据源及工具应用的无缝连接问题。在AI Agent开发需求日益增长的背景下,如何实现Agent与现有应用程序的高效交互成为了技术突破的重点。正是在这样的技术趋势下,MCP(Model Context Protocol)应运而生,为人工智能与现有系统的顺畅交互提供了标准化解决方案。
一、MCP 是什么?
MCP(多上下文协议)是一种开放的标准协议,它规范了应用程序向大规模语言模型(LLM)提供上下文信息的方式。你可以将MCP类比为AI生态系统中的"USB-C接口":正如USB-C实现了各类设备与外围设备的标准化连接,MCP则为AI模型与多样化数据源及工具之间的交互提供了通用标准。
这一创新性协议由Anthropic公司旗下的Claude项目主导发布,其定位是一个开放、通用且具有广泛共识的标准协议。值得一提的是,OpenAI本应是推动此类标准协议发布的最佳选择。倘若OpenAI在首次推出GPT模型时就着手推进这一协议,凭借其时的影响力,相信业界将乐于接受这一标准。然而,OpenAI的发展策略转向了封闭化,仅发布了一个封闭式的GPTs系统,失去了引领行业标准的机会。事实上,这种需要行业共识和广泛支持的标准协议很少能够通过社区自发形成,通常需要拥有强大影响力的行业领导者来统筹和推动。
二、为什么是 MCP?
在2023年OpenAI推出GPT function calling时,或许有人会问,它不也能实现类似的功能吗?我们之前讨论的AI Agent不就是用于整合各种服务的吗?那么MCP的出现又是为何?Function Calling、AI Agent与MCP之间到底有何区别?让我们逐一解析:
Function Calling
Function Calling是AI模型根据上下文自动调用函数的机制。它充当了AI模型与外部系统之间的桥梁,但不同模型平台的Function Calling实现方式各异,代码集成也各有千秋。
Model Context Protocol (MCP)
MCP,如同Type C协议之于电子设备,是一种标准协议,使得AI模型能够与不同API和数据源无缝交互。它旨在取代碎片化的Agent代码集成,提升AI系统的可靠性和效率。通过建立通用标准,服务商可基于此推出自己的AI能力,开发者也能更高效地构建强大应用,无需重复造轮子。MCP还能在不同应用或服务间保持上下文,增强自主执行任务的能力。
AI Agent
AI Agent是一种能够自主运行、实现特定目标的智能系统。与传统的AI聊天仅提供建议或需手动执行任务不同,AI Agent能分析具体情况,做出决策并自行采取行动。它可利用MCP提供的功能描述理解更多上下文,并在各种平台/服务中自动执行任务。
简而言之,MCP将不同服务和平台的能力列表告知AI Agent,AI Agent通过上下文和模型推理判断是否需要调用某个服务,使用Function Calling来执行函数,这个过程由MCP提供具体代码来完成。
MCP对社区生态的益处主要体现在两点:
1.标准化*:提供了一个标准协议,使得AI模型与已有服务交互时,无需为每个模型开发不同的集成代码。
2.生态系统:基于共同协议的生态系统,让开发者能专注于构建更强大的应用,而非重复造轮子。
三、MCP 工作原理
MCP 的核心是客户端-服务器架构,其中主机应用程序可以连接到多个服务器对开发人员来说,主要有三个组件
•The Model Context Protocol specification and SDKs / 模型上下文协议规范和 SDK
•Local MCP server support in the Claude Desktop apps / Claude 桌面应用程序中的本地 MCP 服务器支持
•An open-source repository of MCP servers / MCP 服务器的开源存储库
协议架构
• MCP Hosts: 例如 Claude Desktop、IDE 或其他 AI 工具,这些程序需要通过 MCP 来访问资源。 • MCP Clients: 协议客户端,负责与 MCP 服务器建立一对一的连接。 • MCP Servers: 轻量级程序,遵循 MCP 标准协议,将特定功能暴露给客户端。 • 本地资源(Local Resources): 存储在你电脑上的资源(如数据库、文件、服务),可以通过 MCP 服务器安全访问。 • 远程资源(Remote Resources): 通过互联网提供的资源(比如 API),MCP 服务器同样可以连接并使用这些资源。
MCP Server 就像是一个翻译和安全管理员,它连接 AI 和你的本地环境(如文件系统、数据库或 API)。
四、在Cursor中使用MCP
1. 打开 Cursor 设置菜单
2. 选择 MCP 选项
3. 点击 "+ Add New MCP Server" 按钮。
输入名称,在 Type
下选择连接方式,然后为服务器 ( Name
) 输入一个昵称,或者输入要运行的命令或服务器的 URL,这取决于链接方式。
MCP 目前定义了两种标准传输机制用于客户端服务器通信:
•stdio(Command):标准输入和标准输出上的通信,也就是本地命令行方式,交互流程如下:
•SSE(HTTP with Server-Sent Events): HTTP 与 服务器发送事件,用于部署在服务器上。 在 SSE 传输中,服务器作为一个独立进程可以处理多个客户端连接。服务器必须提供两个端点:
1.一个 SSE 端点,用于客户端建立连接并接收服务器的消息。
2.客户端向服务器发送消息的常规 HTTP POST 端点 当客户端连接时,服务器必须发送一个 endpoint 事件,其中包含客户端用于发送消息的 URI。所有后续的客户端消息都必须作为 HTTP POST 请求发送到该端点。服务器消息作为 SSE message 事件发送,消息内容以 JSON 格式编码在事件数据中。
这里我们用command方式,MCP Server我们可以从 GitHub - modelcontextprotocol/servers: Model Context Protocol Servers 获取。以官方的配置sqlite的MCP服务器为例,
开始前,先要安装三个依赖项
# Using Homebrew brew
install uv git sqlite3
用sqlite3创建一个数据库test.db,并插入数据
# Create a new SQLite database
sqlite3 ~/test.db <<EOF
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price REAL
);
INSERT INTO products (name, price) VALUES
('Widget', 19.99),
('Gadget', 29.99),
('Gizmo', 39.99),
('Smart Watch', 199.99),
('Wireless Earbuds', 89.99),
('Portable Charger', 24.99),
('Bluetooth Speaker', 79.99),
('Phone Stand', 15.99),
('Laptop Sleeve', 34.99),
('Mini Drone', 299.99),
('LED Desk Lamp', 45.99),
('Keyboard', 129.99),
('Mouse Pad', 12.99),
('USB Hub', 49.99),
('Webcam', 69.99),
('Screen Protector', 9.99),
('Travel Adapter', 27.99),
('Gaming Headset', 159.99),
('Fitness Tracker', 119.99),
('Portable SSD', 179.99);
EOF
编辑MCP配置,增加sqlite配置,注意修改db的路径,Claude会通过uvx启动对应的服务
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/替换为对应用户名/test.db"]
}
}
}
转化成Cursor 识别的 uvx mcp-server-sqlite--db-path /Users/替换为对应用户名/test.db
添加完成后,如果连接正常,Cusor会列出这个MCP支持的Tools以及链接状态。
测试 MCP
Claude查询sqlite数据库,得到结果
最后为大家总结下 MCP (Model Context Protocol) 将带来的三个最重要的改变:
首先,开放式工具连接能力将赋予AI助手更强的实用性。想象一下,就像智能手机可以通过蓝牙无缝连接耳机、音箱等设备,MCP将让AI助手能够轻松接入各种工具和数据源。这意味着AI可以直接查询企业数据库、分析本地文件、调用开发工具等,突破简单的对话功能,真正帮助我们解决实际工作问题。
其次,标准化和开源特性将大幅降低开发门槛。如同USB接口成为通用标准一样,MCP提供了一个开放的统一标准。开发者可以基于这个标准,自由地为AI系统添加新功能,而无需从头开发整个系统。这种开放性不仅将显著降低开发成本,还将加速AI工具的普及与创新。
最后,智能代理的进化将使AI助手变得更加智能化。它将能够根据具体场景,自动选择并运用最合适的工具。例如,针对特定企业、部门或个人量身定制专业级AI助手。这种智能化的提升,将开创全新的AI应用模式,让AI助手真正成为我们工作生活的得力助手。
简而言之,MCP就像为AI装上了"万能适配器",使其能够更自如地理解和运用各类工具,深入融入我们的日常工作,带来更智能、更个性化的AI体验。
了解更多关于AI编程