mcp-agent

GitHub
8.3k 831 简单 1 次阅读 昨天Apache-2.0Agent开发框架语言模型图像
AI 解读 由 AI 自动生成,仅供参考

mcp-agent 是一个基于模型上下文协议(MCP)构建的轻量级框架,旨在帮助开发者轻松创建高效、可靠的 AI 智能体。它解决了传统智能体开发中连接管理复杂、架构设计繁琐以及长任务难以持久化的痛点。通过封装 MCP 服务器的生命周期管理,mcp-agent 让开发者无需关注底层连接细节,只需聚焦于业务逻辑。

该工具内置了多种经过验证的智能体协作模式(如地图 - 归约、编排器等),支持以组合方式灵活搭建工作流。其独特亮点在于对“持久化”的原生支持:结合 Temporal 技术,智能体可以在执行过程中暂停、恢复甚至从故障中重建,而无需修改任何代码,从而轻松应对复杂的长时间运行任务。

mcp-agent 非常适合希望快速落地 AI 应用的软件工程师和后端开发者,尤其是那些已经在使用或计划采用 MCP 生态的技术团队。无论是构建简单的问答助手,还是设计涉及多工具调用的复杂自动化流程,mcp-agent 都提供了一条简洁且稳健的实现路径,让构建高质量智能体变得像编写普通脚本一样简单。

使用场景

某电商公司的数据工程师需要构建一个智能助手,自动分析每日销售日志并查询库存数据库,最终生成包含改进建议的日报。

没有 mcp-agent 时

  • 连接管理繁琐:开发者需手动编写大量代码来维持与文件系统、SQL 数据库等多个 MCP 服务器的长连接,处理断线重连逻辑极易出错。
  • 工作流僵化:实现“先映射所有日志文件,再归约汇总数据”的复杂逻辑时,缺乏标准模式,导致代码耦合度高,难以复用或调整顺序。
  • 状态恢复困难:若任务在处理大文件时因网络波动中断,整个进程必须从头开始,无法暂停或从断点续跑,浪费计算资源。
  • 调试成本高:由于生命周期管理分散在业务逻辑中,排查是模型推理错误还是服务器连接故障变得异常耗时。

使用 mcp-agent 后

  • 自动化生命周期管理:mcp-agent 全自动处理底层 MCP 服务器的连接建立与维护,开发者只需声明所需服务(如 filesystem, sql),无需关心连接细节。
  • 组合式模式开发:直接调用内置的 Map-Reduce 或 Orchestrator 等经过验证的模式,像搭积木一样快速构建“读取 - 分析 - 写入”的稳健工作流。
  • 原生持久化支持:基于 Temporal 集成,任务遇到异常可自动暂停,环境恢复后无缝从断点继续执行,确保长运行任务的可靠性。
  • 清晰的责任分离:业务逻辑专注于指令设计,底层通信由框架屏蔽,使得定位问题和迭代功能变得直观高效。

mcp-agent 通过标准化连接管理与提供可组合的工作流模式,让开发者能以最低成本构建出既健壮又易于维护的生产级 AI 代理。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具是一个基于 Model Context Protocol (MCP) 的 Python 框架,主要用于构建 AI Agent,本身不涉及大型模型训练或推理的重型计算,因此无特殊 GPU 需求。推荐使用 'uv' 进行项目依赖管理。支持通过 Temporal 实现持久化执行。配置 MCP 服务器时可能需要安装 Node.js (用于 npx 命令) 或其他语言运行时。API 密钥需配置在 mcp_agent.secrets.yaml 文件或环境变量中。
python3.10+
mcp-agent
uv
openai
anthropic
google-generativeai
azure-identity
boto3
temporalio
mcp-agent hero image

快速开始

Logo

使用简单、可组合的模式,借助模型上下文协议构建高效智能体。

示例 | 构建高效智能体 | MCP

Pepy 总下载量 discord

lastmile-ai%2Fmcp-agent | Trendshift

概述

mcp-agent 是一个简单、可组合的框架,用于使用 模型上下文协议 构建高效智能体。

[!注] mcp-agent 的愿景是:只需 MCP 就能构建智能体,而简单的模式比复杂的架构更能稳定地交付高质量的智能体

