Layered architecture
Top layer: users invoke agents over A2A. Middle: agents. Bottom: MCP servers exposing tools. Agents consume MCP; other agents consume this agent via A2A.
Advertisement
Adapter pattern
// Expose an MCP tool as an A2A skill
public class McpAsA2ASkill implements Skill {
private final MCPClient mcp;
public String call(Map args) {
return mcp.callTool(toolName, args);
}
} Advertisement
Or vice versa
// Expose an A2A agent as an MCP tool
@MCPTool
public class A2AAgentAsTool {
private final A2AClient a2a;
public Object execute(Map args) {
return a2a.sendTask(agentUrl, TextPart.of(args.toString()));
}
}