dpyc-oracle について
dpyc-oracleは、DPYC Social Contract向けの無料・認証不要のMCPコンシェルジュです。GitHubの最新レジストリを参照して、会員資格、ガバナンス、参加手続き、ネットワークサービスについて回答し、所定の変更には署名付きリクエストを求めます。
主な機能
- 01メンバー検索とネットワークサービスの解決
- 02会員資格・ガバナンス・参加手続きの案内
- 03ネットワークバージョンとデプロイ勧告の確認
- 04署名付きの市民登録とサービス登録
- 05価格キャンペーンの一覧と取得
活用シーン
- 01メンバーを調べる、または登録済みサービスを探す
- 02参加方法やAuthorityの追加方法を確認
- 03署名済みNostrイベントで市民登録
- 04コミュニティの価格キャンペーンを取得
MCP 対応
認証なしで利用できる情報照会とレジストリツールをMCPクライアントに提供します。所定のレジストリ書き込みにはNIP-98署名付きリクエストが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://dpyc-oracle.fastmcp.app/mcpclaude mcp add --transport http lonniev-dpyc-oracle https://dpyc-oracle.fastmcp.app/mcp{"mcpServers":{"lonniev-dpyc-oracle":{"type":"http","url":"https://dpyc-oracle.fastmcp.app/mcp"}}}Cursor で開く{"servers":{"lonniev-dpyc-oracle":{"type":"http","url":"https://dpyc-oracle.fastmcp.app/mcp"}}}VS Code で開く{"mcpServers":{"lonniev-dpyc-oracle":{"type":"http","url":"https://dpyc-oracle.fastmcp.app/mcp"}}}{"mcpServers":{"lonniev-dpyc-oracle":{"serverUrl":"https://dpyc-oracle.fastmcp.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
30このツールにパラメーターはありません。
詳細
DPYC Oracle
DPYC Social Contract 向けの、無料で認証不要の MCP コンシェルジュサービスです。Oracle は、dpyc-community GitHub registry をリアルタイムで読み取り、会員資格、ガバナンス、オンボーディング、税率に関する質問に回答します。クレジット、Neon データベース、Secure Courier、支払い、認証情報は不要です。例外はレジストリへの書き込みで、書き込みには署名付きリクエストが必要です(署名付きレジストリ書き込みを参照)。
利用可能なツール
| ツール | パラメーター | 説明 |
|---|---|---|
about() | — | リポジトリのドキュメント(README + GOVERNANCE)に基づく詳しい説明 |
lookup_member(npub) | npub: str | Nostr npub を使ってメンバーを検索します |
list_services(probe, kind) | probe: bool = True, kind: str = "all" | レジストリから稼働中のサービスネットワークを列挙します。必要に応じて各メンバーと MCP ハンドシェイクを行い、メンバー自身による説明とツール一覧を取得します |
get_tax_rate() | — | Authority ごとの従価認証税について説明します。独自の税率は提示せず、該当する Authority の check_price を案内します |
economic_model() | — | 認証チェーンを通じて価値がどのように流れるかを定性的に示すモデルです(固定税率、件数、収益額は含みません) |
get_rulebook() | — | GOVERNANCE.md の内容 |
how_to_join() | — | ティア別の参加手順ガイド |
how_to_add_authority() | — | 新しい Tollbooth Authority を立ち上げるためのエンドツーエンドガイド(dpyc-community からリアルタイムに取得) |
who_is_first_curator() | — | 初代 Curator の npub と記録 |
network_versions() | — | 現在推奨されているコンポーネントのバージョン |
network_advisory() | — | 運用者向けのデプロイに関する注意事項 |
service_status() | — | 実行時バージョンの診断 |
resolve_service(name, npub) | name: str = "", npub: str = "" | 名前または npub(どちらか一方のみ)でサービスを検索し、その npub、url、name、role、purchase_mode を返します。運用者は GitHub を読む代わりに、SDK の default_oracle_client() を通じてこれを使用します |
resolve_authority_for(npub) | npub: str | メンバーの upstream_authority_npub に指定された認証 Authority(npub、url、name) |
get_relays() | — | dpyc-community/relays.json に記載された DPYC Nostr リレーの一覧を優先順で返します。Oracle が到達不能と確認したリレーは後方に移動しますが、削除されることはありません |
report_relay_failure(relay, reporter_npub, signed_event, mode) | relay: str, reporter_npub: str, signed_event: str, mode: str = "unknown" | DPYC のリレー一覧にあるリレーを到達不能として報告します。イベントには reporter_npub による署名が必要です。その後、Oracle 自身がリレーをプローブし、Oracle によるプローブ結果のみが優先順位を変更します |
request_citizenship(npub, display_name) | npub: str, display_name: str | 市民登録のオンボーディングを開始します(チャレンジを発行) |
confirm_citizenship(npub, challenge_id, signed_event_json) | npub: str, challenge_id: str, signed_event_json: str | 署名済み Nostr イベントを使ってオンボーディングを完了します |
register_advocate(npub, display_name, service_name, service_url, service_description) | npub: str, display_name: str, service_name: str, service_url: str, service_description: str | コミュニティ向けユーティリティサービスを Advocate として登録します。リクエストには npub 自身の鍵による署名が必要です |
register_authority(authority_npub, display_name, service_url, upstream_authority_npub) | authority_npub: str, display_name: str, service_url: str, upstream_authority_npub: str | 新しい Authority を登録します(オンボーディングフローから呼び出されます) |
register_operator(operator_npub, display_name, service_url, authority_npub) | operator_npub: str, display_name: str, service_url: str, authority_npub: str | 新しい Operator を登録します。スポンサーとなる Authority が、その所有者による採用承認後に呼び出します。リクエストには authority_npub の鍵による署名が必要です |
update_operator(operator_npub, authority_npub, service_url, display_name) | operator_npub: str, authority_npub: str, service_url: str = "", display_name: str = "" | 既存の Operator のレジストリエントリーを更新します(例:新しい MCP エンドポイント)。Authority の所有者が Operator の更新リクエストを承認した後、Authority が呼び出します。リクエストには authority_npub の鍵による署名が必要です |
deregister_operator(operator_npub, authority_npub) | operator_npub: str, authority_npub: str | Operator が Authority を離れる場合、または Authority が Operator との関係を解消する場合に、Operator をレジストリから削除します。Authority が呼び出し、リクエストには authority_npub の鍵による署名が必要です |
check_ban_status(npub) | npub: str | npub が禁止されているか確認します |
publish_campaign(author_npub, operator_npub, campaign_json, campaign_name, campaign_markdown) | author_npub: str, operator_npub: str, campaign_json: str, campaign_name: str = "", campaign_markdown: str = "" | DPYC コミュニティに料金キャンペーンを公開します。リクエストには author_npub の鍵による署名が必要です |
list_campaigns(operator_npub, author_npub) | operator_npub: str = "", author_npub: str = "" | 公開済みの料金キャンペーンを一覧表示します。必要に応じて Operator または作成者で絞り込めます |
get_campaign(author_npub, operator_npub, slug, format) | author_npub: str, operator_npub: str, slug: str, format: str = "json" | 公開済みの料金キャンペーンを取得します(JSON または Markdown) |
スタブ実装(今後対応予定)
| ツール | 説明 |
|---|---|
renounce_membership(npub) | 自動 PR による市民の自己登録解除 |
initiate_ban_election(target_npub, reason) | 経済的な追放投票を開始 |
cast_ban_vote(election_id, vote, npub) | Lightning で資金提供する追放投票 |
署名付きレジストリへの書き込み
register_operator、update_operator、deregister_operator はネットワークが信頼する相手を変更するため、Oracle はその Operator を後援する Authority からのリクエストのみを受け付けます。リクエストには、指定された authority_npub の鍵で作成した NIP-98 署名(Authorization: Nostr <base64 kind-27235>。リクエストのメソッド、URL、本文に紐付けられたもの)が必要です。署名のないリクエスト、または他の鍵で署名されたリクエストは拒否されます。
register_advocate と publish_campaign にも同じ NIP-98 署名が必要です。署名は書き込み対象の npub の鍵で作成します。Advocate は自身を登録し、キャンペーンは作成者自身の npub で公開します。鍵を持つ人なら誰でも実行できますが、他者の npub を名乗って実行することはできません。
Oracle のその他すべてのツールは、Authorization ヘッダーなしで応答します。
Operator がこれらのツールを直接呼び出すことはありません。Operator は自身の Authority に依頼し(Authority 上で request_adoption、update_operator、deregister_operator を実行)、所有者の承認後、または登録解除の場合は直ちに、Authority がここで署名付き呼び出しを行います。
市民登録
新しい市民は、Schnorr 署名の検証を通じて自己登録できます。
request_citizenship(npub, display_name)— 暗号学的チャレンジを発行します- Nostr nsec でチャレンジに署名します(オフラインで行い、nsec がデバイスの外部に出ることはありません)
confirm_citizenship(npub, challenge_id, signed_event_json)— 署名を検証し、自動的にコミットします
成功すると、Oracle は dpyc-community の members/citizens/{npub}.json に個別のメンバーファイルを作成します。CI ワークフローは、個別ファイルから members/read-only-lookup-cache.json を再生成します。
Advocate の登録
Advocate は、共有インフラを提供するコミュニティ向けユーティリティサービス(OAuth2 コレクターなど)であり、収益化される Operator ではありません。登録は Oracle を介して行うため、チャレンジとレスポンスは不要です。
register_advocate(
npub="<service_npub>",
display_name="My Service",
service_name="my-service",
service_url="https://my-service.fastmcp.app",
service_description="What the service does",
)
Oracle は members/advocates/{npub}.json を直接コミットし、members/read-only-lookup-cache.json を更新するため、Advocate はすぐに見つけられるようになります。ピア MCP サーバーは、この Oracle の resolve_service(name=...) を通じてサービス URL を検出します。tollbooth-dpyc はこれを default_oracle_client().resolve_service(name=...) として呼び出します。
接続方法
このサービスは Horizon 上でホストされています。MCP クライアントの設定に追加してください。
{
"mcpServers": {
"dpyc-oracle": {
"url": "https://dpyc-oracle.fastmcp.app/mcp"
}
}
}
関連リポジトリ
常に最新の正式な一覧はレジストリにあります。最新データを取得するには、list_services()/lookup_member()/network_versions() を呼び出してください。安定したソースリポジトリ:
コア
- dpyc-community — レジストリ、ガバナンス、メンバーシップデータ
- tollbooth-dpyc — すべてのオペレーターとオーソリティが基盤とする Python SDK
- tollbooth-sample — 新しいサービス向けのリファレンスオペレーターテンプレート
- tollbooth-pricing-studio — オペレーターが料金モデルの設計に使用する iOS アプリ
- tollbooth-web — オペレーターのフロントエンド向け共有ブラウザー SDK
オーソリティ(認定チェーン)
- tollbooth-authority — 認定と手数料台帳
- tollbooth-authority-northamerica — 地域認定機関
- tollbooth-authority-newengland — サブリージョン認定機関
オペレーター
- thebrain-mcp — パーソナルブレインのナレッジグラフ
- excalibur-mcp — X/Twitter への投稿
- schwab-mcp — Charles Schwab の証券口座データ
- taxsort-mcp — 税務項目の仕分けと分類
- optionality-mcp — オプション分析
- cypher-mcp — 収益化されたグラフ回答(Neo4j/AuraDB 上で Cypher という名前)
- goodearth-mcp — 地域限定の農業気候分析
- beesknees-mcp — The Bee's Knees、女王を目指すマルチプレイヤーレース
- roastify-mcp — Roastify のコーヒーカタログとパッケージデザイン
- ChartRemotely-mcp — ペアリングしたエージェントを通じて、デスクトップチャートに証券を表示
アドボケート(共有ユーティリティ、非収益化)
- tollbooth-oauth2-collector — OAuth2 認可コードの収集
- tollbooth-shortlinks — OAuth フロー用の一時的な短縮 URL
ライセンス
Apache-2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。