Skip to content

protocol-droid

A Rust MCP toolkit that speaks every published spec revision at once — 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25, 2026-07-28, plus draft. The A* schemas (A2A, ACP) ride the same canonical model, so the bridge is a translation, not a rewrite.

What you get

One IR, many codecs

Application code speaks a version-agnostic superset. Per-revision codecs lift wire messages into the IR and lower them back out for whatever version was negotiated. No revision forks in your code.

Runtime feature gating

A pure domain function turns the negotiated protocol version, client capabilities, server capabilities, and transport into a FeatureProfile. Every feature-specific code path checks the profile. Nothing is silently dropped.

Every transport the spec has defined

stdio, legacy HTTP plus SSE (2024-11-05), Streamable HTTP (stateful), and the 2026-07-28 stateless lifecycle. The CLI is a Swiss-army knife on top: bridge, probe, inspect, record, replay.

Spec-exact, conformance-verified

The vendored schema.json for every revision is the single source of truth. Conformance suites run on every revision, every commit. No hand-remembered wire shapes.

A* schema support

A2A and ACP ride the same internal model as MCP. The A*-prefixed protocols (A2A, ACP) get their own vendored schemas and codecs, so the bridge translates between protocols without re-implementing your application.

Where to next