crypto-sentiment-x402 について
crypto-sentiment-x402は、9つの暗号資産ニュースRSSとFear & Greed Indexを使い、AIエージェントにニュースセンチメントと履歴データを提供します。APIをMCPツールとして利用でき、Base上のUSDCによるx402従量課金にも対応します。
主な機能
- 01暗号資産ニュースRSS 9件を集約
- 02Fear & Greed Indexを反映
- 03暗号資産スラングを含むセンチメント分析
- 04現在値と時間別履歴を提供
- 05銘柄一覧とアーカイブ範囲を表示
活用シーン
- 01銘柄の直近ニュースセンチメント確認
- 02記録済みの時間別センチメント履歴の照会
- 03MCP経由でエージェントにデータを取得させる
MCP 対応
`mcp_server.py`はセンチメント、時間別履歴、無料の情報照会をMCPツールとして提供します。有料ツールのUSDC決済は、サーバー側のCDP管理ウォレットがBase上で行います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx crypto-sentiment-x402-mcpCDP_API_KEY_IDシークレットCoinbase Developer Platform API key ID (portal.cdp.coinbase.com). Used to sign x402 payments from your own wallet. Only needed for the paid tools (crypto_sentiment, get_hourly_history); the free tools work without it.CDP_API_KEY_SECRETシークレットCoinbase Developer Platform API key secret, paired with CDP_API_KEY_ID. Only needed for the paid tools (crypto_sentiment, get_hourly_history); the free tools work without it.CDP_WALLET_NAMEName of the CDP wallet to create/reuse for payments. Defaults to "crypto-sentiment-mcp-wallet". Must hold USDC (+ a little ETH for gas) on the configured network.SENTIMENT_API_URLBase URL of the deployed sentiment API. Defaults to https://crypto-sentiment-x402.onrender.com.X402_NETWORK"mainnet" (default, real USDC on Base) or "testnet" (free Base Sepolia USDC).SENTIMENT_PAY_TOpayTo address the paid tools expect in the 402; anything else is refused before signing. Defaults to the hosted API's wallet. Set it when SENTIMENT_API_URL points at your own deployment.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
暗号資産センチメント API(x402)
AI エージェント向けの従量課金制暗号資産センチメント API です。API キーもサブスクリプションも不要です。エージェントが API を検出し、HTTP 402 を受け取り、Base 上で USDC を支払うと、データを取得できます。
センチメントの情報源(すべて無料で、キーは不要です):
- 暗号資産ニュースの RSS(9 件)— CoinDesk、Cointelegraph、Decrypt、Bitcoin Magazine、The Block、CryptoSlate、NewsBTC、CryptoPotato、The Defiant (DL News は、フィードに 2026 年 4 月〜5 月の記事しか配信されなかったため、2026-10-04 に削除されました)
- Fear & Greed Index — alternative.me
スコアリング: VADER センチメント分析を使用し、暗号資産のスラング語彙(moon、rekt、rug、hodl、bullish/bearish など)を拡張して、スラングが中立と判定されないようにしています。各見出しは、HTML タグ、エンティティ、フィードのフッター、媒体名を削除したうえで、タイトルとフィードの説明文を照合してスコアリングします(app/sources/news.py の clean_text、2026-10-21 以降はメソッド 72h-hl24-v2)。過去 72 時間以内に公開された見出しのみが対象となり、各見出しの重みは、経過時間が 24 時間増えるごとに半減します(app/window.py)。有効サンプルサイズが 5 未満の場合、ラベルは insufficient recent news になります。
1. Base ウォレットアドレスを取得する
USDC の支払いを受け取るためのアドレスが必要です。Base で動作する一般的な Ethereum 形式のウォレット(例:Coinbase Wallet、Base 用に設定した MetaMask)であれば使用できます。このアプリに秘密鍵を渡す必要はありません。資金を受け取るための公開アドレスのみが必要です。
2. ローカルで実行する(テストネット — 無料、実際のお金は不要)
cd crypto-sentiment-x402
cp .env.example .env
# edit .env and set PAY_TO_ADDRESS to your wallet address
pip install -r requirements.txt
uvicorn app.main:app --reload
http://localhost:8000 にアクセスすると、API の説明が表示されます。
支払いなしで http://localhost:8000/sentiment/BTC を呼び出すと、HTTP 402 と支払い手順が返されます。これは、エージェントの x402 クライアントが受け取り、自動的に処理する内容とまったく同じです。
支払いを伴う呼び出しを実際にテストするには、公式の x402 テストクライアントを使用します(Base Sepolia テストネットの USDC が必要です。Base Sepolia faucet から無料で取得できます)。
pip install x402
python -m x402.examples.client --url http://localhost:8000/sentiment/BTC
3. デプロイする(最も簡単な方法:Render.com)
- このフォルダーを新しい GitHub リポジトリにプッシュします。
- render.com に移動し、→ New → Blueprint → リポジトリを接続します。
Render が
render.yamlを自動的に読み込みます。 - 入力を求められたら、
PAY_TO_ADDRESS環境変数にウォレットアドレスを設定します。 - デプロイします。Render が
Dockerfileをビルドし、https://crypto-sentiment-x402.onrender.comのような公開 HTTPS URL を発行します。
これで完了です。テストネットモードがデフォルトで有効になっているため、下記の手順 4 で X402_NETWORK を mainnet に切り替えるまでは、実際のお金はかかりません。
4. 実際の USDC 支払いで運用する
- 無料の Coinbase Developer Platform アカウントに登録し、API キーを作成します。これはメインネットのファシリテーター(本番環境品質の支払い検証/決済)に必要です。
- Render で、次の値を設定します。
X402_NETWORK=mainnetCDP_API_KEY_ID=...CDP_API_KEY_SECRET=...PAY_TO_ADDRESS= ご自身のメインネットの Base アドレス(テストネット専用のアドレスではないことを必ず確認してください)
- 再デプロイします。これで、呼び出しの決済が Base メインネット上で実際の USDC を使って行われます。
すべてが最初から最後まで正常に動作することを検証する間は、低い価格(X402_PRICE_USD のデフォルトは $0.01)から始めてください。
5. AI エージェントが見つけて支払えるように登録する
これは x402 Bazaar です。Coinbase のディスカバリー層であり、x402 サービスを探すエージェント向けの検索エンジンのようなものです。
- CDP ファシリテーターを使用している場合(つまり、手順 4 に従ってメインネットを使用している場合)、最初の実際の支払いを処理すると、別途登録しなくてもサービスが Bazaar で自動的に見つけられるようになります。
- エージェントがサービスを見つけて内容を理解しやすくするには、
app/main.pyのRouteConfigにあるdescriptionフィールドを明確かつ具体的にしてください(すでに設定されています)。このテキストが Bazaar の検索結果に表示されます。 - サービスの公開後に掲載されたことを確認するには、現在の Bazaar の一覧を
https://api.cdp.coinbase.com/platform/v2/x402/discovery/resourcesで閲覧できます(公開されており、キーは不要です)。 - 追加で配信したい場合:Coinbase 独自の Bazaar とは別に、コミュニティが運営する x402 サービスのディレクトリである x402bazaar.org に API を登録できます。
MCP サーバー(Claude Desktop / Claude Code)
エージェントに生の HTTP ではなく MCP 経由で呼び出させたいですか?mcp_server.py は同じ API を MCP ツール(crypto_sentiment、get_hourly_history、および無料の情報ツール 3 つ)として提供します。サーバーは自身の CDP 管理ウォレットを使って呼び出しごとに支払うため、呼び出し元が暗号資産を直接扱う必要はありません。設定については MCP.md を参照してください。
無料で試す
3 つのツールはウォレットも CDP キーも不要で、料金もかかりません。サーバーは CDP 関連の環境変数がなくても起動するため、まずインストールしてこれらを試せます。
list_supported_coins— 対応している 24 個のティッカーシンボルと名称を表示します。archive_coverage— 時間単位のアーカイブに保存されている内容(GET /archive):最初の読み取り、行数、シンボルごとの欠損時間数を表示します。price_quote(symbol)— 無料リクエストを 1 回送信し、402 の支払い要件(価格、ネットワーク、アセット、payToアドレス)を読み取ります。
有料ツールは 2 つあり、Base 上の USDC で、ご自身の CDP ウォレットから支払います。
crypto_sentiment(symbol)— 現在の読み取り値を返します。1 回の呼び出しにつき $0.01 です。対応していないコインと、直近のニュースが少なすぎるコインは拒否され、料金は請求されません。get_hourly_history(symbol, start, end)— 過去の時間単位の読み取り値(GET /history/{symbol})を返します。1 回の呼び出しにつき $0.05 です。記録は稼働中にのみ行われ、過去にさかのぼって補完されることはありません。start/endは ISO 8601 形式で、既定では過去 7 日間です。1 回の呼び出しで指定できる期間は最大 30 日です。シンボルは、記録済みとしてarchive_coverageに表示されるものに限ります。記録されていないシンボル、無効な期間、読み取り値のない期間は拒否され、料金は請求されません。
ウォレットの設定については MCP.md を参照してください。
サブスクリプションプラン(Stripe、暗号資産不要)
呼び出しごとの USDC 払いではなく、月額料金を希望しますか?GET /v1/sentiment/{symbol} は x402 による支払いの代わりに X-API-Key ヘッダーを使用し、Free/Starter(月額 $15)/Pro(月額 $59)の各プランに対応します。設定については BILLING.md を参照してください。現在の料金は、起動中のインスタンスで GET /billing/pricing を実行すると確認できます。
センチメント変化アラート
自分で /sentiment をポーリングする代わりに、シンボルを監視してセンチメントが変化したときに通知(Webhook/Discord/Telegram)を受け取れます。Starter/Pro のサブスクリプションプランに含まれています。詳細は ALERTS.md を参照してください。
履歴データセットのエクスポート
現在の読み取り値だけでなく、センチメント読み取り値の履歴へのアクセスを販売します。バックグラウンドジョブがシンボルごとに 1 日 1 回スナップショットを取得し、Pro または「Data Access」プランの登録者は、これまでに収集されたデータをすべて GET /dataset/export 経由で CSV または JSON としてエクスポートできます。詳細は DATASET.md を参照してください(過去のデータは補完されません。スナップショットループを有効にした時点以降のデータのみが含まれます)。
RapidAPI にも掲載
RapidAPI Hub に掲載されています。Stripe や x402 を直接利用する代わりに、RapidAPI のマーケットプレイスから見つけて料金を支払いたい開発者向けです。データは同じものを使用し、GET /rapidapi/sentiment/{symbol} から提供されます。このエンドポイントは、RapidAPI のプロキシを経由したリクエストのみ受け付けます(共有シークレットヘッダーで検証します)。そのため、直接呼び出すことを想定していません。料金プランは Stripe の各プランと同じです:Free(月100リクエスト)、月15ドル(3,000リクエスト)、月59ドル(15,000リクエスト)。
Zapier と TradingView の連携
センチメントの変化に関するアラートを Zapier に送信するか(既存の webhook チャネルを使用するため、新しいエンドポイントは不要です)、TradingView の価格アラートにリアルタイムのセンチメント情報を加えてから、webhook/Discord/Telegram に転送できます。INTEGRATIONS.md を参照してください。
API リファレンス
| エンドポイント | 料金 | 説明 |
|---|---|---|
GET / | 無料 | サービス情報 |
GET /health | 無料 | ヘルスチェック |
GET /sentiment/{symbol} | $0.01(設定可能) | シンボルの総合センチメント。例:/sentiment/BTC |
有料リクエストのレスポンス例:
{
"symbol": "BTC",
"name": "Bitcoin",
"overall_sentiment": {
"sample_size": 42,
"average_compound": 0.21,
"label": "bullish",
"positive_pct": 55.0,
"negative_pct": 15.0,
"neutral_pct": 30.0,
"unweighted_compound_72h": 0.17,
"effective_sample_size": 31.4,
"newest_headline_age_hours": 1.6,
"window": "72h-hl24-v2"
},
"drivers": [{ "title": "...", "source": "CoinDesk", "link": "https://...", "published": "...", "score": 0.62, "weight": 0.93, "effect": 0.03 }],
"drivers_summary": "3 of the top 5 headlines are positive, 2 are negative.",
"breakdown": {
"news": { "...": "..." },
"fear_greed_index": { "value": 62, "classification": "Greed" }
},
"sources": ["coindesk.com RSS", "..."]
}
注意事項と制限
- Reddit はデータソースから削除されました。Reddit の Responsible Builder Policy では、書面による承認なしにデータを商用利用することが禁止されており、この有料 API はポリシーに違反するためです。今後ポリシーが変更された場合に備えて、
app/sources/reddit.pyは使用されていない状態でリポジトリに残しています。 - 対応するコイン:
app/coins.pyには約15種類のシンボルの基本リストがあります。必要に応じて追加してください。リストにないシンボルも利用できますが、ニュースとの照合精度がやや低くなります(シンボルそのものとの照合にフォールバックします)。 - Base/EVM 上の
exact決済スキームのみサポートしています。x402 SDK は Solana(ExactSvmServerScheme)にも対応しているため、SOL ベースの USDC も受け付けたい場合は、app/main.pyの依存関係にあるコメントアウトされたインポートを参照してください。 - 有料エンドポイント(例:過去のセンチメント、複数シンボルの一括クエリ)を追加するには、
app/main.pyのroutes辞書に項目を追加してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。