mcpField
C
coingecko-api

coingecko-api

github.com/agiprolabsデータ・データベース456445 回インストール8 週間前に更新
リポジトリ

coingecko-api について

coingecko-apiは、CoinGeckoの暗号資産市場データを取得するスキルで、マクロ分析、トークン調査、過去データ分析を対象とします。価格、チャート、取引所データ、トレンド、カテゴリ統計を扱い、無料枠の制限も説明します。

主な機能

  1. 01現在価格と時価総額ランキング
  2. 02過去価格とOHLCデータ
  3. 03世界市場の統計
  4. 04トレンドトークンの取得
  5. 05取引所・カテゴリ分析
  6. 06ID対応表とレート制限の案内

活用シーン

  1. 01取引所の出来高と信頼スコアの比較
  2. 02BTCドミナンスと市場規模の分析
  3. 03トークンの過去リターンと変動性の調査
  4. 04CoinGeckoの直近トレンドトークンの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/agiprolabs/claude-trading-skills --skill coingecko-api

インストール後、Claude Code で/coingecko-apiを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
data_quality.md
endpoints.md
id_mapping.md
scripts/
fetch_market_data.py
historical_analysis.py

詳細

CoinGecko API スキル

CoinGecko API を使用して、価格、過去のチャート、取引所の取引高、トレンドのトークン、グローバル統計、カテゴリ別内訳など、包括的な暗号資産市場データを取得します。 無料プランでは API キーは不要で、1 分あたり 30 回の呼び出しが可能です。

このスキルを使用する場面

  • マクロ分析:グローバル時価総額、BTC ドミナンス、総取引高の推移
  • 過去データ:数年前までさかのぼる日次/時間ごとの OHLCV データ(分単位ではありません)
  • 取引所間の比較:取引所の取引高ランキングと信頼度スコア
  • トレンド/発見:過去 24 時間に CoinGecko でトレンドになっているトークン
  • カテゴリ分析:DeFi、L1、ミームコインの時価総額を比較
  • トークン調査:リンク、説明、コミュニティ統計など、すべてのメタデータ

リアルタイムの Solana DEX データ、新しいトークンのローンチ、または Solana トークンの日次未満の粒度のデータには、代わりに Birdeye または DexScreener を使用してください。

クイックスタート

現在の価格を取得
import httpx

# No API key needed for free tier
resp = httpx.get(
    "https://api.coingecko.com/api/v3/simple/price",
    params={"ids": "solana,bitcoin,ethereum", "vs_currencies": "usd",
            "include_24hr_change": "true"},
)
data = resp.json()
for coin, info in data.items():
    print(f"{coin}: ${info['usd']:.2f} ({info['usd_24h_change']:+.1f}%)")
時価総額上位のコインを取得
import httpx

resp = httpx.get(
    "https://api.coingecko.com/api/v3/coins/markets",
    params={"vs_currency": "usd", "order": "market_cap_desc",
            "per_page": 10, "page": 1, "sparkline": "false"},
)
for coin in resp.json():
    print(f"{coin['symbol'].upper():>6}  ${coin['current_price']:>10,.2f}  "
          f"MCap: ${coin['market_cap']/1e9:.1f}B  "
          f"24h: {coin['price_change_percentage_24h']:+.1f}%")
過去の価格データを取得
import httpx
import pandas as pd

resp = httpx.get(
    "https://api.coingecko.com/api/v3/coins/solana/market_chart",
    params={"vs_currency": "usd", "days": "90", "interval": "daily"},
)
data = resp.json()
df = pd.DataFrame(data["prices"], columns=["timestamp", "price"])
df["date"] = pd.to_datetime(df["timestamp"], unit="ms")
df = df.set_index("date").drop(columns=["timestamp"])
print(df.describe())
OHLC ローソク足データを取得
import httpx

resp = httpx.get(
    "https://api.coingecko.com/api/v3/coins/solana/ohlc",
    params={"vs_currency": "usd", "days": "30"},
)
# Returns [[timestamp, open, high, low, close], ...]
candles = resp.json()
for c in candles[-5:]:
    print(f"  O={c[1]:.2f}  H={c[2]:.2f}  L={c[3]:.2f}  C={c[4]:.2f}")
グローバル市場統計
import httpx

resp = httpx.get("https://api.coingecko.com/api/v3/global")
g = resp.json()["data"]
print(f"Total Market Cap:  ${g['total_market_cap']['usd']/1e12:.2f}T")
print(f"24h Volume:        ${g['total_volume']['usd']/1e9:.0f}B")
print(f"BTC Dominance:     {g['market_cap_percentage']['btc']:.1f}%")
print(f"Active Coins:      {g['active_cryptocurrencies']:,}")
トレンドのコイン
import httpx

resp = httpx.get("https://api.coingecko.com/api/v3/search/trending")
for item in resp.json()["coins"]:
    coin = item["item"]
    print(f"#{coin['market_cap_rank'] or '?':>4}  {coin['name']} ({coin['symbol']})")

認証

無料プランでは API キーは不要です(1 分あたり 30 回の呼び出し)。より高い上限を利用するには、https://www.coingecko.com/en/api/pricing から Pro キーを取得して、次のように設定します。

export COINGECKO_API_KEY="CG-xxxxxxxxxxxxxxxxxxxx"

Pro リクエストでは、異なるベース URL とヘッダーを使用します。

import os, httpx

API_KEY = os.getenv("COINGECKO_API_KEY", "")
if API_KEY:
    BASE_URL = "https://pro-api.coingecko.com/api/v3"
    HEADERS = {"x-cg-pro-api-key": API_KEY}
else:
    BASE_URL = "https://api.coingecko.com/api/v3"
    HEADERS = {}

レート制限

無料プラン:1 分あたり 30 リクエストです。429 レスポンスが返された場合は、バックオフを実装してください。

import time, httpx

def cg_get(url: str, params: dict, max_retries: int = 3) -> dict:
    """GET with retry on rate limit."""
    for attempt in range(max_retries):
        resp = httpx.get(url, params=params, headers=HEADERS, timeout=15.0)
        if resp.status_code == 429:
            wait = 2 ** attempt * 10
            print(f"Rate limited, waiting {wait}s...")
            time.sleep(wait)
            continue
        resp.raise_for_status()
        return resp.json()
    raise RuntimeError("Max retries exceeded")

CoinGecko トークン ID の検索

CoinGecko ではスラッグ形式の ID(例:solana、bitcoin、usd-coin)を使用します。コントラクトアドレスまたは名前から ID を調べる方法については、references/id_mapping.md を参照してください。

コントラクトアドレスからすばやく検索する方法(Solana トークンに便利です):

import httpx

# Look up by Solana contract address
contract = "So11111111111111111111111111111111111111112"
resp = httpx.get(
    "https://api.coingecko.com/api/v3/coins/solana/contract/"
    + contract
)
coin = resp.json()
print(f"ID: {coin['id']}, Name: {coin['name']}")

主な制限事項

  • リアルタイムデータではありません:無料プランでは価格が 1~2 分ごとに更新されます
  • Solana の対応範囲が限られています:新しい Solana トークンの多くは掲載されていません
  • OHLC の粒度:対象期間は 1/7/14/30/90/180/365 日のみで、ローソク足のサイズは期間によって異なります(references/endpoints.md を参照)
  • 過去データの欠落:一部のトークンでは初期期間のデータが欠落しています
  • 無料プランのスロットリング:1 分あたり 30 リクエストのため、バッチ処理では慎重なペース配分が必要です

データの欠落やプランごとの差異に関する詳しい注意事項は、references/data_quality.md を参照してください。

ファイル

参考資料
  • references/endpoints.md — パラメーター、レスポンススキーマ、レート制限を含むエンドポイントの完全なリファレンス
  • references/id_mapping.md — CoinGecko のトークン ID の調べ方、コントラクトアドレスのマッピング、検索のヒント
  • references/data_quality.md — データ品質に関する注意事項、過去データの欠落、無料プランと Pro プランの違い
スクリプト
  • scripts/fetch_market_data.py — 上位コイン、トレンドのトークン、グローバル統計を取得します(--demo モードに対応)
  • scripts/historical_analysis.py — 過去の OHLCV データを取得し、リターン、ボラティリティ、ドローダウンを計算します(--demo モードに対応)

コメント