ContextVM's avatar
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.
ContextVM's avatar
ContextVM 1 month ago
Just released a new version of our TS SDK (0.7.6). This update adds support for dynamic authorization on the server through two new optional callbacks: `isPubkeyAllowed` for runtime pubkey validation and `isCapabilityExcluded` for dynamic capability exclusion from the allowed pubkeys check. These async callbacks complement the existing static allowlist and exclusion configurations, enabling more flexible authorization policies. We have also renamed the `isPublicServer` option to `isAnnouncedServer` to better reflect its purpose of publishing public announcement events on Nostr for relay‑based discovery. The old option is deprecated but still supported for backward compatibility. Docs and skills updated! Happy building! 🦾
ContextVM's avatar
ContextVM 1 month ago
Just another quick demo. Same thing, but this time, instead of using the CVMI `call` command to access the server, we are connecting to the server as if it were a locally running MCP. This is possible thanks to the CVMI `use` command, which allows you to use CVM servers anywhere you can configure MCP servers. View quoted note →
ContextVM's avatar
ContextVM 1 month ago
Just a little but powerful update to our site. Since we merged CEP‑17 for server‑relay announcements, we have updated our site to accept npubs and nprofiles for servers. You can now use these identifiers in the URL or in the search bar. It will resolve relays for the server in this order: 1. Relay hints when the identifiers are nprofiles 2. Server relays (from 10 002 events) 3. Hard‑coded relays, if none of the previous ones exist This really improves discoverability and strengthens decentralization capabilities. We also added an extra goodie: NIP‑05 resolution, so if your server pubkey is associated with a NIP-05 address the site will resolve it. For example, you can use https://contextvm.org/s/relatr@contextvm.org or, since the host domain matches the NIP‑05 domain, you can even omit the domain part: https://contextvm.org/s/relatr Cool right? 😎
ContextVM's avatar
ContextVM 1 month ago
Just testing this new 'Am I Exposed?' public server someone made online 👀 This is a Bitcoin on‑chain privacy scanner. We wanted to test it to see how it works. This is a short demo of using it together with the CVMI call command. It’s quite straightforward; we didn’t need to touch any other configuration files, just add an alias. The complete process and demo are in this video. View quoted note →
ContextVM's avatar
ContextVM 1 month ago
Spam attack in our relays. Fixing now
ContextVM's avatar
ContextVM 1 month ago
Use it from contextvm.org or through the CVMI CLI. 1. Configure an alias for easy calling: `npx cvmi config add ots @npub1u8qu...segw` 2. OTS an event: `npx cvmi call ots ots_event target=<event-id‑nevent‑naddr>` 3. Verify the attestation and get its state: `npx cvmi call ots verify_ots target=<event-id‑nevent‑naddr>` If you want, you can configure it as an MCP in your preferred agentic framework; just set `npx cvmi use @npub1u8qu...segw` in your MCP configuration. View quoted note →
ContextVM's avatar
ContextVM 1 month ago
🕰 New public server available! 🕰 This is an OTS client that lets you easily Open Time Stamp any Nostr event. The usage is straightforward: two tools, 'ots_event' to create an attestation for an event, and 'verify_ots', which lets you verify the OTS attestation and its state in the time chain. With this server, you or your agents can easily OTS any Nostr event. Here’s a brief demo: The project’s code is open source, and you can run your own instance if you wish. By default it uses public Bitcoin nodes to verify the attestations, so you don’t need to run your own node. Server page: https://www.contextvm.org/s/e1c1c32729cbd542c9b9ce7ee6e421c434e07835228020c4f57140782f02496a You can use this service for free, but public OTS servers need to cover operating costs. If you’d like to donate, please refer to opentimestamps.org.
ContextVM's avatar
ContextVM 1 month ago
🌍 New issue of the ContextVM world newsletter 🌍 In today’s update we cover CEP‑17, the latest specification change to the CVM protocol. This change allows MCP servers to announce the relays for establishing connections, making it easier for clients to discover them. We also discuss new CVMI capabilities and other news from the ecosystem, plus demos and a new Rust SDK that is currently being built. Hope you enjoy it! Don’t miss any issue, subscribe to our Substack. View article →
ContextVM's avatar
ContextVM 1 month ago
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's avatar
ContextVM 1 month ago
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:
ContextVM's avatar
ContextVM 1 month ago
🚀 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's avatar
ContextVM 1 month ago
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 🦾