Mcp Agent

Mcp Agent

使用模型上下文协议和简单的工作流模式构建有效的代理。

MCP Agent 快速开始指南

Logo

使用简单的、可组合的模式通过模型上下文协议构建有效的代理。

PyPI Discord Downloads

安装

# 推荐使用 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")
])

了解更多

完整文档和更多示例请访问: