The cool part about the demo, ahead of the reduction in token usage compared to building this with the MCP interface, is the progressive disclosure. The LLM didn’t know anything about Earthly, Wolfram, or Relatr, and it discovered tools and usage as needed. No extra tool schemas were loaded unnecessarily, no bloated context window, just organic discovery and usage.
View quoted note →
ContextVM
_@contextvm.org
npub1dvmc...3jdm
ContextVM is a decentralized protocol that enables Model Context Protocol (MCP) servers and clients to communicate over the Nostr network. It uses Nostr as a secure, distributed transport layer—leveraging cryptographic keys for identity, decentralized discovery, and Bitcoin-powered micropayments.
Rather than relying on centralized infrastructure like domains, OAuth, or cloud hosting, ContextVM allows anyone to run or access services using only Nostr and a internet-connected device. It transforms any computational service into a discoverable, accessible, and monetizable resource—while preserving privacy, security, and user sovereignty.
We’re thrilled to roll out CVMI CLI 0.2.x, adding two powerful commands: `call` and `discover`.
`call` lets you invoke CVM servers straight from the command line, perfect for debugging or plugging into agents. No MCP config or schema loading needed; responses are cleaned to save tokens. Save servers with aliases and run them like `npx cvmi call relatr`.
`discover` query relay announcements to list available tools, just run `npx cvmi discover`.
Demo: query Earthly and Wolfram for the Eiffel Tower’s address and height
Get Sovereign Engineering pubkey using Relatr.
These upgrades make CVM servers far easier to use and compose, cut token costs versus MCP, and give developers a simple way to debug, script, or integrate CVM services from the command line.
Some screenshots of this new capabilities:


🚀 CEP-17 is now merged into ContextVM, and it is available in the ts SDK from v0.7.x.
This is a meaningful step forward for resilience. With CEP-17, servers can publish the relay list they use following NIP-65, and clients can resolve connection paths more intelligently: first from explicit configuration, then from relay hints embedded in `nprofile`, and then if nothing is define from relay list discovery. That makes connectivity more robust by default, reduces dependence on central points of failure, and avoids hardcoded relays in normal client setup.
It also makes client configuration simpler. In many cases, you can now just pass an `nprofile` string and clients will use its relay hints directly; if those are not available, it can fall back to CEP-17 discovery through NIP-65 relay-list metadata.
The reference implementation is already in the SDK, the docs and skills have been updated, and contextvm.org now surfaces these new `nprofile` identifiers as well. Small change in surface, big improvement in how reliably clients can find and reach servers across a more sovereign network 🚀
ContextVM Documentation
CEP-17 Server Relay List Metadata
Relay list publication mechanism for ContextVM servers using NIP-65 conventions
We’re so back. DNS problems have been resolved, sites and relays are reachable again 🚀
View quoted note →
We've been having problems with DNS and registrars, which is why our ContextVM websites are down. We have a pending transfer that should be resolved soon. In the meantime, we’ve deployed the main site and documentation on GitHub Pages as a backup alternative. The links are:
- https://contextvm.github.io/contextvm-site/
-
Sorry for the inconvenience. CVM servers are still running, and clients can still connect using any relay, there’s no disruption there 🦾
ContextVM Documentation
ContextVM
The intersection of Nostr and MCP
Nostr == WS == CVM.
Connecting to servers, calling tools, etc, everything has worked over WebSockets since day one with ContextVM 🚀
View quoted note →
A new issue of our biweekly newsletter is out! 🚀
"Ephemeral Is Better — The ContextVM World #3"
Available in nostr and substack:
View article →

Ephemeral Is Better — The ContextVM World #3 🌍
GM people, and welcome to the third issue of “The ContextVM World”, your biweekly appointment to discover everything you need to know about Con...
Continuing with NIPs, we have just added a pr for CVM to the NIPs repository. We wrote this NIP to describe the conventions for transporting Model Context Protocol (MCP) messages over Nostr. We deliberately kept the NIP thin on details that already live in the full CVM spec; it exists to make CVM discoverable in the Nostr ecosystem and to show that CVM is just Nostr, using the same primitives any Nostr app uses.

