关于 🤖 MCP Server Examples with AutoGen
这是一个以 AutoGen 展示 MCP 工具集成的示例项目,面向构建 AI Agent 的开发者。示例将本地数学工具与远程 Apify 网页浏览工具接入同一个 Agent,分别通过 Stdio 和 SSE 通信。
主要功能
- 01AutoGen Agent 调用 MCP 工具
- 02通过 Stdio 接入本地数学服务
- 03通过 SSE 接入 Apify 服务
- 04演示计算与网页浏览任务
适用场景
- 01让 Agent 计算算术问题
- 02搜索并总结近期新闻
MCP 相关
项目展示 AutoGen 如何连接本地 Stdio MCP 服务和远程 SSE MCP 服务,并让 Agent 使用两者提供的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🤖 使用 AutoGen 的 MCP 服务示例
本仓库提供了一个实用演示,展示如何在 AutoGen 框架内使用 Model Context Protocol (MCP) 将工具与 AI Agent 集成。
演示的关键特性:
- 双 MCP 集成: 展示如何将 AutoGen Agent 连接到:
- 一个使用 Stdio 传输的本地工具服务(
math_server.py)。 - 一个使用 Server-Sent Events (SSE) 传输的远程工具服务(Apify 的 RAG Web Browser Actor)。
- 一个使用 Stdio 传输的本地工具服务(
- 本地工具示例: 一个通过
math_server.py在本地运行的简单计算器(add、multiply)。 - 远程工具示例: 通过 Apify 的 MCP 服务利用其 RAG Web Browser Actor进行网页搜索和内容检索。
- AutoGen Agent: 一个配置为使用这两组工具来回答用户查询的
AssistantAgent。
目标: 说明 MCP 的灵活性,使 AI Agent 能够通过标准化通信协议(Stdio 和 SSE)访问本地或远程托管的各类工具。
场景: 示例 Agent 回答两个不同的问题:
- 一个数学问题(
(3 + 5) x 12?),预期使用本地的math_server.py。 - 一个获取最新新闻的请求(“总结伊朗与美国谈判的最新消息……”),预期使用远程 Apify 网页浏览工具。

📚 使用的库和框架
- AutoGen:AI Agent 框架(autogen_agentchat、autogen_core、autogen_ext)
- MCP:用于工具集成的 Model Context Protocol
- Python-dotenv:用于环境变量管理
- OpenAI API:用于大模型能力
- Apify API:用于网页浏览能力
🛠️ 设置
请仔细按照以下步骤设置你的环境:
-
前提条件:
- 确保已安装 Python 3.12。
- 如果尚未安装
uv,请安装:pip install uv
-
导航到项目目录:
cd mcp_autogen_sse_stdio -
创建并激活虚拟环境:
# Create virtual environment using uv uv venv --python 3.12 # Activate the virtual environment source .venv/bin/activate # On macOS/Linux # OR .\.venv\Scripts\activate # On Windows -
安装依赖项:
# Install project dependencies uv pip install -e .故障排除说明:如果你在安装 MCP 命令行时遇到任何问题,可以手动安装:
uv add "mcp[cli]" -
配置环境变量:
- 在
mcp_autogen_sse_stdio目录中创建一个.env文件。 - 添加你的 API 密钥:
OPENAI_API_KEY=your_openai_api_key_here APIFY_API_KEY=your_apify_api_key_here - 从 Apify MCP 服务页面获取你的 Apify API 密钥
- 在
🚀 运行项目
-
确保你处于父目录中(即项目目录的上一级):
cd .. -
使用
uv运行主脚本:uv run mcp_autogen_sse_stdio/main.py
这将运行演示,它会:
- 使用 Apify 工具总结有关伊朗与美国谈判的新闻
- 使用本地数学工具解决一个简单的数学问题:
(3 + 5) x 12
🔌 了解 MCP (Model Context Protocol)
MCP 是一个标准化 AI 模型与工具之间通信的协议。本示例演示了两种使用 MCP 的方式:
1. 本地工具 (StdioServerParams)
- 使用标准输入/输出进行通信
- 工具在你的本地机器上运行
- 示例:我们的
math_server.py提供简单的数学运算
2. 远程工具 (SseServerParams)
- 使用 Server-Sent Events (SSE) 进行通信
- 工具在远程服务上运行(如 Apify)
- 示例:通过 Apify 的 rag-web-browser 提供网页浏览能力
📝 代码详解
我们的 main.py 演示了:
-
环境搭建:
- 加载 API 密钥并对其进行验证
-
工具配置:
- 使用 StdioServerParams 设置本地数学工具
- 使用 SseServerParams 连接 Apify 的网页浏览器(API 来自 https://apify.com/apify/actors-mcp-server)
-
创建 Agent:
- 创建一个同时具备这两套工具的 AutoGen 助手
- 使用 GPT-4 作为基础模型
-
任务执行:
- 运行两个演示任务,展示两种工具的实际应用
- 通过网页浏览进行新闻摘要
- 通过数学计算解决算术问题
🔄 通信流程
User → AutoGen Agent → MCP Tools → Results → User
这个示例展示了使用 MCP 将不同类型的工具集成到一个 Agent 中是多么容易!
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。