subagentprotocols

.com a2a · mcp · e2m
3 protocols, live from D1

Protocols

The 3 real inter-agent protocols this ecosystem uses. Filter by status:

A2A Agent2Agent

production HTTP+JSON (tasks/send), no gRPC, since Cloudflare Workers is not a Node.js runtime, so the gRPC transport option in the A2A spec is not usable here. Agent discovery via GET /.well-known/agent-card.json.

Lets one agent hand a task to another independently-hosted agent over HTTP, using a published agent card for capability discovery, rather than requiring both agents to share a process or a tool-calling loop. This repo uses it to expose subagentjobs.com's own crawl/query capabilities as a callable agent from outside this codebase.

e2m e2m (envelope-to-mailbox) protocol

sister-repo JSONL mailbox and queue files (DurableTask envelopes), not a network wire protocol, coordination happens via durable file-based message passing within a coworkers session, per the sister repo's own cowork/ convention.

A typed task and message envelope plus durable mailbox convention for coordinating multiple domain coworkers (design, engineering, data, finance, legal, HR, product, sales, operations) asynchronously, a DurableTask is written to a JSONL mailbox queue rather than requiring the dispatching and receiving agents to be online at the same time.

MCP Model Context Protocol

production stdio (crates/mcp-server, crates/engineering-coworker, both local process transport) or Streamable HTTP (subagentapi.com's own real POST /mcp JSON-RPC 2.0 endpoint, handling initialize, tools/list, and tools/call).

Standardizes how a single agent (this session, or a coworker binary) exposes tools and resources to a model, over a well-known stdio or HTTP transport, independent of which model or client is on the other end. This repo uses it both to expose this repo's own tools to Claude (crates/mcp-server) and to let Claude execute real operations on the developer's Mac (crates/engineering-coworker).

Machine-readable version: GET /api/protocols