mcp-agent 为您提供以下功能:

  1. 全面支持 MCP:它 完全 实现了 MCP,并负责管理 MCP 服务器连接的生命周期等繁琐事务,让您无需操心。
  2. 高效的智能体模式:它以 可组合 的方式实现了 Anthropic 的《构建高效智能体》中描述的所有模式,允许您将这些模式串联起来。
  3. 持久化智能体:它既适用于简单的智能体,也能扩展到基于 Temporal 构建的复杂工作流,因此您可以在不更改智能体 API 的情况下暂停、恢复和故障恢复。

总而言之,这是构建健壮智能体应用最简单、最容易的方式

我们欢迎各种形式的 贡献、反馈以及您对本项目的改进帮助。

最小示例

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")

async def main():
    async with app.run():
        agent = Agent(
            name="finder",
            instruction="使用文件系统和 fetch 来回答问题。",
            server_names=["filesystem", "fetch"],
        )
        async with agent:
            llm = await agent.attach_llm(OpenAIAugmentedLLM)
            answer = await llm.generate_str("用两句话概括 README.md。")
            print(answer)


if __name__ == "__main__":
    asyncio.run(main())

# 将您的 LLM API 密钥添加到 `mcp_agent.secrets.yaml` 或在环境变量中设置。
# 《快速入门指南》(https://docs.mcp-agent.com/get-started/overview)详细介绍了配置和密钥管理。

一览

构建智能体

以简单、可组合的模式(如 map-reduce、编排器、评估优化器、路由器等)将 LLM 连接到 MCP 服务器。

快速入门 ↗ | 文档 ↗

创建任意类型的 MCP 服务器

使用与 FastMCP 兼容的 API 创建 MCP 服务器。您甚至可以将智能体暴露为 MCP 服务器。

MCP 智能体服务器 ↗ | 🎨 构建 ChatGPT 应用程序 ↗ | 示例 ↗

全面支持 MCP

核心:工具 ✅ 资源 ✅ 提示词 ✅ 通知 ✅
进阶:OAuth ✅ 抽样 ✅ 引导式交互 ✅ 根节点 ✅

示例 ↗ | MCP 文档 ↗

持久化执行(Temporal)

利用 Temporal 作为智能体运行时后端,可在不进行任何 API 更改的情况下扩展至生产级工作负载。

文档 ↗ | 示例 ↗

☁️ 部署到云端

测试版:您可以自行部署智能体,也可以使用 mcp-c 获取托管的智能体运行时服务。所有应用都会被部署为 MCP 服务器。

演示 ↗ | 云端快速入门 ↗ | 示例 ↗

文档与 LLM 构建

mcp-agent 的完整文档可在 docs.mcp-agent.com 查阅,包括完整的 SDK 指南、CLI 参考以及高级模式。本自述文件提供了高层次的概览,帮助您快速上手。

目录

快速入门

[!提示] CLI 可通过 uvx mcp-agent 使用。要快速上手, 可以使用 uvx mcp-agent init 搭建项目,并用 uvx mcp-agent deploy my-agent 进行部署。

您只需运行以下命令,即可在两分钟内开始使用:

mkdir hello-mcp-agent && cd hello-mcp-agent
uvx mcp-agent init
uv init
uv add "mcp-agent[openai]"
# 将 OpenAI API 密钥添加到 `mcp_agent.secrets.yaml` 或设置 `OPENAI_API_KEY`
uv run main.py

安装

我们建议使用 uv 来管理您的 Python 项目(uv init)。

uv add "mcp-agent"

或者:

pip install mcp-agent

此外,还可以根据需要安装 LLM 提供商的可选包(例如:uv add "mcp-agent[openai, anthropic, google, azure, bedrock]")。

快速入门

[!提示] 在 examples 目录中,有多个示例应用可供您快速上手。要运行示例,您可以克隆此仓库,或使用 uvx mcp-agent init --template basic --dir my-first-agent 生成一个新项目。

cd examples/basic/mcp_basic_agent # 或其他示例目录
# 方法 A:使用 secrets YAML 文件
# cp mcp_agent.secrets.yaml.example mcp_agent.secrets.yaml 并编辑内容
uv run main.py

以下是一个基础的“查找”代理,它利用 fetch 和文件系统服务器来查找文件、阅读博客并发布推文。示例链接

