Mcp Agent
使用模型上下文协议和简单的工作流模式构建有效的代理。
MCP Agent 快速开始指南
使用简单的、可组合的模式通过模型上下文协议构建有效的代理。
安装
# 推荐使用 uv
uv add "mcp-agent"
# 或使用 pip
pip install mcp-agent
基本用法示例
下面是一个基本的"查找"代理,它可以读取文件和访问网络内容:
import asyncio
from mcp_agent.app import MCPApp
from mcp_agent.agents.agent import Agent
from mcp_agent.workflows.llm.augmented_llm_openai import OpenAIAugmentedLLM
app = MCPApp(name="hello_world_agent")
async def example_usage():
async with app.run() as mcp_agent_app:
logger = mcp_agent_app.logger
# 创建可以读取文件系统或获取URL的代理
finder_agent = Agent(
name="finder",
instruction="你可以读取本地文件或获取URL。在被询问时返回请求的信息。",
server_names=["fetch", "filesystem"], # 此代理可使用的MCP服务器
)
async with finder_agent:
# 自动初始化MCP服务器并将其工具添加给LLM使用
tools = await finder_agent.list_tools()
# 将OpenAI LLM附加到代理(默认为GPT-4o)
llm = await finder_agent.attach_llm(OpenAIAugmentedLLM)
# 读取文件
result = await llm.generate_str("逐字显示README.md中的内容")
logger.info(f"README.md内容: {result}")
# 获取URL内容
result = await llm.generate_str(
"打印https://www.anthropic.com/research/building-effective-agents的前两段"
)
logger.info(f"博客简介: {result}")
# 多轮交互
result = await llm.generate_str("总结成一条128字符的推文")
logger.info(f"推文: {result}")
if __name__ == "__main__":
asyncio.run(example_usage())
配置文件
创建mcp_agent.config.yaml
配置文件:
execution_engine: asyncio
logger:
transports: [console]
level: debug
mcp:
servers:
fetch:
command: "uvx"
args: ["mcp-server-fetch"]
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "<你的目录>"]
openai:
default_model: gpt-4o
API密钥等敏感信息应存储在单独的mcp_agent.secrets.yaml
文件中。
核心功能
- 自动管理MCP服务器连接生命周期
- 实现《构建有效代理》中描述的所有模式,并支持组合使用
- 以模型无关的方式实现OpenAI的Swarm模式进行多代理编排
- 支持多种工作流模式:增强LLM、并行、路由器、意图分类器等
工作流模式示例
增强LLM
from mcp_agent.workflows.llm.augmented_llm_openai import OpenAIAugmentedLLM
llm = await agent.attach_llm(OpenAIAugmentedLLM)
result = await llm.generate_str("查询任务")
并行执行
from mcp_agent.workflows.parallel import Parallel
parallel = Parallel()
results = await parallel.execute([
agent1.llm.generate_str("任务1"),
agent2.llm.generate_str("任务2")
])
了解更多
完整文档和更多示例请访问: