Open-source Model Context Protocol tooling

See the MCP traffic you actually operate.

A transparent, security-first observability gateway for modern MCP Streamable HTTP. Trace, measure, record, inspect, and safely replay JSON-RPC and SSE traffic without modifying the client or server.

Early preview · MIT licensed · Node.js 20.19+ · local-first defaults

Observability without surrendering the boundary.

Transparent

Streams JSON and SSE through a fixed upstream endpoint with backpressure and cancellation propagation.

Security-first

Records metadata only by default, strips credentials, hashes legacy sessions, and requires explicit replay execution.

Vendor-neutral

Exports bounded Prometheus metrics and OpenTelemetry spans while retaining sanitized NDJSON evidence locally.

A deliberately narrow gateway.

MCP client ── POST / GET / DELETE ──▶ MCP Trace ── transparent HTTP ──▶ MCP server
                                             │
                                             ├── Prometheus metrics
                                             ├── OpenTelemetry spans
                                             └── sanitized NDJSON recording

MCP Trace does not implement MCP methods, authenticate clients, discover servers, or mutate JSON-RPC bodies. The upstream server remains the protocol authority.

One command to start.

The public v0.1.1 container is available for linux/amd64:

docker run --rm --network host \
  ghcr.io/ryux1/mcp-trace:v0.1.1 proxy \
  --upstream http://127.0.0.1:3001/mcp

The npm package is not published yet. Run the newer 0.2.0 source and its deterministic demo from a repository checkout:

git clone https://github.com/ryux1/mcp-trace.git
cd mcp-trace
corepack enable
pnpm install --frozen-lockfile
pnpm demo

Point the client at http://127.0.0.1:7331/mcp. The gateway listens on loopback by default.

Evidence, not feature claims.

Real MCP Trace demo output showing a successful tool call, sanitized recording summary, and Prometheus metric

The repository includes a deterministic end-to-end demo, wire-level integration tests, clean-consumer package installation, a compatibility matrix, and checked-in benchmark samples. The current microbenchmark also publishes material proxy overhead instead of hiding it.

Read the boundary before deploying it.