CoinStats について
CoinStatsは、暗号資産の市場、ポートフォリオ、ウォレット、取引所、ニュースのデータを必要とするエージェント向けのホスト型MCPサーバーです。ホスト版はブラウザーでOAuth認証するため、APIキーの管理は不要です。
主な機能
- 01コインの価格と市場データの取得
- 02ポートフォリオの推移と損益の確認
- 03ウォレット残高と取引の照会
- 04取引所のポジションと取引履歴の確認
- 05取引所価格の比較と暗号資産ニュースの取得
活用シーン
- 01コインの現在価格や市場チャートの確認
- 02指定期間におけるポートフォリオの推移確認
- 03複数のブロックチェーン上のウォレット活動の調査
- 04取引所ポジションの追跡や暗号資産ニュースの検索
MCP 対応
OAuth 2.1認証を使うホスト型HTTPSサーバーを通じて、CoinStats APIの機能をMCPクライアントに提供します。APIキーを使う開発者向けのstdioサーバーも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
30掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | いいえ | 名前でコインを検索 |
| page | number | いいえ | ページ番号 |
| limit | number | いいえ | ページあたりの結果数 |
| currency | string | いいえ | 価格データに使用する通貨 |
| symbol | string | いいえ | シンボルでコインを取得 |
| blockchains | string | いいえ | ブロックチェーンのフィルター。カンマ区切り(例:ethereum,solana) |
| includeRiskScore | string | いいえ | リスクスコアを含めるかどうか:true または false。デフォルト:false |
| categories | string | いいえ | カテゴリーフィルター。カンマ区切り(例:memecoins,sports) |
| sortBy | string | いいえ | 並べ替えに使用するフィールド |
| sortDir | enum | いいえ | 並べ替え方向asc | desc |
| marketCap-greaterThan | number | いいえ | 時価総額が次の値より大きい |
| marketCap-equals | number | いいえ | 時価総額が次の値と等しい |
| marketCap-lessThan | number | いいえ | 時価総額が次の値より小さい |
| fullyDilutedValuation-greaterThan | number | いいえ | 完全希薄化後評価額が次の値より大きい |
| fullyDilutedValuation-equals | number | いいえ | 完全希薄化後評価額が次の値と等しい |
| fullyDilutedValuation-lessThan | number | いいえ | 完全希薄化後評価額が次の値より小さい |
| volume-greaterThan | number | いいえ | 取引量が次の値より大きい |
| volume-equals | number | いいえ | 取引量が次の値と等しい |
| volume-lessThan | number | いいえ | 取引量が次の値より小さい |
| priceChange1h-greaterThan | number | いいえ | 1時間の価格変動が次の値より大きい |
| priceChange1h-equals | number | いいえ | 1時間の価格変動が次の値と等しい |
| priceChange1h-lessThan | number | いいえ | 1時間の価格変動が次の値未満 |
| priceChange1d-greaterThan | number | いいえ | 1日の価格変動が次の値を超える |
| priceChange1d-equals | number | いいえ | 1日の価格変動が次の値に等しい |
| priceChange1d-lessThan | number | いいえ | 1日の価格変動が次の値未満 |
| priceChange7d-greaterThan | number | いいえ | 7日間の価格変動が次の値を超える |
| priceChange7d-equals | number | いいえ | 7日間の価格変動が次の値に等しい |
| priceChange7d-lessThan | number | いいえ | 7日間の価格変動が次の値未満 |
| availableSupply-greaterThan | number | いいえ | 利用可能な供給量が次の値を超える |
| availableSupply-equals | number | いいえ | 利用可能な供給量が次の値に等しい |
| availableSupply-lessThan | number | いいえ | 利用可能な供給量が次の値未満 |
| totalSupply-greaterThan | number | いいえ | 総供給量が次の値を超える |
| totalSupply-equals | number | いいえ | 総供給量が次の値に等しい |
| totalSupply-lessThan | number | いいえ | 総供給量が次の値未満 |
| rank-greaterThan | number | いいえ | ランクが次の値を超える |
| rank-equals | number | いいえ | ランクが次の値に等しい |
| rank-lessThan | number | いいえ | ランクが次の値未満 |
| price-greaterThan | number | いいえ | 価格が次の値を超える |
| price-equals | number | いいえ | 価格が次の値に等しい |
| price-lessThan | number | いいえ | 価格が次の値未満 |
| riskScore-greaterThan | number | いいえ | リスクスコアが次の値を超える(includeRiskScore=true の場合のみ) |
| riskScore-equals | number | いいえ | リスクスコアが次と等しい(includeRiskScore=true の場合のみ) |
| riskScore-lessThan | number | いいえ | リスクスコアが次より小さい(includeRiskScore=true の場合のみ) |
詳細
CoinStats MCP サーバー
CoinStats API 用のホスト型モデルコンテキストプロトコルサーバーです。AI エージェント(Claude、Cursor、Codex、ChatGPT など、MCP に対応するあらゆるもの)が、OAuth で保護された単一の HTTPS URL を通じて、CoinStats アプリが使用するものと同じ暗号資産データを読み取り、操作できます。
コピーする API キーも、管理する環境変数もありません。各ユーザーがブラウザーで自身の CoinStats アカウントを使ってエージェントを認証すると、その後はエージェントにユーザーごとのトークンが付与されます。
サーバー URL
https://mcp.coinstats.app/mcp
インストール
Claude.ai / Claude Desktop
「設定」→ コネクタ → カスタムコネクタを追加を選択します。サーバー URL を貼り付けて、追加をクリックします。
https://mcp.coinstats.app/mcp
ブラウザーウィンドウが coinstats.app/openapi/consent で開きます。サインインするか、既存のセッションを確認し、要求されたアクセス権を確認して、承認をクリックします。
Cursor
または、手動で ~/.cursor/mcp.json に追加します。
{
"mcpServers": {
"coinstats": {
"url": "https://mcp.coinstats.app/mcp"
}
}
}
Cursor を再起動します。初回の呼び出し時に、OAuth フロー用のブラウザーウィンドウが開きます。
Claude Code
claude mcp add coinstats --transport http https://mcp.coinstats.app/mcp
Claude Code が認証用のブラウザーを開きます。次のコマンドで確認します。
claude mcp list
Codex
codex mcp add は URL を登録するだけで、ブラウザーは開きません。別途 codex mcp login を実行してください。
codex mcp add coinstats --url https://mcp.coinstats.app/mcp
codex mcp login coinstats
ログイン後、codex mcp list を実行すると、coinstats に Auth: OAuth と表示されます。
その他の MCP クライアント
OAuth 2.1 認証に対応する Streamable HTTP トランスポートを使用するクライアントであれば、どれでも動作します。https://mcp.coinstats.app/mcp を指定してください。動的クライアント登録(RFC 7591)に対応しているため、事前共有の client_id は不要です。
できること
認証後、エージェントは次の操作を行えます。
- 100,000 以上のコインのリアルタイム価格、チャート、市場データを検索する
- CoinStats ポートフォリオのコイン、損益、経時的なパフォーマンスを読み取る
- 120 以上のブロックチェーン上のウォレット残高とトランザクションを照会する
- Hyperliquid を含む接続済み取引所の未決済の無期限先物および先物のポジションを読み取り、利用可能な場合はレバレッジ、損益、ファンディング情報を確認する
get-perpetual-tradesで同期済みの無期限先物の取引履歴を読み取り、利用可能な場合は価格、実現損益、手数料を確認する。portfolioIdおよびlimit/skipによるページネーションに対応しています。対象範囲はコネクターと最終同期時刻によって異なります。- ウォレット、取引所、ポートフォリオのキャッシュフロー調整済みの過去の損益を、既定またはカスタムの暦期間で取得する
- 200 以上の取引所間でティッカー価格を比較する
- 暗号資産ニュースを取得する(最新、トレンド、ソースまたはトピックで絞り込み)
ツールの全カタログ:https://coinstats.app/api-docs/mcp/tools。
認証
ディスカバリーと OAuth フローは、標準の MCP / RFC パターンに従います。
| エンドポイント | 仕様 | 目的 |
|---|---|---|
GET /.well-known/oauth-protected-resource | RFC 9728 | 認可サーバー(https://api.coin-stats.com)を示します |
GET /.well-known/oauth-authorization-server | RFC 8414 | AS メタデータ(古いクライアントが中継を介さずに見つけられるよう、MCP ホスト上にも同じ情報を配置しています) |
POST /v1/oauth/register(AS 上) | RFC 7591 | 動的クライアント登録 |
GET /v1/oauth/authorize → 同意画面 | OAuth 2.1 §4.1 | ユーザーがアクセスを承認します |
POST /v1/oauth/token(AS 上) | OAuth 2.1 §4.1 | PKCE コードの交換 |
POST /v1/oauth/revoke(AS 上) | RFC 7009 | クライアントごとの接続解除 |
トークンの送信方法:Authorization: Bearer <token>。現在のスコープは単一の coinstats です。詳細なスコープは今後追加予定です。
セルフホスト / stdio フォールバック(開発者モード)
MCP サーバーを自分で実行する場合(ユーザーごとの OAuth はなく、開発者 API キーのみを使用)、従来の stdio エントリーポイントを npm で公開しています。
npx @coinstats/coinstats-mcp
環境変数に COINSTATS_API_KEY を設定して実行してください。次のようにクライアントに接続します。
{
"mcpServers": {
"coinstats": {
"command": "npx",
"args": ["-y", "@coinstats/coinstats-mcp"],
"env": { "COINSTATS_API_KEY": "<YOUR_API_KEY>" }
}
}
}
または、Docker を使用します。
{
"mcpServers": {
"coinstats": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "COINSTATS_API_KEY", "coinstats/coinstats-mcp"],
"env": { "COINSTATS_API_KEY": "<YOUR_API_KEY>" }
}
}
}
「承認」をクリックする人間がいない、ヘッドレスまたは無人のインテグレーションには、この方法が適しています。CoinStats API ダッシュボードからキーを取得してください。
アーキテクチャ
ホスト型サーバーは、ステートレスな Cloudflare Worker(約 225 KiB/gzip 圧縮時約 41 KiB)で、次の処理を行います。
- RFC 9728 と RFC 8414 のディスカバリーエンドポイントを公開します。
Authorization: Bearer …トークンによってPOST /mcpへのアクセスを制限します。- セッション状態を保持せずに、MCP JSON-RPC(
initialize/tools/list/tools/call/ping)をディスパッチします。 - 各ツール呼び出しを、同じ Bearer トークンを付けて
https://openapiv1.coinstats.appに転送します。
ソース:src/worker.ts。設定:wrangler.jsonc。
ローカル開発
このリポジトリには、2 つのエントリーポイントがあります。
src/worker.ts— Cloudflare Worker です。wrangler devで実行します(デフォルトのポートは 8787 です)。src/index.ts— stdio サーバーです。ビルド後にnode dist/index.jsで実行するか、公開済みの npm パッケージを使用します。
# Build the stdio CLI
npm run build
# Run the Worker locally (requires `wrangler login` first)
npm run dev
# Deploy the Worker manually — needs CLOUDFLARE_ACCOUNT_ID exported in the
# env (the account ID isn't committed to wrangler.jsonc). Normally you don't
# need this: merging to main deploys automatically (see "Deployment" below).
export CLOUDFLARE_ACCOUNT_ID=<your-cf-account-id>
npm run deploy
# Tail production logs
npm run tail
ローカルで Worker を開発する場合は、環境変数を上書きできます。
wrangler dev --var OAUTH_ISSUER:http://localhost:1337 \
--var COINSTATS_API_BASE_URL:http://localhost:9999
デプロイ
GitHub Actions(.github/workflows/ci.yml)は、プルリクエストごとに Worker のビルド、テスト、ドライランでのバンドルを行います。main へのプッシュごとに同じチェックを実行し、その後 mcp.coinstats.app にデプロイして /healthz を確認します。デプロイジョブは production 環境を使用します。この環境を使用できるのは保護されたブランチのみです。また、この環境から 2 つのシークレットを読み込みます。CLOUDFLARE_API_TOKEN(Workers のデプロイ権限)と CLOUDFLARE_ACCOUNT_ID です。フォークからのプルリクエストでは、どちらのシークレットにもアクセスせずにチェックを実行します。新しいコミットを作成せずに再デプロイするには、main でワークフローを手動実行します。デプロイジョブは main の現在の先端のみをデプロイするため、古い実行を再実行するとロールバックではなく失敗します。
デプロイ後のヘルスチェックが失敗しても、自動的にはロールバックされません。以前のバージョンに戻すには、npx wrangler rollback を実行するか、Cloudflare ダッシュボードの Workers & Pages → coinstats-mcp → Deployments からバージョンを選択してから、main で修正を進めてください。
OpenAI プラグインのドメイン検証
OpenAI プラグインの申請ポータルは、https://mcp.coinstats.app/.well-known/openai-apps-challenge にアクセスし、発行したトークンがプレーンテキストで返されることを確認して、ドメインの所有権を検証します。Worker はそのパスで OPENAI_APPS_CHALLENGE 環境変数を返し、変数が未設定の場合は 404 を返します。コミット済みの設定ファイルには含めず、デプロイごとに設定してください。
wrangler secret put OPENAI_APPS_CHALLENGE
関連情報
- CoinStats API ドキュメント — REST API の全機能、MCP セットアップガイド、ツールカタログ
- API ダッシュボード — stdio モードのユーザーが開発者 API キーを管理するためのページ
ライセンス
MIT — LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。