
MCP 协议完全指南:12个核心AI智能体开发框架深度解析
MCP 协议完全指南:12个核心AI智能体开发框架深度解析

随着大型语言模型(LLM)和生成式AI的快速发展,**AI 智能体(AI Agents)**正成为2025年最热门的技术趋势。这些智能体已经超越了传统聊天机器人的局限,具备了理解复杂指令、自主规划决策、与外部系统交互的强大能力。
然而,AI智能体开发面临一个核心挑战:如何为智能体提供标准化的工具调用和系统集成方式?
**MCP(Model Context Protocol,模型上下文协议)**正是解决这一问题的关键技术。
MCP 旨在为 AI 智能体与外部环境(如工具、数据库、API)的交互提供一个通用规范和结构化格式。它就像是 AI 智能体的“HTTP 协议”,确保了不同开发者构建的智能体和工具能够无缝协作,极大地提高了开发效率和系统的互操作性。
为了帮助开发者快速上手,一个蓬勃发展的 MCP 生态系统已经形成。本文将带你深入了解 12 个核心的 MCP 开发框架和 SDK,并提供代码示例,助你选择最适合你的项目的工具。
核心 SDK 与官方实现
这些是实现 MCP 规范的基础工具,适用于从零开始构建 MCP 兼容服务的开发者。
1. OpenAI SDK
OpenAI 作为行业的领导者,其官方 SDK 内置了对 MCP 的支持,允许开发者轻松地将符合 MCP 规范的工具集成到他们的 AI 应用中。
- 解释:这意味着你可以直接在调用 OpenAI 模型时,通过一个标准的 MCP 端点来提供工具集,而无需手动处理复杂的工具调用逻辑。
- 代码实例 (概念性 Python 示例):
from openai import OpenAI client = OpenAI() # 直接将 MCP 服务器的 URL 作为工具来源 response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "帮我查一下旧金山今天的天气,并发送一封邮件总结"}], # tool_source 指向一个符合 MCP 规范的工具服务器 tool_source={"type": "mcp", "url": "https://api.my-tools.com/mcp/v1"} ) print(response.choices[0].message.content)
2. MCP Python SDK
MCP 官方推出的 Python SDK,是构建 MCP 兼容服务器的首选工具,提供了标准化的实现方法。
- 解释:如果你想用 Python 创建一个工具服务器,并让任何支持 MCP 的智能体(如 OpenAI Agent)来调用它,这个 SDK 就是你的最佳选择。
- 代码实例 (使用 FastAPI 风格):
from mcp_sdk import create_app, tool import uvicorn @tool def get_weather(city: str) -> str: """获取指定城市的当前天气。""" # 实际场景中会调用天气 API return f"{city}的天气是晴朗,25°C。" # create_app 会自动将带有 @tool 装饰器的函数转换为 MCP 兼容的端点 app = create_app(tools=[get_weather], title="My Weather Tool Server") if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000)
3. MCP TypeScript SDK
与 Python SDK 对应,这是官方的 TypeScript 工具包,用于构建基于官方 Schema 的 MCP 兼容服务器。
- 解释:非常适合在 Node.js 或 Deno 环境中工作的开发者,特别是那些构建全栈 TypeScript 应用的团队。
- 代码实例 (使用 Express 风格):
import { createMcpRouter, tool } from '@mcp-sdk/typescript'; import express from 'express'; const getStockPrice = tool({ name: 'getStockPrice', description: '获取指定股票代码的当前价格。', input: { symbol: { type: 'string' } }, handler: async ({ symbol }) => { // 调用股票 API return { price: 250.75 }; }, }); const app = express(); // 将 MCP 路由挂载到 /mcp 路径 app.use('/mcp', createMcpRouter({ tools: [getStockPrice] })); app.listen(3000, () => console.log('MCP Server running on port 3000'));
全栈智能体构建框架
这些是功能更全面的框架,不仅支持 MCP,还提供了任务协调、工作流编排等高级功能。
4. LastMile MCP Agent
一个由工作流驱动的框架,用于创建具有复杂任务协调逻辑的 MCP 兼容智能体。
- 解释:当你需要构建的智能体不只是调用单个工具,而是需要执行一系列相互依赖的步骤(例如:先搜索信息 -> 再分析数据 -> 最后生成报告)时,LastMile 就非常有用。
- 代码实例 (概念性 YAML 定义):
# 定义一个智能体工作流 agent: name: research_and_report_agent protocol: mcp # 指定使用 MCP 协议 workflow: - step: search tool: web_search input: "AI agents market size 2025" - step: analyze tool: data_analysis input: steps.search.output prompt: "Summarize the key findings from the search results." - step: write_report tool: text_generator input: steps.analyze.output prompt: "Write a short report based on the summary."
5. Strands Agents
一个模型驱动的 SDK,用于设计、部署和编排具有类型化 Schema 的 MCP 智能体。
- 解释:Strands 强调类型安全,通过严格的 Schema 定义来确保智能体与工具之间的交互是可靠和可预测的,减少了运行时错误。
- 代码实例 (概念性 Python 示例):
from strands import Agent, Strand, mcp_server from pydantic import BaseModel # 使用 Pydantic 定义严格的输入输出类型 class WeatherInput(BaseModel): city: str unit: str = "celsius" class WeatherOutput(BaseModel): temperature: float description: str # 定义一个 "Strand",即一个可执行的任务单元 weather_strand = Strand( name="get_weather", input_schema=WeatherInput, output_schema=WeatherOutput, handler=lambda i: WeatherOutput(temperature=25.0, description="Sunny") ) # 用这个 Strand 创建一个 Agent 并通过 MCP 暴露 agent = Agent(strands=[weather_strand]) server = mcp_server(agent)
6. Praison AI
一个基于 Python 的多智能体框架,专门用于构建和运行与 MCP 对齐的智能体和服务器。
- 解释:Praison AI 的特色在于多智能体协作。你可以创建多个各司其职的智能体(如一个研究员、一个作家),让它们通过 MCP 协议进行通信和协作,共同完成复杂任务。
- 代码实例 (概念性 Python 示例):
from praisonai import PraisonAI, Agent # 定义研究员智能体 researcher = Agent( role="Researcher", goal="Find the latest news about MCP protocol", # 此处的工具可以通过 MCP 协议从外部获取 mcp_tool_server="http://my-tools/mcp" ) # 定义作家智能体 writer = Agent( role="Writer", goal="Write a blog post based on the researcher's findings" ) # 创建一个智能体团队来执行任务 crew = PraisonAI(agents=[researcher, writer]) result = crew.run("Write a blog post about the latest MCP news.")
集成与适配层
这些工具旨在将现有的 AI 框架或应用与 MCP 生态系统连接起来。
7. Langchain MCP Adapter
一个轻量级的包装器,用于将流行的 LangChain/LangGraph 与基于 MCP 的工具链接起来。
- 解释:如果你已经在使用 LangChain 构建应用,但想利用 MCP 生态中的某个特定工具集,这个适配器可以帮你轻松实现桥接,而无需重写整个应用。
- 代码实例 (概念性 Python 示例):
from langchain_openai import ChatOpenAI from langchain.agents import create_tool_calling_agent, AgentExecutor from langchain_mcp_adapter import McpToolSource # 创建一个指向 MCP 服务器的工具源 mcp_tools = McpToolSource(url="https://api.my-tools.com/mcp/v1").fetch_tools() llm = ChatOpenAI(model="gpt-4o") prompt = ... # Your agent prompt # 将从 MCP 服务器获取的工具直接用于 LangChain Agent agent = create_tool_calling_agent(llm, mcp_tools, prompt) agent_executor = AgentExecutor(agent=agent, tools=mcp_tools) agent_executor.invoke({"input": "What's the weather in London?"})
8. Google ADK (Agent Development Kit)
Google 的开源智能体开发套件,原生支持 MCP 服务器。
- 解释:ADK 提供了一套全面的解决方案,帮助开发者在 Google Cloud 生态中构建、部署和管理智能体。其对 MCP 的原生支持意味着你可以轻松地将外部 MCP 工具集成到基于 Google 技术的智能体中。
9. Composio
一个用于将 OpenAI 智能体与 Composio 管理的、MCP 兼容的服务器和工作流相集成的 SDK。
- 解释:Composio 提供了一个托管的工具平台。你可以通过它的界面连接和管理数百种 SaaS 应用(如 Slack、Jira、HubSpot),Composio 会自动将它们打包成一个 MCP 兼容的服务器,供你的智能体调用。
- 代码实例 (概念性 Python 示例):
from openai import OpenAI from composio import Composio client = OpenAI() composio = Composio(api_key="COMPOSIO_API_KEY") # Composio 会提供一个唯一的 MCP URL,包含了你所连接的所有工具 mcp_tool_server_url = composio.get_mcp_server_url() response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "在 Slack 的 #general 频道里发一条消息:'Hello from my AI agent!'"}], tool_source={"type": "mcp", "url": mcp_tool_server_url} )
10. Semantic Kernel
微软的编排 SDK,用于在无服务器环境中集成工具和 AI 智能体。
- 解释:Semantic Kernel (SK) 专注于将 LLM 与现有代码和业务逻辑(通过“插件”的形式)进行粘合。它对 MCP 的支持意味着 SK 创建的“插件”可以被暴露为 MCP 工具,或者 SK 智能体可以调用外部的 MCP 工具,特别适合企业级的 .NET 和 Python 环境。
前端与无服务器集成
这些 SDK 专注于将前端应用或无服务器函数与 MCP 后端连接起来。
11. CopilotKit MCP Support
使前端应用能够直接与任何兼容的 MCP 服务器进行通信,并提供内置的集成支持。
- 解释:这是一个前端优先的解决方案。如果你想在你的 React 或 Vue 应用中构建一个聊天界面,让用户可以直接与后端的 MCP 智能体交互,CopilotKit 提供了相应的 UI 组件和 hooks,极大地简化了前端开发。
- 代码实例 (概念性 React/JSX 示例):
import { useCopilotAction } from "@copilotkit/react-core"; import { CopilotTask } from "@copilotkit/react-ui"; // 前端直接定义一个可以被后端 AI 调用的 Action useCopilotAction({ name: "sayHello", description: "Says hello to the user.", handler: async ({ name }) => { alert(`Hello, ${name}!`); }, }); // CopilotKit 会将前端的 Action 与后端的 MCP Agent 连接起来 function App() { // 任务会由后端 MCP Agent 规划,并可能调用前端 Action const task = new CopilotTask({ initialMessages: ... // 指向你的 MCP 兼容后端 mcp_endpoint: "/api/mcp-agent" }); return <YourChatUI task={task} />; }
12. Vercel AI SDK
一个客户端 SDK,支持 MCP,用于将部署在 Vercel 平台上的应用与工具和 AI 智能体连接起来。
- 解释:专为 Vercel 生态系统优化。它提供了简单易用的 React hooks 和 Svelte/Vue 的辅助函数,让你能在无服务器函数(Serverless Functions)或边缘函数(Edge Functions)中轻松地与 MCP 智能体进行流式交互。
- 代码实例 (概念性 React/Next.js 示例):
import { useChat } from 'ai/react'; export default function Chat() { // useChat hook 可以配置为与一个实现了 MCP 协议的后端 API 路由通信 const { messages, input, handleInputChange, handleSubmit } = useChat({ api: '/api/chat-mcp', // 这个 API 路由背后是一个 MCP 智能体 }); return ( <div> {/* 渲染聊天界面 */} </div> ); }
结论
MCP 协议及其丰富的生态系统正在为构建下一代 AI 智能体铺平道路。通过提供一个统一的通信标准,它打破了不同平台和框架之间的壁垒,让开发者能够像拼接乐高积木一样,自由组合来自不同来源的工具和模型。
无论你是想从零开始构建一个强大的工具服务器,将现有 LangChain 应用接入更广泛的生态,还是在前端应用中集成智能体能力,这个生态系统中总有一款工具适合你。现在,就选择一个你感兴趣的框架,开始构建你的第一个 MCP 智能体吧! 🚀