overview
ContextVMプロトコルの基礎、アーキテクチャ、コア概念を理解します。ユーザーがContextVMの基本、MCPとNostrの連携方法、プロトコル設計原則、イベント種別、または分散通信におけるMCPとNostrの関係について学ぶ必要がある場合に使用します。
description の原文を見る
Understand ContextVM protocol fundamentals, architecture, and core concepts. Use when users need to learn about ContextVM basics, how it bridges MCP with Nostr, protocol design principles, event kinds, or the relationship between MCP and Nostr in decentralized communication.
SKILL.md 本文
ContextVM概要
ContextVM (Context Virtual Machine) は、Model Context Protocol (MCP) とNostrネットワークを橋渡しするプロトコルであり、MCPサーバーとクライアント間の分散通信を実現します。
コアコンセプト
ContextVMはMCPのトランスポートレイヤーとして機能し、NostrのリレーネットワークをMCPのJSON-RPCセマンティクスを保持したままの通信メカニズムとして使用します。
┌─────────────────────────────────────────────────────────────┐
│ MCP Application Layer │
│ (Tools, Resources, Prompts, Sampling) │
├─────────────────────────────────────────────────────────────┤
│ ContextVM Transport Layer │
│ (Nostr events, Encryption, Public Key Cryptography) │
├─────────────────────────────────────────────────────────────┤
│ Nostr Relay Network │
│ (wss://relay.contextvm.org, etc.) │
└─────────────────────────────────────────────────────────────┘
主な機能
- 分散通信: 中央サーバーは不要です。Nostrの分散リレーネットワークを使用します
- セキュリティ第一: 検証と認可のためにNostrの暗号化プリミティブを活用します
- 公開鍵アイデンティティ: サーバーとクライアントはNostr公開鍵で識別されます
- オプション暗号化: NIP-44 ギフトラッピングを通じたエンドツーエンド暗号化
- サーバーディスカバリー: 置換可能なイベントを通じた公開サーバーアナウンスメント
プロトコルアーキテクチャ
3層設計
- トランスポートレイヤー: Nostrイベントとリレー
- メッセージレイヤー: イベントコンテンツに埋め込まれたJSON-RPC MCPメッセージ
- メタデータレイヤー: アドレス指定と相関用のNostrイベントタグ
主要アクター
| アクター | 役割 | 識別方法 |
|---|---|---|
| サーバー | MCP機能を公開 | 公開鍵 + リレー |
| クライアント | サーバー機能を利用 | 公開鍵 |
| リレー | メッセージを伝播 | URL (wss://...) |
イベント種別
ContextVMは以下のNostrイベント種別を使用します:
| 種別 | 目的 | 永続性 |
|---|---|---|
25910 | すべてのContextVMメッセージ (一時的) | リレーに保存されない |
11316 | サーバーアナウンスメント | 置換可能 |
11317 | ツールリスト | 置換可能 |
11318 | リソースリスト | 置換可能 |
11319 | リソーステンプレートリスト | 置換可能 |
11320 | プロンプトリスト | 置換可能 |
1059 | ギフトラップ (暗号化メッセージ) | 一時的 |
メッセージフロー
接続プロセス
- ディスカバリー: クライアントが公開鍵またはリレークエリを通じてサーバーを発見
- 初期化: Nostr上での標準MCPハンドシェイク
- 操作: クライアントがkind 25910イベントを通じてツール呼び出しやリソースリストを実行
- 終了: どちらかのパーティが切断すると接続が閉じられる
イベント構造
{
"kind": 25910,
"pubkey": "<sender-public-key>",
"content": "{\"jsonrpc\":\"2.0\",...}",
"tags": [
["p", "<recipient-public-key>"],
["e", "<correlation-event-id>"]
]
}
セキュリティモデル
公開鍵暗号
- すべてのメッセージは暗号署名されます
- サーバーアイデンティティ = 公開鍵 (リレー間でポータブル)
- クライアント認可は公開鍵ホワイトリストを通じて実施
暗号化 (CEP-4)
- ギフトラップ (kind 1059) を通じたオプションのNIP-44暗号化
- 初期化時にネゴシエートされます
- サーバーは
support_encryptionタグで対応を通知
Nostr的アプローチ
ContextVMは他のNostrベースのRPCシステム (DVMなど) と同じコアパターンに従います: 署名されたリクエストイベントを発行し、相関するレスポンスをリッスンします。違いはメッセージ構造にあります。CVMはプロバイダー固有のペイロードではなく、MCPを通じたJSON-RPCを使用します。
この基礎を理解するには:
を読む — CVMの背後にあるNostrプリミティブ (SDK以外の実装用)references/nostr-way-without-sdks.md
参考資料
詳細な仕様については、以下を参照してください:
- 完全なプロトコル仕様references/protocol-spec.md- ContextVM拡張提案references/ceps.md- MCPプロトコル統合の詳細references/mcp-integration.md
エコシステム案内 (用途に応じた選択)
以下の決定表を使用して、適切なコンポーネント/スキルに進んでください:
| 目的 | 推奨パス | スキル |
|---|---|---|
| プロトコルとイベント種別を学ぶ | 仕様とCEPを読む | + |
| コアコンセプト、アーキテクチャ、FAQを理解する | コンセプトとアーキテクチャ概要 | |
| 新しいContextVM固有のサーバーを構築する | McpServer + NostrServerTransport | |
| 新しいContextVM固有のクライアントを構築する | Client + NostrClientTransport | |
| 既存のMCPサーバーをNostrに橋渡しする | ゲートウェイパターン (NostrMCPGateway) | |
| 既存のMCPクライアントをNostrに橋渡しする | プロキシパターン (NostrMCPProxy) | |
| SDK レベルの詳細 (インターフェース、定数、ロギング) | @contextvm/sdk リファレンス | |
| 機能に支払い機能を追加 (CEP-8) | 支払いミドルウェア + プロセッサー | |
| 本番運用 (鍵、Docker、監視) | デプロイメントチェックリスト | |
| 接続の問題、エラー、障害を診断する | トラブルシューティングガイド | |
有用な公開エントリーポイント:
- ContextVMドキュメント: https://docs.contextvm.org
- ContextVM組織: https://contextvm.org
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- flox1an
- リポジトリ
- flox1an/nostube
- ライセンス
- MIT
- 最終更新
- 2026/5/8
Source: https://github.com/flox1an/nostube / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。