MCP/A2A Protocol Interoperability for BCH (Beacon Command Hub) - Enables BCH agents to discover and collaborate with external AI agents via standardized protocols: MCP (Model Context Protocol by Anthropic) and A2A (Agent-to-Agent Protocol by Google). Creates a true 'Internet of Agents' by making BCH a node in the global agent network.
MCPBridge defines 12 tools with basic schemas and descriptions, but falls short of production quality. Tool names follow verb_noun convention (list_tools, call_tool, delegate_task), which is good. However, descriptions are generic and lack LLM-optimization guidance. Most critically, parameter descriptions are minimal or absent, e.g., 'agent_name' is described as 'Optional: filter tools by agent name' but lacks context on what happens if omitted. Input schemas are present but sparse: many parameters lack type constraints, enums, or validation rules. Error handling is not visible in the provided code excerpt. Output schemas are undocumented, callers cannot predict response structure. The server exposes HTTP transport (good for protocol readiness) but tool definitions lack the depth needed for reliable agent reasoning.
Execute a tool from a registered agent with provided arguments
Delegate a task to an external A2A agent
Discover external A2A agents via HTTP discovery endpoints
Retrieve the A2A Agent Card for a registered agent
Get a prompt template from a registered agent
Get the status of a delegated A2A task
List all available prompt templates from registered agents
List all available resources from registered agents
Parameter descriptions are minimal and lack actionable guidance. E.g., 'agent_name' in list_tools is described as 'Optional: filter tools by agent name' but does not explain what happens if omitted, what format is expected, or how to discover valid agent names.
Input schemas lack type constraints and enums. The 'arguments' parameter in call_tool is typed as 'object' with no schema for its properties, forcing LLMs to guess the structure. Similarly, 'metadata' in delegate_task and register_capability lack documented structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
List all available tools from registered agents
Query the capability registry for available capabilities
Read the contents of a resource from a registered agent
Register a new capability in the capability registry
Output schemas are not documented. Callers cannot predict the structure of responses from list_tools, query_capabilities, or discover_agents. This forces LLMs to reason about response structure without guidance, increasing errors.
No error handling guidance visible. Tools like discover_agents (with timeout parameter) and delegate_task (network-dependent) lack documented error cases, recovery steps, or retry guidance. LLMs cannot determine if failures are transient or fatal.
Tool descriptions are generic and under 100 characters for most tools. E.g., 'List all available tools from registered agents' (47 chars) lacks context on when to call this vs other discovery tools, what structure is returned, or how to use results downstream.