Back to browse
ContextVM – Running MCP over Nostr

ContextVM – Running MCP over Nostr

by gzuuus·Feb 25, 2026·6 points·4 comments

AI Analysis

MidBig BrainNiche Gem

MCP over Nostr relays is clever, but solving a niche problem with immature ecosystem adoption.

Strengths
  • Eliminates TLS, port forwarding, and static IPs by treating Nostr relays as stateless message bus—genuine architecture insight.
  • Public-key identity instead of OAuth reduces auth friction for laptop/Raspberry Pi deployments.
  • Open protocol with TypeScript SDK and relay pool implementations shows shipping intent.
Weaknesses
  • MCP itself is nascent (OpenAI Sep 2024); Nostr as transport adds coupling to unproven relay ecosystem.
  • No evidence of production deployments; CEP-8 is "Draft" status; unclear if this solves a real pain vs adding complexity.
Target Audience

MCP server developers, self-hosters, teams building remote capability servers on constrained hardware

Similar To

Model Context Protocol · Nostr · SSH tunneling

Post Description

Hi HN, I'm Gzuuus, the creator of ContextVM this is my first post here, hope you find it interesting!

I started building ContextVM some months ago, this is an open protocol that runs the Model Context Protocol (MCP) over Nostr.

In practice, it’s a transport for MCP that lets you expose remote servers without needing a domain, inbound ports, or OAuth, clients, and servers only need an outbound internet connection.

The problem I ran into: When deploying a remote MCP server you can feel the pain. You usually need a domain name, a static IP, TLS certificates, port forwarding, and some way to auth (often OAuth). That friction makes it hard to spin up a service on your laptop or a Raspberry Pi and expose it safely.

ContextVM solves this at the transport layer. It replaces HTTP/SSE with Nostr relays that act like a distributed, stateless message bus:

Identity/auth: public keys instead of OAuth.

Network/transport: clients and servers only need outbound connection to relays, so you can run behind NAT or a strict firewall.

Security: client↔server traffic is end-to-end encrypted; relays just route encrypted events blindly.

Addressing/discovery: servers (and clients) are addressable by public key, no domains required. Servers can be announced on relays instead of central registries. Private servers can skip announcements entirely, clients connect if they know the server’s public key.

Payments: Recently we included a payment method agnostic specification defining the lifecycle of payments, this is CEP-8 https://docs.contextvm.org/spec/ceps/cep-8/

The best part, you don’t need to rewrite your existing MCP servers:

- `cvmi`: a CLI to expose any local HTTP/Stdio MCP server over ContextVM. For example, `npx cvmi serve -- npx -y @modelcontextprotocol/server-filesystem /tmp`

- `ctxcn`: inspired by `shadcn/ui`. It connects to a server, reads its MCP schema, and generates a type-safe TypeScript client into your codebase.

- TypeScript SDK: for those who want to build natively on the protocol.

- Project site: It works as a tool for discovery, and debugging, you can run your server locally and connect through the site

We'd love feedback, questions, or critiques. If you want to dig deeper, you can visit the project page for a blog, read the docs, or just build something. It's all open source, permissionless, and fun!

We are also publishing a bi-weekly newsletter on substack: https://contextvm.substack.com/

Code: https://github.com/contextvm

Project site: https://contextvm.org

Docs: https://docs.contextvm.org

Similar Projects

AI/ML●●Solid

CoreMCP – MCP Server for On-Prem DBs

Turkish collation awareness and NOLOCK support show real production thinking.

Ship ItNiche Gem
y11t0
417d ago