embed, rerank, retrieve, graph, and index, and
any client can consume it uniformly. It is the retrieval companion to MCP and ACP,
small enough for a thin client to fully consume and expressive enough for a
frontier engine to fully express.
Get started
What RCP is, the problem it solves, and a working engine in five minutes.
Read the protocol
The wire format, capabilities, methods, and errors — one concept per page.
Pick an SDK
Native C++, Python, Node.js, and Rust SDKs that interoperate byte-for-byte.
Why RCP
Every RAG stack reinvents the same wire: embed, rerank, retrieve, filter, cite. MCP standardised tools; ACP standardised agents; nothing standardised the retrieval layer that grounds them. RCP is that layer.Frontier-native
Hybrid dense + sparse search, ColBERT/ColPali late interaction (MaxSim),
rerankers, MMR diversification, GraphRAG, agentic multi-hop, citations, and
metadata filtering are all first-class — not bolted on.
Transport-free
JSON-RPC 2.0 over newline-delimited stdio or HTTP. If it can read a line and
parse JSON, it can speak RCP.
Capability-negotiated
A server advertises exactly what it can do; clients gate calls on capabilities
and fail fast, client-side, before any I/O.
Composable
A registry (
rcp.json) lets a client target one backend (Selector) or
fuse many (Federation) with Reciprocal Rank Fusion.The missing third protocol
An agent runtime speaks ACP to its client, calls tools over MCP, and fetches grounding context over RCP:initialize/capabilities handshake, _meta
extensibility, and cursor pagination — learn one, you know the shape of all three.
RCP isn’t a competitor to MCP — it’s the retrieval sibling. (Why not just an MCP
tool?)
The retrieval pipeline
Transform → recall → rerank → diversify → cite, each stage independently
negotiable behind a single
retrieve call.Why not just an MCP tool?
Six axes where retrieval outgrows an opaque
search tool — and how the two
protocols compose.Conformance levels
L0 Base, L1 Retrieval, L2 SOTA — with a transport-agnostic test suite that
validates any server in any language.