mcpField
M
Multi-Component System with A2A and MCP Server Integration

Multi-Component System with A2A and MCP Server Integration

本地服务
github.com/BulloRossoAI 与智能体178 周前更新

关于 Multi-Component System with A2A and MCP Server Integration

这是一个由 React 前端、FastAPI API、代理、A2A 服务和 MCP 服务组成的实验型 Agent 系统,适合进行多组件协作实验。它同时提供 A2A 通信与 MCP 工具、资源和提示词,并支持 SSE。

主要功能

  1. 01React/TypeScript 响应式仪表板
  2. 02FastAPI 后端与 Node.js 代理
  3. 03支持 A2A 任务和消息
  4. 04提供 MCP 工具、资源和提示词
  5. 05支持 SSE 实时更新

适用场景

  1. 01实验 Agent 间任务与消息传递
  2. 02通过 MCP 客户端使用工具和资源
  3. 03查看系统 API 方法与运行状态

MCP 相关

内置 MCP 服务通过代理向客户端提供工具、资源和提示词,并支持 SSE 实时更新。前端也包含 MCP 客户端实现。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

集成 A2A 和 MCP 服务的多组件系统

该项目是一个采用现代 Web 技术构建的可扩展多组件系统。

架构概览

系统由多个协同工作的解耦组件组成:

  1. 前端:使用 Material-UI 构建的 React/TypeScript 应用,采用 Vite 构建
  2. 后端 API:提供 API 端点的 Python/FastAPI 服务
  3. 代理服务:将请求路由到相应服务的 Node.js 代理
  4. A2A 服务:遵循 Google A2A 协议的 Agent-to-Agent 服务实现
  5. 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):实时更新和流式传输

更多详情请参阅 MCP 服务文档和 MCP 客户端文档。

开发

先决条件
  • Node.js 20+
  • Python 3.11+
  • npm 或 yarn
运行应用

应用划分为多个服务,每个服务都在独立进程中运行:

  1. API 后端:

    cd api
    pip install -r requirements.txt
    python main.py
    
  2. 前端开发服务:

    cd frontend
    npm install
    npm run dev
    
  3. 代理服务:

    node proxy-server.js
    
  4. A2A 服务:

    cd a2a-server
    node simple-server.js  # JavaScript implementation
    # or for TypeScript implementation (if compiled)
    # node dist/main.js
    
  5. 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。