From arch-advisor
Use this skill when designing how agents expose or consume tools and APIs, when discussing MCP servers, A2A communication, tool registries, or when someone says 'agents need to call external APIs', 'how should agents communicate with each other?', 'we need to expose tools to the LLM', 'designing agent-to-agent messaging', 'tool governance and access control', 'idempotent tool calls', 'MCP server implementation'. Also trigger for: Model Context Protocol, A2A patterns, tool design, RBAC for tools, distributed tracing between agents.
How this skill is triggered — by the user, by Claude, or both
Slash command
/arch-advisor:integration-protocolsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
MCP standardizes how LLMs access external resources and tools. The LLM client discovers tools at runtime, calls them by name, and receives structured results.
MCP standardizes how LLMs access external resources and tools. The LLM client discovers tools at runtime, calls them by name, and receives structured results.
Use MCP when:
Use custom tools when:
MCP components:
| Pattern | Description | Use when |
|---|---|---|
| Request-Response | Agent A sends message, waits for Agent B's reply | Synchronous task delegation |
| Event-Driven | Agent A publishes event, Agent B subscribes | Async notifications, decoupled updates |
| Blackboard | Agents read/write shared state | Collaboration without fixed sender/receiver |
| Hierarchical | Manager delegates to workers, collects results | Supervised task distribution |
Every A2A message must carry: traceId, correlationId (to match replies), sender, timestamp.
Single Responsibility: each tool does one thing. Avoid "do_everything" tools — they are untestable and unpredictable.
Idempotency: tools that modify state must be safe to call twice with the same input. Use an idempotency key (UUID) as input parameter, check if already processed before executing.
Input validation: validate all inputs against a JSON Schema before executing. Reject invalid inputs with a clear error message — never silently coerce.
RBAC: different agents have different permissions. Enforce at the tool registry level, not inside the tool implementation.
Rate limiting: per-agent and per-tool rate limits. Protect downstream systems from agent loops.
Audit log: every tool call is logged with: caller identity, input, output, timestamp, duration, cost. Non-negotiable for production.
Timeout: every tool call has a maximum duration. Default 30s, adjustable per tool. Never allow an agent to block indefinitely on a tool call.
[Agent requests tool]
↓
[Registry: lookup tool by name]
↓
[RBAC: does this agent have permission?]
↓
[Rate limiter: is this agent within quota?]
↓
[Validator: is the input valid JSON Schema?]
↓
[Executor: run the tool with timeout]
↓
[Audit log: record the call and result]
When Agent A calls Agent B (via MCP or A2A):
{traceId, parentSpanId: A's spanId} to BWithout this, you cannot reconstruct the call chain from logs.
npx claudepluginhub clenci/arch-advisor --plugin arch-advisorIntegration patterns for combining Agent-to-Agent (A2A) Protocol with Model Context Protocol (MCP) for hybrid agent communication. Use when building systems that need both agent-to-agent communication and agent-to-tool integration, implementing composite architectures, or when user mentions A2A+MCP integration, hybrid protocols, or multi-agent tool access.
Applies A2A patterns for multi-agent orchestration topologies, idempotency, observability, versioning, and deployment. Use when architecting agent systems or handling cross-cutting concerns.
Designs agent-facing tool interfaces: descriptions, schemas, response formats, naming conventions, actionable errors, MCP servers, and tool-set consolidation. Use when writing or debugging individual tools or a tool catalog.