A2A Registry MCP Server
使用说明(Markdown 格式)
- 项目简介
- 该仓库实现了一个 MCP 服务器,用于通过标准化的 MCP 协议向客户端提供 A2A Registry 的信息,包括对代理的搜索、列表、单个代理获取、健康/性能统计以及可用技能等查询能力。
- 主要功能点
- 提供 MCP 工具接口:search_agents、list_agents、get_agent、get_registry_stats、list_skills、refresh_registry 等,便于客户端通过 MCP 调用获取数据。
- 数据来源聚合自后端数据库与远端注册信息,格式化输出为 MCP 兼容的字典/列表结构。
- 与现有后端 FastAPI 应用整合,将 MCP 服务挂载在 /mcp 路径下,允许通过 MCP 客户端进行访问。
- 提供简单的代理信息渲染、健康状态、以及连接代码片段等辅助信息。
- 安装步骤
- 将代码克隆到本地,确保所需 Python 环境可用(包含 FastAPI、fastmcp、数据库依赖等)。
- 在后端运行环境中启动主应用(例如通过 uvicorn 启动 backend 的 FastAPI 应用),MCP 服务将自动在 /mcp 路径提供服务。
- MCP 客户端可通过指定服务器地址的 /mcp 接口进行连接与调用。
- 服务器配置 (MCP 客户端需求)
说明:MCP 客户端需要一个 JSON 配置来描述 MCP 服务的连接信息,便于启动时建立连接。以下为示例配置要点,请据实际部署替换参数:
{
"server_name": "a2a-registry",
"command": "uvicorn",
"args": ["app.main:app", "--host", "0.0.0.0", "--port", "8000"]
}
注释:
- server_name:MCP 服务的唯一标识,一般与后端应用名称一致。
- command:用于启动 MCP 服务的命令(示例为 uvicorn)。
- args:启动命令的参数,需包含用于暴露 FastAPI 应用的入口点(此处为 app:FastAPI 实例的路径)以及监听地址/端口。
- 基本使用方法
- 客户端启动后,向 MCP 服务发送 JSON-RPC 请求以调用工具(如查询代理、获取单个代理信息等)。
- 通过返回的结构化数据,LLM 可以渲染代理信息、健康状态和统计信息,集成到对话上下文中。
- 如需更新注册表中的数据,可调用 refresh_registry 等工具以刷新缓存。