GitHub
NIP-XX: ContextVM, MCP JSON-RPC over Nostr by ContextVM-org · Pull Request #2246 · nostr-protocol/nips
I wrote this NIP to describe ContextVM (CVM): a minimal convention for transporting Model Context Protocol (MCP) JSON-RPC messages over Nostr.
The ...
We just opened a PR in the NIPs repo that includes this convention for ephemeral gift wraps. Perhaps other developers will find it a valuable building block
View quoted note →
GitHub
NIP-59: Add ephemeral gift wrap event kind (21059) by ContextVM-org · Pull Request #2245 · nostr-protocol/nips
Adds support for ephemeral gift wraps (kind:21059) following the same semantics as regular gift wraps (kind:1059) but with ephemeral event semantic...
Ephemeral giftwraps improve your privacy and hygiene on relays, as nothing is persisted there. CVM messages use ephemeral events when the traffic is not encrypted, but when encrypted, they wrap the ephemeral events in a gift wrap which uses a regular kind. So even if the wrapped event is ephemeral, its envelope isn't. Ephemeral gift wraps solve this; everything is encrypted end-to-end, relays just route blindly, nothing is persisted, no collect now, decrypt later 🥷🏼
View quoted note →
CEP-19 is live with ephemeral gift wraps 🚀
In plain terms, you can now send end-to-end encrypted MCP messages that do not have to be stored on relays. This is a significant upgrade for privacy, as your messages can travel through public infrastructure without becoming permanent data. The kind used by CVM is ephemeral (25910), and when you use encryption, this ephemeral kind is gift-wrapped (NIP-59) in a regular event kind that is persistent on relays (1059). With this update, servers and clients can use a new kind for ephemeral gift wraps (21059). It is exactly the same as the regular kind (1059) but is ephemeral, so it is not stored on relays. This also improves metadata hygiene: relays can forward messages without needing to retain payloads.
How it works:
CEP-19 introduces an ephemeral gift-wrap kind alongside the existing persistent kind. Both sides advertise their support, and when both do, the transport prefers ephemeral wrapping while maintaining backward compatibility with older clients.
Configuration in the SDK:
This feature is available from version v0.6.0. Just set the transport’s `GiftWrapMode` option to `EPHEMERAL` to always use ephemeral gift wraps, `PERSISTENT` to force legacy behavior, or `OPTIONAL` to negotiate ephemeral wrapping when supported. The default remains compatible with existing relays and clients, making this an opt-in privacy upgrade without being a breaking change.
Hey Nostr! We're excited to share that we're working on getting more eyes on ContextVM and its development. We just published our first post on Hacker News. If you're on the platform, we'd love for you to check it out, share your thoughts, or help spread the word. Every bit helps, so please join us in growing ContextVM! 🚀
Show HN: ContextVM – Running MCP over Nostr | Hacker News
Now that payments are in place, we are going to work on:
- CEP-19 for ephemeral gift wraps:
and
- CEP-17 for servers relay list:
Both CEPs are quite minimal but yet beneficial for the ecosystem. CEP-19 provides better privacy guarantees, as servers and clients will be able to use ephemeral gift wraps for encrypted communications. Currently, they use regular gift wraps, which are regular events, and even if the events inside are ephemeral, they are wrapped in a regular envelope. CEP-17 defines how servers can announce relay lists (NIP-65) to improve discoverability.
Simple but powerful! LG!🚀
After this iteration we will come back to CEP-15 introducing common tool schemas, which is a bigger one

GitHub
ContextVM/contextvm-docs
ContextVM documentation and specification. Alternative link: https://contextvm.github.io/contextvm-docs/ - ContextVM/contextvm-docs
GitHub
ContextVM/contextvm-docs
ContextVM documentation and specification. Alternative link: https://contextvm.github.io/contextvm-docs/ - ContextVM/contextvm-docs
GitHub
[CEP-15] Common Tool Schemas · Issue #15 · ContextVM/contextvm-docs
Preamble Title: Common Tool Schemas Authors: ContextVM-org Status: Draft Abstract This CEP establishes a standard for defining and discovering comm...
We've just released a new version of our SDK, now CEP-8 implementation is now complete, end to end, we’ve added the missing piece for LLM aware spending
CEP-8 gives us the wire protocol for paid MCP capabilities, servers request payment, clients settle, both sides get explicit confirmation. What was missing was a clean way to make consent programmable. This release adds a single paymentPolicy hook at the client boundary, a little yet powerful new addition. Your host environment decides whether a charge proceeds: a deterministic budget, a per-tool allowlist, a terminal prompt, or a full LLM-based policy engine. One hook, any pattern.
Google's AP2 addresses a similar problem, but it's an ambitious multi-actor framework involving Shopping Agents, Credential Providers, and cryptographic Mandates passed across multiple parties, quite complex. Our take is different, CEP-8 provides the payment rails, Nostr anchors every request to a cryptographic identity at the transport level, and consent is a composable local primitive. Simpler to integrate, and versatile enough to fit whatever your host needs to do.
This our take on agentic payments, simple, versatile, composable, no vendor lock ins
After a few days experimenting and receiving feedback around CEP‑8 payments, we enhanced their SDK implementation, making payments more reliable and consistent. We’ve just released a new feature that supports additional use cases, such as servers with prepaid balances, top‑up accounts, or separate payment management. This feature lets you waive a payment via the server’s resolve price callback. With this update, payment processing is far more powerful 🚀
Docs and skills have been updated accordingly. Happy building :)
Docs:
Skills: npx cvmi add --skill payments, or npx skills add contextvm/cvmi --skill payments
Docs: ContextVM Documentation
Payments (CEP-8)
Learn how to add payment handling to your ContextVM servers and clients using CEP-8
Get it fresh in your inbox every two weeks!
View quoted note →
GM Nostr!
Our newsletter, The ContextVM World 🌍, is now live on Substack:
While ContextVM is built on Nostr and will continue to publish natively on Nostr, our goal is to reach a larger audience outside of Nostr to have more builders leveraging our protocol!
Feel free to subscribe to our Substack and to share our newsletter with the world!

The ContextVM World 🌍 | Substack
Your biweekly appointment with ContextVM, MCP, and Nostr. Click to read The ContextVM World 🌍, a Substack publication. Launched 25 days ago.
The second issue of "The ContextVM World" is out! Hope you enjoy it 💛
View article →
Thanks so much to openSats for this opportunity! We'll keep pushing the boundaries of this new paradigm 💛
View quoted note →
Protocols over Platforms is the mantra at the core of CVM
Use Protocols, Not Services
The Internet is almost anonymous and privacy-preserving by design. I mean, unless some administrator actively tries to track you, there is no built...