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 9 months ago
🎇Meet CVMI: the Army knife we are building for ContextVM development🧑‍💻 image If you are building/vibing on Nostr, this is for you. We are shipping CVMI alongside a complete skill set that makes ContextVM development delightful. The skills cover the entire stack: protocol fundamentals, architecture concepts, client and server development, troubleshooting, SDK internals, and production deployment. Each skill includes working templates, reference documentation, and patterns distilled from real Nostr development. Everything you need to do is `npx cvmi`. Or grab the skills through CVMI with `npx cvmi add`, or through the skills CLI with `npx skills add contextvm/cvmi`. These commands will show you the list of available skills and guide you through their installation for any coding platform. Cool, right? You can also pick exactly what you need `npx cvmi add --skill overview` CVMI starts as a skills manager, but we are building toward the unified toolkit that ContextVM deserves. One CLI for skills, server interaction, dev tools, the works. For builders who want to ship. The skills are here now. If you don't know what skills are: #ContextVM #Nostr #MCP #buildinpublic
ContextVM's avatar
ContextVM 10 months ago
What if relay moderation looks like a bucket?🪣 We are exploring exactly that with Wotrlay, a new WoT relay we are introducing today! It treats moderation as resource allocation, where the web of trust determines your publishing capacity. Wotrlay gives each public key a 'bucket' of publishing capacity that refills at different rates based on their social graph rank. Low-rank identities can still participate, but at a measured pace. Higher-rank identities gain more capacity organically through network participation, no manual approval needed. Try the public instance at wss://wotr.relatr.xyz This proof-of-concept integrates Relatr for dynamic ranking and is built in Go using the great Rely framework from @Pip the WoT guy. Kudos to him for it and the WoT example that inspired this project. If you want to dig deeper, we've published an article that walks through the bucket model, progressive rate limiting, newcomer onboarding, and why this approach avoids auth friction while keeping the relay permissionless in practice. All the code for this project, is open source and is made to be run by anyone 💛 check out the code and more details at: View article →
ContextVM's avatar
ContextVM 0 years ago
This is quite cool! Why limit yourself to a single WoT provider when you can use multiple and present the results? The more perspectives, the better. After testing Profilestr, we noticed that Profilestr, Vertex, and Relatr tend to output very similar scores, with only slight variations. This indicates that they are quite solid, even with different approaches to compute the trust scores. Relatr and Vertex can be used without leaving the nostr. Relatr uses CVM, Vertex uses a DVM-like API, Profilestr offers a REST API endpoint, so there's no excuse not to integrate some of these options into your client. Fight spam, protect your users from impersonators, and increase the value. View quoted note →
ContextVM's avatar
ContextVM 1 year ago
Do you know about Wavefunc? It's a neat Nostr project that lets you listen to, discover, and share radio stations, and so much more. With ContextVM, Wavefunc can search for music metadata and show you what's currently playing in the radio stations. Plus, you can use their music metadata server on its own. Swing by to see what it's all about. If you want to dive straight into the music metadata server, head over to https://contextvm.org/s/bb0707242a17a4be881919b3dcfea63f42aacedc3ff898a66be30af195ff32b2.
ContextVM's avatar
ContextVM 1 year ago
You can use Relatr to get relevant results from searches containing any word, not just the name of the user you are looking for. For example, here is a quick demo on searching for Nostr-related names. It's still not perfect, as it is still in early development, but we will be sharpening this little by little. View quoted note →
ContextVM's avatar
ContextVM 1 year ago
So pumped to introduce Realtr, our shot at decentralized trust and Web of Trust. Trust is not an absolute quantity but a deeply personal and contextual phenomenon. Discover more about it at https://relatr.xyz. We are currently running a public instance, which is the default on the site. With it, you can search for and calculate trust for given public keys. Still in the early stages, but it's currently quite solid. Looking forward to hearing your thoughts and building this together! blog: View article →
ContextVM's avatar
ContextVM 1 year ago
Here is a short demo video walking through the ContextVM ecosystem. In it, we demonstrate some fundamental concepts, including creating a Cashu wallet, wrapping its API in an MCP server, and exposing it as a ContextVM so it can be used from Nostr. We also introduce a new tool we are working on CtxCn, which allows you to easily integrate any CVM server into any TypeScript project. Additionally, we show how to create a demo website from a single prompt that just works. This is just a quick overview of what is possible with ContextVM. More details about what we have been building during #sovEng 5 will be available soon. On this video: - - -
ContextVM's avatar
ContextVM 1 year ago
Soon we will be writing a recap of what has been built using CVM during @Sovereign Engineering 5. Currently, it is a quite considerable list of projects that are truly groundbreaking, or at least the foundations of them. We will continue to build, improve, and push harder in the direction of freedom. Stay tuned View quoted note →
ContextVM's avatar
ContextVM 1 year ago
The discussion about pricing and payments flows (CEP-8) is happening at The proposal contemplates a 'matching' system to handle the multiplicity of possible payment methods that could exist. The 'matching' mechanism is based on a reference list of payment method identifiers. It's like a dating app, but for payment methods. For example, if your server supports the payment method identifier 'bitcoin-lingthing-bolt11', it emits a payment request including it, and the client matches if it supports that payment method. If it supports the method, it's a match! Beautiful 💛 Please join the conversation and provide feedback if you have any; it's highly appreciated
ContextVM's avatar
ContextVM 1 year ago
We're thrilled to announce the launch of the new ContextVM website, live at ! 🚀 This marks a significant step in our mission to create a sovereign, resilient, and open marketplace for computational tools and services. The new site makes it easy to discover, connect to, and use ContextVM servers. Key features include: - Discover Public Servers: Explore publicly available ContextVM servers shared by the community. - Connect to Private Servers: Seamlessly connect to and use your own private servers from anywhere. Currently there are two public servers running: DuckDuckGo search to perform searches and fetch websites, and NostrBook MCP with documentation about nostr, nips, kinds and more. You can test them now, they are open to everyone Check out a short demo of the site: Read more about the launch on our blog post: The site includes a Blog, About page, FAQ, and dedicated documentation at docs.contextvm.org. The entire website is open source, built with Svelte 5 and the applesauce Nostr library. We welcome contributions from the community. We're also looking for talented designers to help shape the future of the ContextVM interface. If you have experience in UI/UX design and believe in a more open, permissionless internet, we'd love to hear from you. Get involved: * Explore the new website at * Contribute to the project on GitHub at * Join the conversation in our Signal group: For any questions or help, please don't hesitate to get in contact.
ContextVM's avatar
ContextVM 1 year ago
@Paul created HyperNote, which allows users to create interactive experiences embedded within nostr notes 🤯 These can be thought of as nostr mini-apps published as nostr notes 🤯🤯 It also demonstrates how ContextVM can be used to add custom interactive logic to a HyperNote, all embedded and published as a single note 🤯🤯🤯 The possibilities are endless View quoted note →
ContextVM's avatar
ContextVM 1 year ago
We just wrote an article explaining why we are working on ContextVM. We are just starting, and our first communications were directed to developers. However, we thought it was important to share what motivates us. View article →
ContextVM's avatar
ContextVM 1 year ago
Exciting Updates from ContextVM: Introducing Gateway CLI and Proxy CLI We are thrilled to announce the latest developments in the ContextVM project! Following our rebranding from DVMCP to ContextVM, we continue to deliver innovative solutions to enhance the integration of MCP systems with the Nostr network. Today, we are excited to introduce two new command-line interface (CLI) tools: `gateway-cli` and `proxy-cli`. ## Gateway-CLI and Proxy-CLI They use the `NostrMCPGateway` and `NostrMCPProxy` which are internal components of the ContextVM/ts-sdk, designed to bridge traditional MCP systems with the Nostr network. Here’s a brief overview of each: - **NostrMCPGateway**: This server-side component exposes a traditional MCP server to the Nostr network, acting as a gateway that translates communication between Nostr-based clients and a standard MCP server. For more detailed information, visit the https://www.contextvm.org/gateway/overview/ - **NostrMCPProxy**: This client-side component acts as a local proxy, exposing a mcp server locally, and translating communication between a standard MCP client and a remote, Nostr-based MCP server. For more detailed information, visit the https://www.contextvm.org/proxy/overview/ ### Gateway CLI The `gateway-cli` is a tool designed to simplify the deployment and configuration of the `NostrMCPGateway`. It allows you to expose your MCP server through the Nostr network with ease. **Quick Start Installation:** ```bash curl -fsSL https://raw.githubusercontent.com/contextvm/gateway-cli/main/install.sh | bash ``` **Alternative Installation Methods:** - **From Binaries**: Download the latest release from the and follow the instructions. - **With Deno**: Run `deno run -A jsr:@contextvm/gateway-cli` or install it with `deno install -A gateway-cli jsr:@contextvm/gateway-cli`. **Example Usage:** ```bash gateway-cli --private-key "your_private_key" --relays "wss://relay.com" --server "command arg1 arg2" ``` For more detailed information, including configuration options and development instructions, visit https://github.com/ContextVM/gateway-cli. #### Proxy CLI The `proxy-cli` is designed to wrap around the `@contextvm/ts-sdk`'s `NostrMCPProxy`, allowing you to connect to MCP servers exposed through the Nostr network and use them as local MCP servers in any MCP client. Allowing any MCP client to support nostr transport, even if it doesn't supports it natively **Quick Start Installation:** ```bash curl -fsSL https://raw.githubusercontent.com/contextvm/proxy-cli/main/install.sh | bash ``` **Alternative Installation Methods:** - **From Binaries**: Download the latest release from the and follow the instructions. - **With Deno**: Run `deno run -A jsr:@contextvm/proxy-cli` or install it with `deno install -A jsr:@contextvm/proxy-cli`. **Example Usage:** ```bash proxy-cli --private-key "your_private_key" --relays "wss://relay.com" --server-pubkey "server_public_key" ``` For more detailed information about the CLIs, including configuration options and development instructions, visit the For more information about ContextVM, visit If you have any doubt don't hesitate to ask
ContextVM's avatar
ContextVM 1 year ago
We are thrilled to unveil the new identity of DVMCP. Moving forward, the project will be called ContextVM and will be officially hosted under the domain. This rebranding is driven by several factors: - Conceptual Clarity: The term "DVM" remains ambiguous within the Nostr community. The recent "DVM wars" highlighted the lack of consensus around what a DVM is, and it doesn't seem this will change soon. - Avoiding Confusion: There is another project called DVMCP in the MCP world, which stands for "damn vulnerable MCP." Its goal is to provide a "hack the box" MCP experience, and we do not want to be associated with it. - Not Following the DVM Pattern: We initially called the project DVMCP because we were following the pattern described in NIP-90 DVMs to implement MCP over Nostr. However, this is changing now, as more information is provided below. - New Direction and Governance: There are enough technical changes that justify the rebranding, and we want to reinforce the open-source nature and community-driven governance of the project. The project is now under an organization. We initiated this project early on, when MCP was just being announced. We started DVMCP following a "kitchen sink" approach, reimplementing everything to gain experience and understanding of MCP and how it can leverage Nostr's capabilities. This helped us delve deeper into MCP and understand its concepts thoroughly. Additionally, MCP is a relatively new protocol, and its governance is still under debate. By following the "kitchen sink" path, we aimed to avoid distractions from breaking changes on their end. Now that the MCP protocol is more mature, we can better anticipate its evolution. Another reason for the rename is to move the project under an organization that better reflects its open-source nature and the community-driven governance we envision. All these factors have led us to this decision. We will continue to use this npub for all related communications. ## Technical Changes Overview The most significant change in the specification is the elimination of separate kinds for requests and responses, opting instead for a single kind acting as a "socket." We think this is a more elegant solution. We will provide more detailed information about these changes in future posts, but you can read the spec right now at https://www.contextvm.org/ctxvm-draft-spec/. We are also announcing the ContextVM/ts-sdk https://github.com/contextvm/ts-sdk, which provides all necessary pieces to work with ContextVM and demonstrates our new integration approach with MCP. We have based the design of our architecture on the transport domain of MCP, creating Nostr transports for servers and clients. The transport in MCP is an agnostic piece of the stack, with local transports like stdio or remote transports like SSE or streamable HTTP. Transports are simply transports, while servers and clients are the protocol-compliant parts. Now, we are introducing Nostr transports, making it easy to operate and consume MCP over Nostr using their SDK and the Nostr transports from the ContextVM SDK. This enhances both the developer and user experience, making it easier to reason about, as ContextVM is now a thin layer on top of MCP SDKs. Any changes in the MCP spec or their SDK will be handled out of the box, reducing maintenance costs and eliminating the need for adaptations to new MCP features. With everything related to ContextVM happening at the transport level, we believe this is a forward-thinking architectural choice. The project is now live, and you can explore it at . The SDK is fully usable and offers all basic features. It also supports encrypted communication by default. Our next steps include adapting the website to create a decentralized repository where anyone can discover MCP servers operating on Nostr and allowing users to try them out. Write more tutorials and guides. Next steps for the SDK include adding payment capabilities, after which we will be fully aligned with the current state of DVMCP. We will be releasing these features and more in the coming weeks. We are looking forward to know your thoughs, and also we are looking for for contributors and testers. We will also want to host a community call this week. We are proposing Thursday, October 24, or Friday, October 25, at 16:00 UTC. These dates are just a reference, and if you have a better date drop it in a comment, we will adapt to the one that suits everyone best. Please join us and don't hesitate to ask questions.
↑