关于 Multi-Component System with A2A and MCP Server Integration
这是一个由 React 前端、FastAPI API、代理、A2A 服务和 MCP 服务组成的实验型 Agent 系统,适合进行多组件协作实验。它同时提供 A2A 通信与 MCP 工具、资源和提示词,并支持 SSE。
主要功能
- 01React/TypeScript 响应式仪表板
- 02FastAPI 后端与 Node.js 代理
- 03支持 A2A 任务和消息
- 04提供 MCP 工具、资源和提示词
- 05支持 SSE 实时更新
适用场景
- 01实验 Agent 间任务与消息传递
- 02通过 MCP 客户端使用工具和资源
- 03查看系统 API 方法与运行状态
MCP 相关
内置 MCP 服务通过代理向客户端提供工具、资源和提示词,并支持 SSE 实时更新。前端也包含 MCP 客户端实现。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
集成 A2A 和 MCP 服务的多组件系统
该项目是一个采用现代 Web 技术构建的可扩展多组件系统。
架构概览
系统由多个协同工作的解耦组件组成:
- 前端:使用 Material-UI 构建的 React/TypeScript 应用,采用 Vite 构建
- 后端 API:提供 API 端点的 Python/FastAPI 服务
- 代理服务:将请求路由到相应服务的 Node.js 代理
- A2A 服务:遵循 Google A2A 协议的 Agent-to-Agent 服务实现
- MCP 服务:Anthropic Model Context Protocol 服务,提供工具、资源和提示词
组件
前端
- 采用 TypeScript 的现代 React 应用
- 使用 Material-UI 进行组件样式设计
- 使用 Zustand 进行状态管理
- 响应式仪表板 UI
- A2A 和 MCP 协议的客户端实现
后端 API
- FastAPI(Python)后端
- 健康检查端点
- 使用 Redoc 提供的 API 文档:
/api/doc - API 方法列表:
/api/api/v1/methods
代理服务
- 基于 Node.js 的反向代理
- 将请求路由到相应服务:
- 前端请求 → Vite 开发服务
- API 请求 → FastAPI 后端
- A2A 请求 → A2A 服务
- MCP/SSE 请求 → MCP 服务
- 支持 WebSocket 实时通信
A2A 服务
- Google A2A 协议的实现
- 支持 Agent 间通信
- 提供任务管理和消息传递功能
- 支持直接请求和流式更新
MCP 服务(Python)
- Anthropic Model Context Protocol 的 Python/FastAPI 实现
- 为 Agent 提供工具、资源和提示词
- 支持用于实时更新的 Server-Sent Events(SSE)
- 双路径结构(
/endpoint和/sse/endpoint)
服务集成
A2A 服务集成
A2A 服务通过代理服务与主应用集成。以下端点的请求会路由到 A2A 服务:
/.well-known/agent.json:Agent 信息和能力/tasks:用于 JSON-RPC 请求的任务管理端点/agent-card/*:所有发往此路径的请求(任何 HTTP 方法)都会路由到 A2A 服务
有关实现和用法的更多详情,请参阅 A2A 服务文档。
MCP 服务集成
MCP(Anthropic Model Context Protocol)服务通过代理服务与主应用集成。以下端点的请求会路由到 MCP 服务:
/sse/*:所有 SSE 端点(状态、工具、资源、提示词)/sse:SSE 事件流端点
MCP 服务提供:
- 工具 API:可调用以执行操作的函数
- 资源 API:可下载的静态文件和数据
- 提示词 API:用于生成大模型提示词的模板
- Server-Sent Events(SSE):实时更新和流式传输
开发
先决条件
- Node.js 20+
- Python 3.11+
- npm 或 yarn
运行应用
应用划分为多个服务,每个服务都在独立进程中运行:
-
API 后端:
cd api pip install -r requirements.txt python main.py -
前端开发服务:
cd frontend npm install npm run dev -
代理服务:
node proxy-server.js -
A2A 服务:
cd a2a-server node simple-server.js # JavaScript implementation # or for TypeScript implementation (if compiled) # node dist/main.js -
MCP 服务:
cd mcp-server pip install -r requirements.txt python mcp_server.py
运行测试
A2A 服务提供集成测试:
cd tests
node run-tests.js # Runs all A2A server tests
API 端点
后端 API
GET /health:健康检查端点GET /api/v1/methods:可用 API 方法列表GET /api/doc:API 文档(Redoc)
A2A 服务
GET /.well-known/agent.json:Agent 卡片信息POST /tasks:用于任务操作的 JSON-RPC 端点:tasks/send:向 Agent 发送消息tasks/sendSubscribe:发送消息并接收流式更新tasks/get:按 ID 获取任务信息tasks/cancel:取消正在运行的任务
MCP 服务
GET /status或GET /sse/status:服务状态和可用资源GET /tools或GET /sse/tools:可用工具列表POST /tools/{name}或POST /sse/tools/{name}:执行工具GET /resources或GET /sse/resources:可用资源列表GET /resources/{name}或GET /sse/resources/{name}:获取特定资源GET /prompts或GET /sse/prompts:可用提示词模板列表POST /prompts/{name}或POST /sse/prompts/{name}:生成提示词GET /sse:用于实时更新的服务器发送事件(SSE)连接
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。