免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


MCP协议详解:大模型Agent开发的新利器,门槛直降到人人可上手

发布日期:2025-09-20 15:07:57 浏览次数: 1532
作者:多模态智能体

微信搜一搜,关注“多模态智能体”

推荐语

MCP协议让大模型Agent开发变得前所未有的简单,只需几行代码就能接入海量工具,快来了解如何快速上手!

核心内容:
1. MCP协议的背景与核心优势:统一规范降低开发门槛
2. 搭建MCP客户端的详细步骤与工具推荐
3. 丰富的开源生态与多语言SDK支持

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

最近在折腾大模型Agent开发的时候,发现了一个超级实用的协议——MCP(Model Context Protocol)。它是由Anthropic公司去年11月推出的,本来没啥动静,但今年Agent热潮一起来,它就火了。尤其是Cursor在2月份宣布支持MCP后,直接把这个协议推到了开发者眼前。今天我就来聊聊MCP的来龙去脉,以及怎么用它快速搭建客户端和服务器。相信看完这篇,你也能轻松上手,开发出自己的智能体Agent。

一、MCP是什么?为什么它能改变Agent开发游戏规则

先简单说说MCP的背景。MCP全称Model Context Protocol,翻译成模型上下文协议。它本质上是一种规范,专门解决大模型调用外部工具的痛点。我们知道,大模型要想从聊天机器人进化成真正的Agent,必须能调用外部工具,比如查天气、爬网页、操作数据库。但大模型天生没法直接和外部世界互动,所以就需要一个“中介”——Function Calling。

Function Calling这个概念从诞生起就很受欢迎,但问题也明显:写函数代码太费劲,一个简单工具可能要上百行代码,还得配JSON Schema描述函数接口,再加上精心调提示词,确保大模型能准确调用。开发门槛高,重复劳动多。

MCP的出现就像秦始皇统一“书同文、车同轨”一样,它定义了统一的规范:大模型环境叫MCP Client(客户端),工具运行环境叫MCP Server(服务器)。两者之间用固定提示词模板通信。这样一来,大家就不用每次从零写工具了。GitHub上现在已经有上千个开源MCP服务器,从SQL查询到网页爬取、命令行操作,再到数据分析,应有尽有。你只要装个库,几行代码就能接入这些工具。

MCP的最大亮点是生态:Anthropic提供了Python、TypeScript、Java等多语言SDK,开发服务器超级简单。客户端不仅支持Claude模型,还兼容任意本地或在线大模型,甚至像Cursor这样的IDE也能直接用。想象一下,在Cursor里一键连接海量工具,Agent开发速度起飞!

二、搭建MCP客户端:从零到会聊天,只需几步

MCP开发的第一步是建客户端。我们用uv工具管理环境——uv是Rust写的Python依赖管理器,比pip快多了,支持虚拟环境,还兼容requirements.txt。安装uv超级简单:用pip install uv,或者curl -LsSf https://astral.sh/uv/install.sh | sh。

uv的基本用法

  • 安装依赖:uv pip install requests

  • 创建虚拟环境:uv venv myenv

  • 激活:source myenv/bin/activate(Linux/macOS)

  • 运行项目:uv run python script.py

现在,创建一个MCP客户端项目:

uv init mcp-clientcd mcp-clientuv venvsource .venv/bin/activateuv add mcp

然后新建client.py,写一个极简客户端代码(我贴了简化版,实际开发可以复制全文):

import asynciofrom mcp import ClientSessionfrom contextlib import AsyncExitStackclass MCPClient:    # 初始化、连接模拟服务器、聊天循环、清理资源等函数...async def main():    client = MCPClient()    try:        await client.connect_to_mock_server()        await client.chat_loop()    finally:        await client.cleanup()if name == "main":    asyncio.run(main())

运行uv run client.py,就能看到一个CLI界面:输入问题,它会模拟回复(先回显你的输入)。代码结构清晰:__init__初始化,chat_loop处理交互,cleanup释放资源。Jupyter里也能跑,加nest_asyncio.apply()解决事件循环冲突。

三、接入在线/本地模型,让客户端“活”起来

@极简版太基础了?加OpenAI或DeepSeek吧。先uv add openai python-dotenv,创建.env文件放API Key(国内用反代地址直连OpenAI)。DeepSeek类似,BASE_URL=https://api.deepseek.com。

修改client.py,用OpenAI客户端处理查询:

四、加载dotenv,读取API Key

self.client = OpenAI(api_key=self.openai_api_key, base_url=self.base_url)async def process_query(self, query: str) -> str:    messages = [{"role": "system", "content": "你是一个智能助手..."}, {"role": "user", "content": query}]    response = await ...  # 调用API    return response.choices[0].message.content

运行后,就能和大模型聊天了!本地模型呢?用Ollama或vLLM调度框架,它们兼容OpenAI API风格,只改.env就行。比如ollama:BASE_URL=http://localhost:11434/v1/,MODEL=qwq。vLLM类似,启动服务后改BASE_URL=http://localhost:8000/v1。

我试了QwQ-32B模型,响应速度飞快,感觉本地Agent开发门槛真低了。

五、MCP服务器实战:建个天气查询工具,体验Function Calling

客户端ready了,现在建服务器。MCP服务器提供Resources(资源)、Tools(工具)、Prompts(提示词)三种能力。我们用stdio(标准输入输出)模式建一个天气查询服务器,用OpenWeather API。

先uv add mcp httpx,获取API Key(免费注册)。新建server.py:

import jsonimport httpxfrom mcp.server.fastmcp import FastMCPmcp = FastMCP("WeatherServer")async def fetch_weather(city: str) -> dict:    # httpx请求OpenWeather API...def format_weather(data: dict) -> str:    # 格式化输出温度、湿度等...@mcp.tool()async def query_weather(city: str) -> str:    data = await fetch_weather(city)    return format_weather(data)if name == "main":    mcp.run(transport='stdio')

这个服务器注册了query_weather工具,描述清楚(城市英文名)。stdio模式下,服务器作为子进程跑。

六、连接客户端测试

修改client.py支持stdio连接和Function Calling:

async def connect_to_server(self, server_script_path: str):    # 启动stdio服务器,list_tools列出工具...async def process_query(self, query: str) -> str:    # list_tools获取可用工具,发给OpenAI    # 如果finish_reason=="tool_calls",call_tool执行...

运行uv run client.py server.py,问“北京今天天气如何?”大模型会自动调用工具,返回格式化天气:温度XX°C,湿度XX%... 超方便!

MCP通讯机制:本地用stdio,远程用HTTP+SSE(服务器推送事件)。JSON-RPC 2.0格式传输。Anthropic正考虑升级成流式HTTP,解决SSE单向限制。

调试用Inspector:装Node.js,npx -y @modelcontextprotocol/inspector uv run server.py,在浏览器http://127.0.0.1:5173/查看工具运行。

七、总结

MCP不只是协议,更是生态。它让Agent开发从“高端黑科技”变成“人人可上手”。我从零建了个天气Agent,花了不到一小时,就感受到协作效率的提升。未来,随着更多服务器开源,想象空间巨大。如果你也感兴趣,赶紧试试吧!

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询