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
aaaljaz•1h ago
how do you see the skills vs mcp playing out in relation to this tho?
gzuuus•17m ago
From my perspective Skills and MCP complement each other: skills orchestrate tasks, while MCP implements them. This synergy has been explored in some articles and the recent MCP code mode trend. MCP serves as a standard for capability execution, and skills aid in progressive disclosure and token saving. I've also seen a trend of exposing skills as MCP resources using the 'skill://' prefix.
Different working groups are leveraging MCP's standardness to save tokens, such as using an MCP server with just 'search' and 'execute' tools.
On the CVM side, we're developing CVMI, a CLI tool for installing CVM related skills and serving or using servers as regular MCPs. Soon, CVMI will also enable calling CVM servers, allowing you to create scripts using just bash and CVMI