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 2 weeks ago
Continuing with our community appreciation round, Cordn is one of the apps at the forefront of what we’re building at ContextVM. This is one of the most exciting projects related to sovereign and private communications in the space as well. What makes Cordn stand out at the edge of what’s being built at CVM is that it was one of the first real apps to use our Open Streams (CEP-41) feature, which allows them to directly stream new messages to users, so they receive them in real time. They’ve helped us catch edge cases and issues, and now the CVM implementation of Open Streams is more robust in the TypeScript and Rust SDKs. Thanks! Aside from that, they’re also one of the first consumers of the UniFFI bindings we recently released from our Rust SDK. They built their app with native Kotlin modules for their notification service using the bindings from our Rust SDK, and it’s working flawlessly so far. Thanks to the @Besao and @Cordn App teams for pushing forward the boundaries of what’s possible in this space! View quoted note →
ContextVM's avatar
ContextVM 2 weeks ago
Earthly is one of the coolest apps in Nostr, pushing the boundaries of what you can do with today’s technology, seriously underrated. It was one of the early apps to integrate with ContextVM for their APIs and AI integration, letting you do crazy stuff like drawing geometry on a map, tracing routes, and much more. But that’s not all! They released an Android app that runs a Blossom server and a relay 🤯 for fully offline operations. And if that wasn’t enough, they’ve also integrated with Cordn for groups and private communications 🤯🤯🤯 View quoted note →
ContextVM's avatar
ContextVM 3 weeks ago
The ContextVM website now has agent-native payments, building on the recently updated CEP-8. 🦾🤖 The CEP-8 update brought explicit gating to the payment lifecycle, the same approach that other protocols like 402 or mpp are following, and that small change is what makes agents able to pay natively. That's the building block for an economy where agents pay agents and tools over Nostr. To make that loop real, the ContextVM site got a built-in Lightning wallet. Connect it once with a NWC string and it is ready across the app. You can check your balance, generate a QR to receive, or paste a bolt11 invoice to pay. image The wallet also shows up exactly where it counts: any Lightning payment card gets a Pay button, and after paying, you get a Retry call button that resumes the tool. image Agents that can spend and earn over Lightning, native to Nostr. Permissionless, seamless. Try it: https://contextvm.org/ #Nostr #Lightning #Bitcoin #AI #Agents #NIP47
ContextVM's avatar
ContextVM 3 weeks ago
It is shipping time! 🚀 cvmi v0.4.0 is out! The ContextVM CLI now speaks CEP-8 payments natively. Priced capabilities are first-class in the CLI: 💳 See prices upfront — `cvmi call` now shows advertised per-tool prices and accepted payment rails right in the tool list and `--help`. 🔀 Two payment modes: - `transparent` (default for `call`) — PMI-agnostic settlement, the server picks the rail. - `explicit_gating` — priced tools surface a clean `Payment Required` error with payment options. Pay one, retry, done. Now the default for `cvmi use`, so agent hosts over stdio get explicit signals instead of silent notifications. 🛡 Spec-hardened parser — malformed `cap` prices (negative values, out-of-order ranges) are now rejected per CEP-8, not coerced into bogus ranges. ⚙ `cvmi serve` gained payment interaction config. Plus bumps to `@contextvm/sdk` ^0.13.9 and `@modelcontextprotocol/sdk` ^1.29. Upgrade and start charging for your capabilities 🔌 `npx cvmi@latest` #ContextVM #MCP #CEP8 #Bitcoin #Lightning #OpenSource
ContextVM's avatar
ContextVM 3 weeks ago
Hey everyone! Just introducing the draft for a new CEP: Server Redirection. The idea behind this CEP is to specify how a server can signal a redirection to a client. The motivation is to provide a primitive that allows servers to perform load balancing or rotate addresses for subsequent requests for privacy reasons.
ContextVM's avatar
ContextVM 1 month ago
New issue of our newsletter! This one will be the last one until the summer ends. Happy holidays you all! View article →
ContextVM's avatar
ContextVM 1 month ago
Do you know you can find all the ContextVM-enabled MCP servers listed on our website? You can also try them directly through our LLM chat! Check them out! https://contextvm.org/servers
ContextVM's avatar
ContextVM 1 month ago
Building in FOSS is beautiful and powerful. Everything you do can impact upstream dependencies and downstream users alike. For example, we recently shipped an improvement to the official MCP rust-sdk repository. We are making the foundations on which we are building stronger!
ContextVM's avatar
ContextVM 1 month ago
What is ContextVM? A transport layer for MCP over the Nostr network. An open communication network built on cryptographic, censorship-resistant, and permissionless foundations! https://contextvm.org/
ContextVM's avatar
ContextVM 1 month ago
Our team is currently looking into CVM Bundles .cvmb, a packaging format to easily distribute servers and provide one-click deployment. The spec and implementation we are working on is inspired by .mcpb conventions by the official MCP working group
ContextVM's avatar
ContextVM 1 month ago
ContextVM Rust SDK 0.2.0 is out! 🚀 MCP over Nostr just got a whole lot more capable. Three big things landed today: 📦 Oversized transfers (CEP-22) Until now, messages were capped by what fits in a single Nostr event (around 65 KB). Larger payloads, like big tool results or resources, now split into chunks automatically, get verified end-to-end, and reassemble on the other side. Servers only do this when the client supports it, so older clients keep working. 🌊 Open-ended streaming (CEP-41) A server tool can now send a live stream of data back to the client while a request is still running, think progress, partial results, or log lines. The client reads it as an async stream, and the final normal response still arrives at the end. Streaming is negotiated automatically with clients that support it. 🌍 UniFFI bindings, write ContextVM in your language The SDK now ships bindings for Python, Swift, Kotlin, and C/C++, all built on the same Rust core. That means native support on mobile, backend services, and scripting runtimes. There's a runnable examples/python/ folder to get you started. Plus: smarter relay resolution (CEP-17), richer server announcements (CEP-6), optional human-friendly server profiles (CEP-23), progress-aware request timeouts, and an MSRV bump to 1.88. Huge thanks to @aljaz for the job on uniffi bindings, and @Harsh for all the hard hork! Ready to build on this? Read the docs and ship your first ContextVM server or client today:
ContextVM's avatar
ContextVM 1 month ago
And we have more news for today… hold on tight!
ContextVM's avatar
ContextVM 1 month ago
CEP-8 can now talk directly to AI agents. 🧵 With the just released ContextVM SDK 0.13.0 we're shipping full support for a new CEP-8 mode called Explicit Payment Gating. Why we built it: CEP-8 already let servers charge for their tools and capabilities, but only "behind the scenes", payment was handled silently by the transport layer. That's great for a wallet app. It's not great for an AI agent that actually needs to decide whether a call is worth paying for. The fix: Agents reason through normal MCP responses, so we turned payment into one. Now a paid call returns a clean "Payment Required" error (-32042) that carries human-readable instructions and one or more payment options. Feed that straight to your LLM, it reads the instruction, pays the invoice its own way, and retries the same call. No special SDK knowledge required, and it works with any MCP-compatible agent runtime. This design is based on the MPP spec and inspired by HTTP's 402 Payment Required status code, a long-reserved error code for exactly this idea, now adapted for JSON-RPC and AI agents. What it unlocks: - AI agents that natively understand and handle paid MCP capabilities - Per-call budgets and consent at the agent layer - Payment as a first-class decision: pay, decline, or escalate to a human Under the hood, each successful payment grants a single-use authorization that's matched to the exact same request on retry, and a "Payment Pending" error (-32043) keeps verification from spamming invoices. Fully backward compatible, the existing silent "transparent" flow stays the default, so nothing breaks for current users. Try it: Upgrade to @contextvm/sdk 0.13.0 and turn on a paid capability with explicit gating. Docs: CEP-8 spec — Explicit gating guide — API reference — Go build something agents can pay for. 🔌 #ContextVM #MCP #AI #Bitcoin #Lightning #Nostr