Token导航 LogoToken导航TokenDH.com
a2abridge (Darrelmiller) logo
AI代理未说明官方级别未说明来源级核验

a2abridge (Darrelmiller)

MCP Server

一个基于模型上下文协议(MCP)的服务器,用于桥接使用A2A协议的AI代理,动态暴露代理技能并管理代理注册。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
AI代理集成持久化存储C#ClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

darrelmiller

提供方

darrelmiller

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

A2ABridge-用于A2A代理集成的MCP服务器

一种MCP(模型上下文协议)服务器,使用代理到代理(A2A)协议桥接AI代理。此服务器将代理技能作为MCP工具动态公开,并管理代理注册。

特性

  • 动态工具注册:注册代理时,自动将代理技能作为MCP工具公开
  • 代理管理:通过MCP工具添加和删除代理
  • 永久存储:代理注册保存到本地文件(agents.json)
  • A2A协议支持:使用A2A客户端库与注册代理进行交互
  • 异步任务支持:自动轮询长时间运行的代理任务,直到完成
  • 伪影提取:从代理任务工件、历史记录或状态消息中检索响应
  • 开放遥测仪器:调试和监控的全面跟踪

建筑

组件

  1. 代理商注册 (Services/AgentRegistry.cs)

- 管理注册代理人的集合 - 将代理信息持久化到 agents.json - 从提供的URL获取和缓存代理卡 - 使用 AgentCard 模型来自 A2A NuGet包

  1. 动态McpServer (DynamicMcpServer.cs)

- 实施MCP服务器协议 - 基于注册的代理动态生成工具定义 - 将工具调用路由到适当的代理 - 处理同步(AgentMessage)和异步(AgentTask)响应 - 轮询任务直到完成,并从工件中提取结果

  1. A2A客户端 (从 A2A NuGet包)

- 通过HTTP处理与A2A代理的通信 - 基于代理端点URI的工厂创建实例

MCP工具

管理工具

AddAgent

通过获取代理卡并将其添加到注册表来注册新代理。

参数:

  • alias (string):此代理使用的别名
  • urlToAgentCard (string):代理卡JSON的URL

例子:

{
  "alias": "weatherAgent",
  "urlToAgentCard": "https://example.com/agents/weather/agent-card"
}

脱模剂

通过别名从注册表中删除代理。

参数:

  • alias (string):要删除的代理的别名

例子:

{
  "alias": "weatherAgent"
}

动态代理工具

一旦代理注册,它的每一项技能都可以作为具有命名模式的MCP工具使用: {alias}_{skillName}

参数:

  • input (string):传递给代理技能的输入字符串

例子: 如果您使用别名注册代理 weatherAgent 它有一种叫做 getForecast,您可以致电:

{
  "input": "What's the weather in Seattle?"
}

使用工具名称 weatherAgent_getForecast.

代理卡格式

代理卡遵循A2A协议规范。关键属性包括:

  • 名字:代理人的可读名称
  • 描述:描述代理人的工作
  • 网址:托管代理的URL
  • 协议版本A2A协议的版本(例如“2024-11-05”)
  • 技能:代理可以执行的一系列功能

代理卡结构示例:

{
  "name": "Echo Agent",
  "description": "Echoes back messages with a prefix",
  "url": "https://example.com/.well-known/agent-card.json",
  "protocolVersion": "2024-11-05",
  "skills": [
    {
      "name": "echo",
      "description": "Echoes back any message sent to the agent"
    }
  ]
}

有关完整的A2A代理卡规格,请参阅 A2A协议文件.

建立和运行

构建

dotnet build

dotnet run

服务器使用stdio传输,并通过标准输入/输出进行通信,使其与MCP客户端兼容。

配置

  • 存储位置:代理注册存储在 agents.json 在应用程序的基本目录中
  • 运输:使用stdio(标准输入/输出)进行MCP通信
  • 日志记录:所有日志都指向stderr,以避免干扰MCP协议通信

用法示例

  1. 启动MCP服务器
  2. 使用MCP客户端调用 AddAgent 带有代理卡URL的工具
  3. 代理的技能会自动作为工具提供
  4. 使用呼叫代理技能 {alias}_{skillName} 刀具样式
  5. 代理通过以下方式在服务器重启过程中持续存在 agents.json

MCP客户端配置

要将此服务器与MCP客户端(例如Claude Desktop)一起使用,请将以下内容添加到MCP配置文件中:

{
  "mcpServers": {
    "a2abridge": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "path/to/A2ABridge/A2ABridge.csproj"
      ]
    }
  }
}

或者,如果你已经构建了项目,你可以直接运行可执行文件:

{
  "mcpServers": {
    "a2abridge": {
      "command": "path/to/A2ABridge/bin/Debug/net9.0/A2ABridge.exe"
    }
  }
}

example-mcp-config.json 以获得完整的配置示例。

代理卡示例

代理卡示例见 example-agent-card.json 用于测试目的。

依赖项

  • .NET 9.0
  • 模型上下文协议(0.4.0-preview.3)
  • 微软。扩展。主机(9.0.0)
  • 微软。扩展。Http(10.0.0)
  • A2A(0.3.3-preview)-具有AgentCard模型的代理到代理协议库
  • 开放遥测。出口商。控制台(1.14.0)
  • 开放遥测。扩展。主机(1.14.0)
  • 开放遥测。仪表。Http(1.14.0)

项目结构

A2ABridge/
├── Models/
│   └── RegisteredAgent.cs    # Registered agent model
├── Services/
│   └── AgentRegistry.cs      # Agent management service
├── DynamicMcpServer.cs       # MCP server implementation with task polling
├── Program.cs                # Application entry point with OpenTelemetry setup
└── agents.json               # Persistent agent storage (created at runtime)

备注

  • 该项目使用官方 A2A 的NuGet包 AgentCard 模型和相关类型
  • A2A端点来源于代理卡URL
  • 代理技能的所有工具输入都以字符串形式传递
  • 错误处理返回适当的MCP错误代码,以实现更好的客户端集成
  • 任务处理:代理返回时 AgentTask 而不是 AgentMessage,桥自动:

- 检查任务是否处于终端状态(已完成、已取消、失败、已拒绝) - 每500毫秒(最多60秒)轮询一次任务,直到它达到终端状态 - 从任务工件(主要)、任务历史或状态消息(回退)中提取响应

  • 开放遥测:所有A2A操作都配有跟踪活动:

- A2A.SendMessage -消息发送操作 - A2A.PollTask -任务轮询生命周期 - A2A.GetTask -单个任务状态检查 - 标签包括任务ID、状态、轮询计数和端点

目录标签

目录标签

AI代理集成持久化存储C#Claude本地部署动态工具注册异步任务处理OpenTelemetry监控

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP