Repository navigation
The bridge release. mcp-grpc now ships cmd/mcp-grpc-bridge, a transparent stdio → gRPC bridge that lets existing stdio MCP clients — Claude Desktop, Cursor, and anything else that speaks MCP over stdio — reach a remote MCP server over a gRPC connection, with TLS and mTLS. This is the connectivity story the transport was built to enable.
What's new
The bridge is a local MCP server on its stdio side and an MCP client on its gRPC side, in one process. It relays JSON-RPC messages in both directions and never interprets MCP semantics, so it works for any MCP traffic (initialize, tools/*, resources/*, notifications, …) without tracking sessions or schemas. Internally it exercises the v0.1 ClientTransport over a real network with a real MCP client on the other end.
Why it matters
Thousands of people already run stdio MCP clients; almost nobody has a gRPC-native client looking for an MCP server. The bridge meets that reality: point your stdio client at the bridge binary and it dials a remote gRPC MCP backend for you — over TLS. A bridge that crosses the network in plaintext is not deployable, so TLS/mTLS is the part that turns the in-memory v0.1 proof into something usable.
Added
cmd/mcp-grpc-bridge: a stdio → gRPC bridge. It opens a stdiomcp.Connectionand a gRPCmcp.Connection(viatransport.ClientTransport) and pumpsjsonrpc.Messagevalues between them in both directions, ending cleanly when either side closes.- TLS and mTLS on the bridge's gRPC connection via
-tls,-ca,-cert,-key,-server-name, and-insecure-skip-verify. TLS minimum version is 1.2;-cert/-keymust be supplied together for mTLS. - End-to-end test driving a real MCP client → bridge sub-process → echo MCP server over a real TCP listener with TLS (certificates generated in-test), plus a unit test of the relay pump asserting both-direction relay and clean close.
Changed
- README documents the bridge (plaintext, TLS, mTLS) and reframes the project's lasting value as connectivity rather than a scaffold.
Not in this release
- The symmetric direction (gRPC → stdio, exposing a stdio MCP server over gRPC) and gRPC ↔ Streamable HTTP bridging.
- Interceptors (log/metrics), session-id/auth via gRPC metadata, and fine-grained keepalive/deadline tuning — deferred to a following increment.
Usage
go install github.com/P4ST4S/mcp-grpc/cmd/mcp-grpc-bridge@v0.2.0
# TLS, verifying the server against a CA bundle:
mcp-grpc-bridge -addr mcp.example.com:7777 -tls -ca ca.pem
# mTLS with a server-name override:
mcp-grpc-bridge -addr 10.0.0.5:7777 -tls -ca ca.pem \
-cert client.pem -key client-key.pem -server-name mcp.example.comInstall
go get github.com/P4ST4S/mcp-grpc@v0.2.0See the README for wiring the bridge into a stdio MCP client.