cp0x public data について
cp0x public dataは、cp0xの紹介特典、レース、DeFiインターフェースの制限、x402カタログを調べるための読み取り専用MCPサーバーです。公開データとともに、出典と鮮度情報を返します。
主な機能
- 01特典と紹介コードの検索
- 02レース一覧とリーダーボードの確認
- 03国別のインターフェース制限の確認
- 04x402ファシリテーターとリソースの閲覧
- 05cp0x情報と公開リポジトリの参照
- 06出典とデータの古さの表示
活用シーン
- 01各会場の紹介特典の比較
- 02開催中のレースと順位の確認
- 03国ごとに記録されたDeFi制限の確認
- 04公開x402カタログとcp0xリポジトリの調査
MCP 対応
認証不要のStreamable HTTP経由で、`https://mcp.cp0x.com/mcp` からMCPクライアントに読み取り専用ツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.cp0x.com/mcpclaude mcp add --transport http com-cp0x-public-data https://mcp.cp0x.com/mcp{"mcpServers":{"com-cp0x-public-data":{"type":"http","url":"https://mcp.cp0x.com/mcp"}}}Cursor で開く{"servers":{"com-cp0x-public-data":{"type":"http","url":"https://mcp.cp0x.com/mcp"}}}VS Code で開く{"mcpServers":{"com-cp0x-public-data":{"type":"http","url":"https://mcp.cp0x.com/mcp"}}}{"mcpServers":{"com-cp0x-public-data":{"serverUrl":"https://mcp.cp0x.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
cp0x MCP
cp0x が運営する、cp0x の公開データを提供する読み取り専用 MCP サーバーです。
ツール
| ツール | 戻り値 | 引数 |
|---|---|---|
list_deals | ボーナス、紹介リンクとコード、レースの概要、および一致した件数を含む、一致する案件です。 | オプションの query:会場名またはスラッグに対する大文字と小文字を区別しない部分文字列(最大 100 文字)。オプションの limit:1~100。省略すると一致するすべての項目を返します。 |
get_deal | 説明とレースを含む案件レコード全体です。案件が見つからない場合は、既知のスラッグを返します。 | 必須の slug:案件のスラッグ(最大 100 文字)。 |
get_referral_code | 一致する会場の案件、紹介コード、リンクです。一意に特定できない場合は、候補の名称とスラッグを返します。 | 必須の venue:会場名またはスラッグ(最大 100 文字)。部分一致より完全一致が優先されます。 |
list_races | 各レースのコード、タイトル、ステータス、日付、案件のスラッグです。 | オプションの status:active または completed。省略すると両方を返します。オプションの slug:案件のスラッグ(最大 100 文字)。 |
get_leaderboard | レースの詳細、列の定義、上位のエントリー、およびエントリーの合計数です。 | 必須の slug(最大 100 文字)。オプションの race_code(デフォルトは leaderboard)。オプションの top:1~100(デフォルトは 20)。 |
check_interface_restrictions | インターフェースが宣言した制限、確認されたプローブ、代替案、凡例、スナップショットのバージョン、country_match です。完全一致がない場合は、候補のインターフェースを返します。 | 必須の protocol:インターフェース名または ID(最大 100 文字)。オプションの country:ISO 3166 alpha-2 コード。省略すると、確認されたすべての国を返します。 |
list_restricted_interfaces | scope、declared_layers、close_only_layers、regions、observed_block を含む、国別、クローズのみ、地域別、または確認済みの制限があるインターフェースです。 | 必須の country:ISO 3166 alpha-2 コード。 |
list_x402_facilitators | 名前と URL を含む公開ファシリテーターカタログです。 | なし。 |
list_cp0x_x402_resources | 価格、タグ、対象 URL を含む cp0x のリソースカタログ項目です。 | オプションの tag:大文字と小文字を区別しないタグ一致。 |
about_cp0x | distributed_to_users を先頭に、今日のトークン価格でユーザーに渡された合計額、トークン数量または現金賞金があるすべての配布、および配布時の価値を示します。ミッション、価値観、活動、サイト、チャネル、助成金、2025 年の数値を含む、同梱の cp0x ファクトシートも含みます。 | なし。 |
list_cp0x_open_source | 説明、URL、ホームページ、種類、スター数、トピック、プッシュ日時、フォークフラグ、件数を含む、公開 cp0x リポジトリです。最新のプッシュ順に並べ替えられます。アーカイブ済みおよびプライベートのリポジトリと、pi- インターフェース以外のフォークは除外されます。 | オプションの kind:interface または project。省略すると両方を返します。 |
結果にはデータソースの帰属情報と stale フラグが含まれます。失敗時には error フィールドが含まれる場合があります。紹介コードは公開された内容のまま返され、存在しないコードが作り出されることはありません。
上流データの鮮度と再試行に関するフィールド(about_cp0x では、これらのフィールドは distributed_to_users.prices 内に含まれます。トップレベルの stale は false のままです)。トークン価格が不足している場合、合計は一部の価格のみで計算され、不足している価格は概要に記載されます。価格が設定されたトークンが一つもない場合、概要には配布時の価値が使用されます。価格エラーは distributed_to_users.prices 内に残ります。
stale:更新に失敗した場合、またはリクエストが一時停止されている場合に、期限切れのキャッシュデータが返されると true になります。fetched_at:使用された最も古い上流レスポンスの UTC タイムスタンプ。利用可能なレスポンスがない場合は null です。age_s:最も古いレスポンスの経過秒数。利用可能なレスポンスがない場合は null です。stale_since:古い結果の場合、最も古いレスポンスのキャッシュ TTL が期限切れになった UTC タイムスタンプ。それ以外の場合は null です。retry_after_s:上流エラー時に含まれます。予算、バックオフ、またはネガティブキャッシュによってリクエストがブロックされている場合、再試行までの整数秒数を示します。最初の通常の失敗の場合は null です。check_interface_restrictionsの場合、country_matchにはnationalとclose_onlyのフラグ、regions内の地域コードとの一致、および一致をもたらした宣言のステータスであるstatusが含まれます。一致する宣言がない場合、statusは null です。国が指定されていない場合、country_matchは null です。list_restricted_interfacesの各エントリでは、scopeは優先順位の高い順にnational、close_only、regional、observedのいずれかです。declared_statusフィールドには、national、close_only、regionalの一致について、元のレイヤーのステータスが格納されます。観測のみの一致では null です。複数の宣言が一致する場合、どちらのステータスフィールドにも、そのスコープの優先順位で最初に該当するレイヤーが使われます。close_only_layersフィールドには、ポジションの決済のみを許可するレイヤーが一覧表示されます。regionsには、一致したCA-ONなどの地域区分が一覧表示されます。
質問の例:「Extended で利用できる紹介キャンペーンは何ですか?」「現在有効なレースはどれですか?」「モニターは米国の Aave にどのようなインターフェース制限を報告していますか?」
接続
公開 Streamable HTTP URL:https://mcp.cp0x.com/mcp
認証は不要です。
Claude(コネクター/デスクトップ)
認証なしで、Claude のコネクターまたは Claude Desktop から https://mcp.cp0x.com/mcp を使い、URL でリモート MCP サーバーを追加します。
ChatGPT
認証なしで、カスタム MCP コネクターとして https://mcp.cp0x.com/mcp を使い、URL でリモート MCP サーバーを追加します。
Cursor
mcp.json で URL によってリモート MCP サーバーを追加します。
{
"mcpServers": {
"cp0x": {
"url": "https://mcp.cp0x.com/mcp"
}
}
}
Perplexity
https://mcp.cp0x.com/mcp を使って URL でリモート MCP サーバーを追加し、認証で None を選択します。
データソースと鮮度
| ソース | 公開エンドポイント | キャッシュ TTL |
|---|---|---|
| cp0x の取引キャンペーンとレース | 取引キャンペーン API。リーダーボードは https://cp0x.com/api/v1/deals/{slug}/races/{race_code}。 | 取引キャンペーンとリーダーボードは 60 秒。 |
| DeFi インターフェース制限モニター | 公開 モニターリポジトリのインターフェースカタログと観測データ。 | 600 秒。 |
| cp0x x402 カタログ | ファシリテーターと cp0x リソース。 | 300 秒。 |
| cp0x のオープンソースリポジトリ | cp0x-org の api.github.com 公開リポジトリ API。API キーは不要です。 | 10 分(600 秒)。 |
| トークン価格 | 1 回のリクエストで HYPE、LIT、DRV、RESOLV、DIME の米ドル価格を取得する CoinGecko 公開エンドポイント。API キーは不要です。distributed_to_users で使用されます。 | 60 秒。 |
| cp0x 静的ファクトシート | サーバーに同梱される cp0x_mcp/data/about.json。数値は cp0x 2025 年次報告書に基づきます。 | メモリに一度読み込まれます。ネットワークリクエストや時間指定の更新はありません。 |
モニターデータは公開されたリポジトリのスナップショットであり、ライブプローブではありません。そのバージョンはカタログの meta.generated フィールドから取得され、check_interface_restrictions によって data_version として返されます。観測データは記録されたチェックを示すものであり、プローブが欠けていても、利用可能であることの根拠にはなりません。
キャッシュは各サーバーインスタンス内に保持され、期限切れ後に要求に応じて更新されます。上流へのリクエストが失敗した場合、既存のキャッシュ応答が stale を true に設定して返されることがあります。キャッシュデータがない場合、結果には error が含まれます。キャッシュ TTL は、上流データが変更されていることを保証するものではありません。
レート制限
HTTP サーバーは、呼び出し元 IP ごとにデフォルトで 60 requests/minute に制限します。--per-ip-per-minute で設定できます。制限を超えたリクエストには、秒単位の Retry-After ヘッダーを含む HTTP 429 が返されます。
上流の cp0x.com API も、IP ごとに 60 requests/minute に制限しています。サーバーの送信元 IP は、上流へのリクエスト間で共有されます。キャッシュからの読み取りにより、上流へのトラフィックが削減されます。
各サーバーインスタンスは、すべてのツール間で、ホストとポートをキーとした 45 upstream requests per minute per host の予算を、ローリング 60 秒間のウィンドウで共有します。実際に上流へ呼び出した場合のみ予算を消費し、キャッシュヒットでは消費しません。予算を使い切ると、有効期限切れのキャッシュデータが stale を true に設定して返されます。キャッシュデータがない場合、結果には error と retry_after_s が含まれます。上流から HTTP 429 が返された場合、Retry-After に従ってホスト全体をバックオフします(ヘッダーがないか数値でない場合は 60 秒)。この場合も同じく古いデータにフォールバックします。キャッシュデータのない通常の失敗は、URL ごとに 30 秒間ネガティブキャッシュされます。繰り返しのリクエストでは、上流への再呼び出しを行わず、エラーと残り時間を示す retry_after_s が返されます。最初の通常の失敗では、retry_after_s は null として報告されます。
ローカルで実行する
Python 3.10 以降を使用して、リポジトリからインストールします。
pip install -e .
stdio 経由で実行します。
cp0x-mcp --transport stdio
HTTP 経由で実行します。
cp0x-mcp --transport http --host 127.0.0.1 --port 8000 --allowed-host localhost:8000 --allowed-host 127.0.0.1:8000
HTTP ルートは /mcp と /health です。クライアントの Host ヘッダーにポートが含まれる場合はポートも含めて、一致するように --allowed-host を設定します。許可リストを指定しない場合、ポートの有無を問わず localhost と 127.0.0.1 が許可されます。
リバースプロキシの背後にデプロイする
Uvicorn は FORWARDED_ALLOW_IPS を読み取り、どのプロキシからの転送クライアント IP を許可するかを判断します。呼び出し元のレート制限で X-Forwarded-For の元のクライアント IP が使われるよう、リバースプロキシの IP アドレスを設定してください。信頼できるプロキシ設定がない場合、信頼されていないプロキシ経由のすべての呼び出し元は、プロキシ IP をキーとする同じレート制限枠を共有します。
Docker イメージでは FORWARDED_ALLOW_IPS="*" が設定されています。この設定を使用する場合、ポート 8000 にアクセスできるのはリバースプロキシだけでなければなりません。そうでない場合は、環境変数による上書きで * をプロキシの IP に置き換えてください。Docker ホスト上のプロキシを使用する場合は、公開ポートをループバックにバインドします。
Docker イメージをビルドして実行します。
docker build -t cp0x-mcp .
docker run -p 127.0.0.1:8000:8000 cp0x-mcp
/mcp と /health をポート 8000 に転送し、公開 Host ヘッダーを保持してください。イメージはすべてのインターフェースにバインドされ、Host ヘッダー mcp.cp0x.com と mcp.cp0x.com:* を許可します。コンテナへのローカルリクエストでは、許可された Host ヘッダーを送信する必要があります。ヘルスチェックは、ループバック上で Host: mcp.cp0x.com を指定して /health にリクエストします。このルートでもホスト許可リストと呼び出し元のレート制限が適用されます。
公開
リポジトリのルートに server.json を置いてください。このファイルは com.cp0x/public-data、バージョン 0.1.0、および公開 Streamable HTTP エンドポイントを宣言します。このリモートサーバーを公開する際に、パッケージは不要です。
MCP Registry に公開する前に、ドメインのルートでの DNS TXT レコード、または https://cp0x.com/.well-known/mcp-registry-auth での HTTP 証明を使って、cp0x.com の所有権を確認してください。対応するドメイン検証方法を使って mcp-publisher で認証し、リポジトリのルートから次を実行します。
mcp-publisher validate
mcp-publisher publish
Glama は GitHub リポジトリのインデックス作成時に、メンテナーのメタデータとしてルートの glama.json を読み取ります。
開示事項
取引リンクには cp0x の紹介コードが含まれます。サーバーは公開データを読み取るだけで、取引の発注や、有料の x402 リクエストの実行は行いません。MIT ライセンスです。LICENSE を参照してください。プライバシーポリシーについては PRIVACY.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。