Semantics-preserving routing for agents, MCP servers, and models.
GaugeMesh uses the official Rust MCP SDK rmcp 3.1.4. The dependency is exact-pinned in
Cargo.toml. GaugeMesh is both a downstream-facing MCP server and an upstream-facing MCP client.
| Revision | Lifecycle | stdio client/server | Streamable HTTP client/server | Tools | Resources/templates | Prompts | Tasks | Cache/result metadata | MRTR |
|---|---|---|---|---|---|---|---|---|---|
| 2025-11-25 | initialize session |
tested | tested | list/call | list/templates/read | list/get | not advertised | TTL and private scope | SDK relay primitives |
| 2026-07-28 | server/discover, self-contained request metadata |
tested | tested | list/call | list/templates/read | list/get | conditional durable route | TTL, cache scope, result _meta |
SDK relay primitives |
The 2026 path uses server/discover and supplies the protocol version and client capabilities on
each request. The 2025 path uses the legacy initialization session. GaugeMesh does not infer a
stateless request’s revision from an earlier request. Its adapter rejects header/body disagreement.
The SDK validates current MCP-Protocol-Version, Mcp-Method, Mcp-Name, _meta, client/server
identity, capabilities, and response metadata rules.
The Tasks extension is advertised only when SQLite task-route storage and at
least one reviewed, capability-pinned 2026-07-28 upstream advertising Tasks are
both present. An unpinned source retains ordinary-call compatibility but cannot
authorize this durable task path. A
downstream caller must also declare Tasks support. GaugeMesh gives the caller a
public task ID, keeps the upstream ID private to the durable route, and forwards
get and cancellation without automatic resubmission. Interactive tasks/update
is rejected with GM_TASK_UPDATE_UNSUPPORTED_DURABLE because this route schema
has no durable update intent and receipt. See
DURABLE_TASKS.md for the protocol, recovery, and
non-claim boundaries.
The transport tests exercise a real RMCP client against GaugeMesh over Tokio duplex, a real TCP Streamable HTTP listener, and an actual child process over stdio. They enumerate tools, resources, resource templates, and prompts, and then cancel and join their owned transport.
Limitations for 0.1:
CONFORMANCE.md; an SDK claim is
not a GaugeMesh conformance or certification claim.add mcp performs live bounded discovery, pins the complete capability-manifest digest, and
writes configuration. serve loads configured sources transactionally into the bounded runtime;
startup and restart reject identity drift.Transparent mode uses stable readable aliases such as docs-a__search; policy and leases always
authorize the full capability identity, never the alias. Compressed mode exposes five fixed
meta-tools: search, describe, lease, invoke, and release. A sixth, gaugemesh_submit, is listed
only for a 2026-07-28 caller that declares Tasks support while a durable task route is available.
Discovery is deterministic lexical ranking and does not require an embedding model or LLM.
Neither mode is claimed to be universally better; transparent mode remains the compatibility
fallback for clients that do not reliably use meta-tools.
Resources use gaugemesh://resource/<source>/<opaque-id> and retain an internal mapping to the
exact native URI. Composite cursors are HMAC-protected and bounded to 4 KiB. Prompts carry the same
source, schema, revision, and configuration identity as tools and resources.