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 8 months ago
Are you developing a client and want to add search capabilities and WOT scores? You can do it easily by using CtxCn to set up a full Relatr client with minimal hassle. Here’s how: 1. Navigate to your project (it should be in TypeScript) and execute: ```sh npx @contextvm/ctxcn init ``` This command sets up CtxCn in your project. It comes with sensible defaults, so you won't need to configure much. 2. Next, execute: ```sh npx @contextvm/ctxcn add 750682303c9f0ddad75941b49edc9d46e3ed306b9ee3335338a21a3e404c5fa3 ``` This public key corresponds to the default instance of Relatr we are running, which is available at https://relatr.xyz . If you are running your own instance or want to use a different one, simply replace the public key with the appropriate one. That's it! After executing the 'add' command, you will have a fully typed Relatr client in your code, that you can implement out of the box, you own it, and you can modify it to fit your needs. The generated client will also contain comments, making it clear what each method does, whether you or your LLM are reading them. You can search profiles easily with code like: ```ts const searchResults = await relatr.SearchProfiles({ query: "jack" }); ``` This setup allows you to create a web app, a CLI app, or any kind of service in TypeScript. It works in browsers and natively. We hope you enjoy this. The current service we are running is free to use, so if you find this useful, please consider supporting our work. 💛
ContextVM's avatar
ContextVM 8 months 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 8 months 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: https://www.contextvm.org/blog/yItckCkpmTq-owE5AgYtq View article →
ContextVM's avatar
ContextVM 9 months ago
Imagine deploying the backend of a game mid-flight, just by connecting your laptop or the server hosting device (could be your phone) to the plane's Wi-Fi. It's mind blowing! 🤯 We can't wait to see the results of this exciting test experiment. View quoted note →
ContextVM's avatar
ContextVM 9 months ago
ContextVM SDK v0.1.31 Release Notes We are excited to announce the release of ContextVM SDK v0.1.31! This update brings powerful new features, significant performance enhancements, and important bug fixes to improve the developer experience and the robustness of your applications. 🚀 New Features - Stateless Mode for Nostr Client Transport To optimize performance and reduce network overhead, we've introduced a stateless mode for the 'NostrClientTransport'. Previously, clients had to complete a handshake before making requests. Now, you can bypass this initialization step, allowing clients to start making method calls immediately. This is especially beneficial for applications requiring fast startup times. For more details, check out our documentation: https://docs.contextvm.org/ts-sdk/transports/nostr-client-transport/#stateless-mode - Capability Exclusion for Whitelisting We've enhanced our server's whitelisting capabilities to provide more granular control. You can now specify an array of `excludedCapabilities` that will not require public key whitelisting. This is perfect for servers that expose a mix of private methods (for whitelisted keys) and public methods (open to everyone), offering greater flexibility in defining your security policies. 🐛 Bug Fixes & Improvements - Enhanced Server Reliability for Long-Lived Connections: We have significantly improved the reliability of deployed servers by overhauling session management for long-lived connections. This includes configurable session cleanup and faster client lookups, leading to greater stability and performance. - Enhanced Nostr Performance: The Nostr transports now benefits from significant performance improvements, thanks to the new stateless client mode and optimized server-side session management. - Correct Unauthorized Error Handling: Servers now correctly send a JSON-RPC error (`-32000`, 'Unauthorized') when a request is made by a non-whitelisted public key, ensuring clients receive clear and standardized feedback. - High-Performance Logging with Pino: Replaced the custom logger with Pino for structured, high-performance logging with flexible configuration options. - Relay Pool Update: The `applesauce-relay` dependency has been updated to v4, and the SDK has been adapted to its new API, improving relay management and debugging. --- This release marks another step forward in making the ContextVM SDK more powerful, secure, and easy to use. We thank our contributors and community for their valuable feedback. The ContextVM Team
ContextVM's avatar
ContextVM 9 months 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 9 months ago
Soon we will be writing a recap of what has been built using CVM during @npub1s0ve...rmq5 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 9 months ago
Soveng has been incredible, with loads of ideas and experimentation around new ways to architect systems. This is an amazing example of what has been going on. Beacon is the Trojan horse of walled gardens and it uses CVM as a core part of it 🔥 View quoted note →
ContextVM's avatar
ContextVM 9 months ago
Thanks @npub1jss4...fmzy for mentioning contextvm in the last episode of Good Stuff (Good Stuff 24 - Hope, Truth and Abundance with Jeff Booth). It was a great episode, by the way! You can listen to it on any podcasting platform; the mention of contextvm is around minute 55. Quoting (transcript from yt): "...So like MCP servers are like one of the big things inside no uh inside AI at the moment and like his realization was that um one of the things you can do with uh MCP is that it specifies a protocol that's kind of like remote JSON RPC. So how do I tool call other things from this program? But it's agnostic to the transport protocol. So he made nostr protocol which means that now you don't need APIs. You don't need to buy some servers. You can just spin something up on your computer and give it a public key and then somebody can talk to it, so all of a sudden like infrastructure is addressable by public key, doesn't need IP addresses like just maintains like websocket connections and you have these tools just available anywhere. So I in that demo I ran the whole thing again from this Mac Mini. There's no you know I'm just in an Airbnb. There's no fancy networking going on and it's like all right I'm never using an API and get like everything is now public key addressable..."
ContextVM's avatar
ContextVM 10 months 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