Skip to content

Build with ContextVM

ContextVM carries Model Context Protocol (MCP) traffic over Nostr. An existing MCP server can be exposed without changing its tools, and any MCP host that supports stdio can reach a ContextVM server through a local proxy.

GoalStart here
Expose an existing stdio or Streamable HTTP MCP serverBridge an existing MCP server
Connect an MCP host to a ContextVM serverConnect an MCP host with CVMI
Build a TypeScript server or clientTypeScript SDK overview
Build a Rust server or clientRust SDK overview
Charge for a tool call over LightningRun a Lightning-paid tool
Read the protocolContextVM draft specification
  • CVMI is the command-line path for bridging an MCP server, calling a ContextVM server, or exposing a ContextVM server to an MCP host.
  • The TypeScript SDK provides transports, signers, relay handlers, gateways, proxies, discovery, and CEP-8 payments.
  • The Rust SDK provides native transports, gateway and proxy components, discovery, and language bindings.
  • ContextVM Enhancement Proposals (CEPs) specify extensions such as public server announcements and payments.

Start a local filesystem MCP server behind a ContextVM gateway:

Terminal window
npx -y cvmi@0.4.1 serve -- npx -y @modelcontextprotocol/server-filesystem@2026.8.31 /tmp

The command prints the gateway public key. In another terminal, inspect the server through the same relay:

Terminal window
npx -y cvmi@0.4.1 call <server-public-key> --relays wss://relay.contextvm.org

Continue with Bridge an existing MCP server for a verified tool call and troubleshooting.