grounding: CLAUDE.md § A2A integration, § Sister repo: knowledge-engineering, crates/mcp-server
A2A vs. MCP vs. e2m, side by side
These three protocols solve three genuinely different coordination problems, and this repo/ecosystem uses all three at once rather than picking one:
| Protocol | Solves | Transport | Who talks to whom |
|---|---|---|---|
| A2A (Agent2Agent) | One agent delegates a task to a different, independently-hosted agent | HTTP+JSON (tasks/send) — no gRPC, since Cloudflare Workers isn't Node.js | agent ↔ agent, across process/deployment boundaries |
| MCP (Model Context Protocol) | A model gets tools/resources from a server, or executes real actions on a machine | stdio (local process) or Streamable HTTP | model ↔ tool server, typically same machine or same session |
| e2m (envelope-to-mailbox) | Multiple domain coworkers coordinate asynchronously without being online simultaneously | JSONL mailbox/queue files — not a network wire protocol | coworker ↔ coworker, via a durable file-based envelope |
Where each one actually runs in this ecosystem
- A2A:
workers/webservesGET /.well-known/agent-card.jsonandPOST /a2ausing the tasks/send HTTP+JSON transport (no gRPC bindings, since@a2a-js/sdk's gRPC support needs@grpc/grpc-js, which is Node.js-only and unusable in a Cloudflare Worker).crates/a2a-bridgeis a separate Rust axum server wrapping the MCP binary over stdio for a longer-running use case, with its own agent card. - MCP:
crates/mcp-server(Rust, rmcp, stdio, Postgres+Redis-backed) exposes this repo's own tools to Claude;crates/engineering-coworker(also Rust, rmcp, stdio) is the more consequential instance — it lets Claude actually execute cargo/wrangler/git/D1 operations on the developer's real Mac, not just suggest code.subagentapi.comadditionally runs a real Streamable-HTTP-style MCP endpoint (POST /mcp) as a genuinely working single-tool JSON-RPC 2.0 server, not a stub. - e2m: lives in the polyrepo sibling
knowledge-engineering'scoworkers/monorepo as 6 language packages (e2m-ts/e2m-tf/e2m-rs/e2m-py/e2m-cli/e2m-swift). This repo references the envelope/DurableTask-mailbox convention inapps/coworkers-desktop-buddy/COWORKERS-PLATFORM.mdas a design RFC, but does not implement e2m itself — the two repos are related via the documented env-var-abstraction polyrepo-sibling pattern, not a git submodule.
Full per-protocol detail: the live catalog.