finder_agent.py
import asyncio
import os

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()
            logger.info(f"可用工具:", data=tools)

            # 将 OpenAI 的 LLM 绑定到代理(默认为 GPT-4o)
            llm = await finder_agent.attach_llm(OpenAIAugmentedLLM)

            # 这将通过文件系统服务器进行文件查找和读取
            result = await llm.generate_str(
                message="请逐字显示 README.md 中的内容"
            )
            logger.info(f"README.md 内容: {result}")

            # 使用 fetch 服务器从 URL 获取内容
            result = await llm.generate_str(
                message="请打印 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] # 您也可以同时使用 [file, console]
  level: debug
  path: "logs/mcp-agent.jsonl" # 用于文件传输
  # 对于动态日志文件名:
  # path_settings:
  #   path_pattern: "logs/mcp-agent-{unique_id}.jsonl"
  #   unique_id: "timestamp"  # 或 "session_id"
  #   timestamp_format: "%Y%m%d_%H%M%S"

mcp:
  servers:
    fetch:
      command: "uvx"
      args: ["mcp-server-fetch"]
    filesystem:
      command: "npx"
      args:
        [
          "-y",
          "@modelcontextprotocol/server-filesystem",
          "<添加您的目录>",
        ]

openai:
  # 密钥(API 密钥等)存储在 mcp_agent.secrets.yaml 文件中,该文件可以被忽略提交到版本库
  default_model: gpt-4o
代理输出 Image

为什么选择 mcp-agent

目前市面上已经有许多 AI 框架。然而,mcp-agent 是唯一一个专为共享协议——MCP——构建的框架。mcp-agent 将 Anthropic 的 Building Effective Agents 模式与开箱即用的 MCP 运行时相结合,使您能够专注于行为逻辑,而非繁琐的样板代码。团队之所以选择它,是因为它具有以下特点:

  • 可组合性:每个模式都以可重用的工作流形式提供,您可以自由组合搭配。
  • 原生支持 MCP:任何 MCP 服务器(文件系统、fetch、Slack、Jira、FastMCP 应用)都可以无需自定义适配器直接连接。
  • 生产就绪:内置 Temporal 支持的持久化机制、结构化日志记录、令牌计费以及云部署等功能均为一流水平。
  • Python 式设计:仅需少量装饰器和上下文管理器即可轻松完成所有配置与集成。

文档:欢迎使用 mcp-agent有效模式概览

核心组件

每个项目都围绕一个 MCPApp 运行时展开,该运行时负责加载配置、注册代理和 MCP 服务器,并暴露工具及工作流。核心组件指南将详细介绍这些构建模块。

MCPApp

初始化配置、日志记录、跟踪以及执行引擎,使所有组件共享同一个上下文。

from mcp_agent.app import MCPApp

app = MCPApp(name="finder_app")

async def main():
    async with app.run() as running_app:
        logger = running_app.logger
        logger.info("应用已就绪", data={"服务器": list(running_app.context.server_registry.registry)})

文档:MCPApp • 示例:examples/basic/mcp_basic_agent

Agents & AgentSpec

代理将指令与其可能调用的 MCP 服务器(以及可选函数)绑定在一起。AgentSpec 定义可以从磁盘加载,并通过工厂辅助工具转换为代理或增强型大语言模型。

from pathlib import Path
from mcp_agent.agents.agent import Agent
from mcp_agent.workflows.factory import load_agent_specs_from_file

agent = Agent(
    name="研究员",
    instruction="使用网络和文件系统访问功能研究主题",
    server_names=["fetch", "filesystem"],
)

async with agent:
    tools = await agent.list_tools()

async with app.run() as running_app:
    specs = load_agent_specs_from_file(
        str(Path("examples/basic/agent_factory/agents.yaml")),
        context=running_app.context,
    )

文档:Agents代理工厂辅助工具 • 示例:examples/basic/agent_factory

增强型大语言模型

增强型大语言模型将提供商 SDK 与代理的工具、记忆和结构化输出助手封装在一起。将它附加到代理上,即可解锁 generategenerate_strgenerate_structured 方法。

from pydantic import BaseModel
from mcp_agent.workflows.llm.augmented_llm import RequestParams
from mcp_agent.workflows.llm.augmented_llm_openai import OpenAIAugmentedLLM

class Summary(BaseModel):
    title: str
    verdict: str

async with agent:
    llm = await agent.attach_llm(OpenAIAugmentedLLM)
    report = await llm.generate_str(
        message="根据 CHANGELOG.md 草拟一段三句话的发布说明",
        request_params=RequestParams(maxTokens=400, temperature=0.2),
    )
    structured = await llm.generate_structured(
        message="返回一个包含 `title` 和 `verdict` 的 JSON 对象,总结 README 文件。",
        response_model=Summary,
    )

文档:增强型大语言模型 • 示例:examples/basic/mcp_basic_agent以及 gallery.md 中列出的工作流项目。

工作流与装饰器

MCPApp 装饰器可以将协程转换为持久性的工作流和工具。相同的注解既适用于 asyncio 也适用于 Temporal 执行。

from datetime import timedelta
from mcp_agent.executor.workflow import Workflow, WorkflowResult

@app.workflow
class PublishArticle(Workflow[WorkflowResult[str]]):
    @app.workflow_task(schedule_to_close_timeout=timedelta(minutes=5))
    async def draft(self, topic: str) -> str:
        return f"- 关于 {topic} 的简介\n- 重点内容\n- 下一步"

    @app.workflow_run
    async def run(self, topic: str) -> WorkflowResult[str]:
        outline = await self.draft(topic)
        return WorkflowResult(value=outline)

文档:装饰器参考 • 示例:examples/workflows

配置与密钥

设置可以从 mcp_agent.config.yamlmcp_agent.secrets.yaml、环境变量以及可选的预加载字符串中加载。请勿将密钥存储在源代码控制中。

# mcp_agent.config.yaml
execution_engine: asyncio
mcp:
  servers:
    fetch:
      command: "uvx"
      args: ["mcp-server-fetch"]
    filesystem:
      command: "npx"
      args: ["-y", "@modelcontextprotocol/server-filesystem"]
openai:
  default_model: gpt-4o-mini

# mcp_agent.secrets.yaml(已忽略于 git)
openai:
  api_key: "${OPENAI_API_KEY}"

文档:配置参考指定密钥

MCP 集成

可以通过编程方式连接到现有的 MCP 服务器,或将多个服务器聚合为一个统一的接口。

from mcp_agent.mcp.gen_client import gen_client

async with app.run():
    async with gen_client("filesystem", app.server_registry, context=app.context) as client:
        resources = await client.list_resources()
        app.logger.info("文件系统资源", data={"URIs": [r.uri for r in resources.resources]})

文档:MCP 集成概述 • 示例:examples/mcp

工作流模式

关键代理模式以 AugmentedLLM 的形式实现。可以使用工厂辅助函数来配置这些模式,或查看 gallery.md 中列出的可运行项目。

模式 辅助函数 简介 文档
并行(Map-Reduce) create_parallel_llm(...) 扇出专家任务,并将结果扇入汇总。
并行
路由器 create_router_llm(...) / create_router_embedding(...) 将请求路由到最佳的代理、服务器或函数。
路由器
意图分类器 create_intent_classifier_llm(...) / create_intent_classifier_embedding(...) 在自动化之前,将用户输入归类到不同的意图中。 意图分类器
协调者-工作者 create_orchestrator(...) 生成计划并协调工作者代理。
规划者
深度研究 create_deep_orchestrator(...) 长期限的研究,包含知识提取和策略检查。 深度研究
评估者-优化者 create_evaluator_optimizer_llm(...) 不断迭代,直到评估者批准结果。
评估者-优化者
蜂群 create_swarm(...) 多代理交接,与 OpenAI Swarm 兼容。
蜂群

持久化执行

execution_engine 切换为 temporal,即可实现暂停/恢复、重试、人工干预以及持久化历史记录等功能,而无需更改工作流代码。可以在应用旁边运行一个工作进程来托管活动。

from mcp_agent.executor.temporal import create_temporal_worker_for_app

async with create_temporal_worker_for_app(app) as worker:
    await worker.run()

文档:持久化代理Temporal 后端 • 示例:examples/temporal

代理服务器

MCPApp 暴露为标准的 MCP 服务器,以便 Claude Desktop、Cursor 或自定义客户端可以调用您的工具和工作流。

from mcp_agent.server import create_mcp_server_for_app

@app.tool
def grade_story(story: str) -> str:
    return "报告..."

if __name__ == "__main__":
    server = create_mcp_server_for_app(app)
    server.run_stdio()

文档:代理服务器 • 示例:examples/mcp_agent_server

CLI 参考

uvx mcp-agent 可用于搭建项目、管理密钥、检查工作流以及部署到云端。

uvx mcp-agent init --template basic             # 搭建新项目
uvx mcp-agent deploy my-agent                   # 部署到 mcp-agent 云平台

文档:CLI 参考入门指南

身份验证

可以从密钥文件中加载 API 密钥,也可以使用内置的 OAuth 客户端获取并持久化 MCP 服务器的令牌。

# mcp_agent.config.yaml 摘录
oauth:
  providers:
    github:
      client_id: "${GITHUB_CLIENT_ID}"
      client_secret: "${GITHUB_CLIENT_SECRET}"
      scopes: ["repo", "user"]

文档:高级身份验证服务器身份验证 • 示例:examples/basic/oauth_basic_agent

高级功能

可观测性与控制

通过配置启用结构化日志记录和 OpenTelemetry,并以编程方式跟踪令牌使用情况。

# mcp_agent.config.yaml
logger:
  transports: [console]
  level: info
otel:
  enabled: true
  exporters:
    - console

TokenCounter 可以跟踪代理、工作流和 LLM 节点的令牌使用情况。您可以附加监听器来实时接收更新或触发警报。

# 在 `async with app.run() as running_app:` 中
# 当启用了追踪时,token_counter 会存在于运行应用的上下文中。
token_counter = running_app.context.token_counter

class TokenMonitor:
    async def on_token_update(self, node, usage):
        print(f"[{node.name}] 总计={usage.total_tokens}")

monitor = TokenMonitor()
watch_id = await token_counter.watch(
    callback=monitor.on_token_update,
    node_type="llm",
    threshold=1_000,
    include_subtree=True,
)

await token_counter.unwatch(watch_id)

文档:可观测性 • 示例:examples/tracing

工作流编排

使用工厂辅助函数(路由器、并行管道、编排器等)混合搭配 AgentSpecs,构建更高级别的工作流。

from mcp_agent.workflows.factory import create_router_llm

# 如上所示,可以通过 load_agent_specs_from_file 加载规格。
async with app.run() as running_app:
    router = await create_router_llm(
        agents=specs,
        provider="openai",
        context=running_app.context,
    )

文档:工作流编排 • 示例:examples/basic/agent_factory

信号与人工输入

暂停工作流以等待审批或额外数据。Temporal 会持久化存储状态,直到操作员恢复执行。

from mcp_agent.human_input.types import HumanInputRequest

response = await self.context.request_human_input(
    HumanInputRequest(
        prompt="批准草稿吗?",
        required=True,
        metadata={"workflow_id": self.context.workflow_id},
    )
)

可通过 mcp-agent cloud workflows resume … --payload '{"content": "approve"}' 恢复执行。文档:部署代理——人工输入 • 示例:examples/human_input/temporal

应用配置

当需要动态配置(如测试环境、多租户主机)而无需使用 YAML 文件时,可以以编程方式构建 Settings 对象。

from mcp_agent.config import Settings, MCPSettings, MCPServerSettings

settings = Settings(
    execution_engine="asyncio",
    mcp=MCPSettings(
        servers={
            "fetch": MCPServerSettings(command="uvx", args=["mcp-server-fetch"]),
        }
    ),
)
app = MCPApp(name="configured_app", settings=settings)

文档:配置您的应用

图标

为代理和工具添加图标,以便支持图像显示的 MCP 客户端(如 Claude Desktop、Cursor)能够渲染更丰富的用户界面。

from base64 import standard_b64encode
from pathlib import Path
from mcp_agent.icons import Icon

icon_data = standard_b64encode(Path("my-icon.png").read_bytes()).decode()
icon = Icon(src=f"data:image/png;base64,{icon_data}", mimeType="image/png", sizes=["64x64"])

app = MCPApp(name="my_app_with_icon", icons=[icon])

@app.tool(icons=[icon])
async def my_tool() -> str:
    return "带着风格的问候"

文档:MCPApp 图标 • 示例:examples/mcp_agent_server/asyncio

MCP 服务器管理

使用 MCPAggregatorgen_client 来管理 MCP 服务器连接,并暴露组合后的工具集。

from mcp_agent.mcp.mcp_aggregator import MCPAggregator

async with MCPAggregator.create(server_names=["fetch", "filesystem"]) as aggregator:
    tools = await aggregator.list_tools()

文档:连接到 MCP 服务器 • 示例:examples/basic/mcp_server_aggregator

云部署

部署到 mcp-agent 云平台,享受托管的 Temporal 执行、密钥管理和 HTTPS 的 MCP 端点服务。

uvx mcp-agent login
uvx mcp-agent deploy my-agent
uvx mcp-agent cloud apps list

文档:云概览部署快速入门 • 示例:examples/cloud

示例

浏览 gallery.md,查看按概念分组的可运行示例、演示视频和社区项目。每个条目都注明了对应的文档页面以及在本地运行所需的命令。

常见问题解答

使用 mcp-agent 的核心优势是什么?

mcp-agent 提供了一种简化的途径,用于利用 MCP(模型上下文协议)服务器公开的功能来构建 AI 代理。

MCP 层次较低,而该框架负责处理与服务器连接、LLM 交互、外部信号(如人工输入)的处理,以及通过持久化执行支持持久状态等底层机制。这使开发者能够专注于 AI 应用的核心业务逻辑。

核心优势:

  • 🤝 互操作性:确保任何由任意数量 MCP 服务器暴露的工具都能无缝集成到您的代理中。
  • ⛓️ 可组合性与可定制性:实现了定义明确的工作流,同时以可组合的方式支持复合工作流,并允许在模型提供商、日志记录、编排器等方面进行完全自定义。
  • 💻 程序化控制流:让开发变得更简单,您只需编写代码,而无需考虑图、节点和边的概念。对于分支逻辑,直接使用 if 语句;对于循环,则使用 while 循环。
  • 🖐️ 人工输入与信号:支持暂停工作流以等待外部信号,例如人工输入,这些信号会以工具调用的形式暴露给代理。

使用 mcp-agent 是否需要 MCP 客户端?

不需要。您可以随时随地使用 mcp-agent,因为它会为您自动创建 MCP 客户端。这使得您能够在 Claude Desktop 等 MCP 主机之外,直接利用 MCP 服务器。

以下是设置 mcp-agent 应用程序的几种方式:

MCP-Agent 服务器

您可以将 mcp-agent 应用程序本身作为 MCP 服务器公开(参见 示例),从而使 MCP 客户端能够通过 MCP 服务器的标准工具 API 与复杂的 AI 工作流进行交互。这实际上就是一个“服务器中的服务器”。

MCP 客户端或主机

您也可以直接将 mcp-agent 嵌入到 MCP 客户端中,以管理跨多个 MCP 服务器的编排工作。

独立运行

您还可以以独立方式使用 mcp-agent 应用程序(即它们不属于任何 MCP 客户端)。示例均为独立应用程序。

如何部署到云端?

登录后运行 uvx mcp-agent deploy <app-name>。CLI 会打包您的项目、配置密钥,并暴露一个由持久化 Temporal 运行时支持的 MCP 端点。请参阅 [云快速入门](https://docs.mcp-agent.com/get-started/ cloud),获取分步截图和 CLI 输出。

API 参考文档在哪里?

所有类、装饰器和 CLI 命令都在 docs.mcp-agent.com 上进行了文档化。API 参考llms-full.txt 文件旨在方便 LLM 或其他工具轻松地理解整个 API 表面。

让我分享一个有趣的事实吧!

我曾考虑将这个项目命名为 silsila(سلسلہ),在乌尔都语中意为“事件链”。最终选择了更直白的 mcp-agent,不过项目中仍有一个彩蛋,向 silsila 致敬。

贡献

我们欢迎各种形式的贡献——修复 bug、新增示例、撰写文档或提出功能需求。请从 CONTRIBUTING.md 开始,发起讨论,或加入我们的 Discord 社区。

没有众多开源贡献者的不懈努力,mcp-agent 核心不可能实现。感谢大家!

贡献者面孔

版本历史

v0.0.212025/05/09
v0.0.182025/05/02
v0.0.162025/04/17
v0.0.152025/04/16
v0.0.112025/03/25
v0.0.102025/03/20
v0.0.92025/03/15
v0.0.82025/03/06
v0.0.72025/02/19

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160.8k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|3天前
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像