MCPサーバー

Token Command Center

io.github.ysgjay/token-command-center

このMCPでできること

Provides token metrics, revenue and flow analysis, unlock calendars, health scores, alerts, comparisons, screening, and historical series for crypto assets.

tc_alerts
Recent threshold alerts (revenue deterioration, emission acceleration, unlock cliffs, flow flips).
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'token': {'type': 'string'}, 'severity': {'type': 'string'}}, 'additionalProperties': False}
tc_brief
The whole Book in about 1.5 KB: freshness and caveats, verdict and lens mix, biggest 30-day revenue movers, highest health, latest high alerts, plus a plain-text version. Use for market-wide questions.
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
tc_calendar
Upcoming dated catalysts (unlocks, emission steps, votes, launches) across the Book, soonest first, at most 20. Optional token slug and horizon in days (default 30, max 180). Text is analyst notes.
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'days': {'type': 'integer', 'maximum': 180, 'minimum': 0}, 'token': {'type': 'string', 'description': 'Token slug to filter to.'}}, 'additionalProperties': False}
tc_categories
Token counts per category.
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
tc_compare
Two to six tokens side by side: price, valuation, revenue and its 7/30-day change, holders revenue, net-flow yield, P/S, unlocks, health with six pillar scores, verdict, lens, and any frozen-price or old-scorecard flags. Accepts slugs or unambiguous symbols.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['tokens'], 'properties': {'fields': {'type': 'array', 'items': {'enum': ['alerts', 'arr', 'arr_30d', 'arr_7d', 'category', 'conflicts', 'date', 'fdv', 'flow_model', 'health', 'health_change', 'holders_rev', 'lens', 'mcap', 'name', 'net_flow', 'nf_yield', 'pct_unlocked', 'price', 'price_frozen_days', 'ps', 'scorecard_age_days', 'stale', 'symbol', 'tier', 'unlock_30d', 'verdict'], 'type': 'string'}, 'maxItems': 18}, 'tokens': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 6, 'minItems': 1}}, 'additionalProperties': False}
tc_get_report
Newest markdown scorecard for a slug (clipped). Long; prefer tc_get_token unless the user asks for the write-up.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string'}}, 'additionalProperties': False}
tc_get_token
One token's full scorecard (about 8 KB): six pillar scores, the stat grid with a provenance tag per figure, ARR change over 1D/7D/30D/1Y, 30-point history, revenue basis, analyst facts, lens, links, gaps, and this token's alerts and source conflicts. Use only when tc_get_token_digest lacks what the user asked for.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Token slug, e.g. geodnet.'}}, 'additionalProperties': False}
tc_get_token_digest
One token in about 1 KB: latest price, valuation, revenue and flows, 7- and 30-day changes, health score with its six pillar scores and verdict, supply unlocks, lens, and data-quality counts. Prefer this over tc_get_token.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Token slug, e.g. geodnet.'}}, 'additionalProperties': False}
tc_ledger
Prediction ledger tallies: open and graded call counts, next grading date, calls by side. Counts only; individual calls are not published.
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
tc_list_tokens
Page through scored tokens with optional filters. Sorts: health, mcap, revenue, net_flow, ps, unlock_30d, alerts, name.
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'sort': {'enum': ['alerts', 'health', 'mcap', 'name', 'net_flow', 'ps', 'revenue', 'unlock_30d'], 'type': 'string'}, 'tier': {'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Substring of slug, symbol or name.'}, 'offset': {'type': 'integer', 'minimum': 0}, 'verdict': {'type': 'string', 'description': 'Real, Mid or Theater.'}, 'category': {'type': 'string'}, 'descending': {'type': 'boolean'}}, 'additionalProperties': False}
tc_moves
Biggest movers: kind=movers ranks 30-day revenue change against price change (divergence); kind=momentum ranks a 14-day composite of revenue, net-flow yield and health changes. Up to 8 up and 8 down. Rows marked base_effect started from almost zero.
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'kind': {'enum': ['movers', 'momentum'], 'type': 'string'}}, 'additionalProperties': False}
tc_resolve
Turn a symbol, $cashtag, name or slug into Token Command Center slugs. Returns exact (one slug) or ambiguous=true with every candidate when tokens share a symbol (e.g. POL); never guess between them. Call before a digest when the user names a token.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1}, 'query': {'type': 'string'}}, 'additionalProperties': False}
tc_screen
Screen the whole Book (all scored tokens) and get compact ranked rows. Filters: lens (long, short, no-edge), verdict (Real, Mid, Theater), tier, category, flow_model (comma-separated for several), stale, query; numeric ranges via min/max objects, e.g. {"min": {"health": 60, "arr": 1000000}, "max": {"ps": 20}}. Fields: alerts, arr (annualized revenue, USD), arr_30d (ARR change over 30 days, %), arr_7d (ARR change over 7 days, %), category, conflicts, date, fdv, flow_model, health (0-100 health score, set when the scorecard is written), health_change, holders_rev (annualized revenue to holders, USD), lens (long, short or no-edge), mcap, name, net_flow (holders revenue minus emissions, USD/yr), nf_yield (net flow / market cap, %), pct_unlocked, price, price_frozen_days, ps (market cap / annualized revenue), scorecard_age_days, stale, symbol, tier, unlock_30d (% of supply unlocking in the next 30 days), verdict (value accrual: Real, Mid or Theater). Tokens with no value for a ranged field are excluded, never counted as zero.
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'max': {'type': 'object', 'description': 'Upper bounds by numeric field.', 'additionalProperties': {'type': 'number'}}, 'min': {'type': 'object', 'description': 'Lower bounds by numeric field.', 'additionalProperties': {'type': 'number'}}, 'lens': {'type': 'string'}, 'sort': {'enum': ['alerts', 'arr', 'arr_30d', 'arr_7d', 'category', 'conflicts', 'date', 'fdv', 'flow_model', 'health', 'health_change', 'holders_rev', 'lens', 'mcap', 'name', 'net_flow', 'nf_yield', 'pct_unlocked', 'price', 'price_frozen_days', 'ps', 'scorecard_age_days', 'stale', 'symbol', 'tier', 'unlock_30d', 'verdict'], 'type': 'string'}, 'tier': {'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'order': {'enum': ['desc', 'asc'], 'type': 'string'}, 'query': {'type': 'string', 'description': 'Substring of slug, symbol or name.'}, 'stale': {'type': 'boolean'}, 'fields': {'type': 'array', 'items': {'enum': ['alerts', 'arr', 'arr_30d', 'arr_7d', 'category', 'conflicts', 'date', 'fdv', 'flow_model', 'health', 'health_change', 'holders_rev', 'lens', 'mcap', 'name', 'net_flow', 'nf_yield', 'pct_unlocked', 'price', 'price_frozen_days', 'ps', 'scorecard_age_days', 'stale', 'symbol', 'tier', 'unlock_30d', 'verdict'], 'type': 'string'}, 'maxItems': 12}, 'verdict': {'type': 'string'}, 'category': {'type': 'string'}, 'flow_model': {'type': 'string'}}, 'additionalProperties': False}
tc_search_tokens
Find slugs by symbol or name before calling tc_get_token_digest.
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string'}}, 'additionalProperties': False}
tc_series
One token's history as chartable series from TCC's daily snapshots (since 2026-06-09). Each metric returns `summary` {first, last, change_pct, min, max} first — answer trend questions from it — then at most 60 points (weekly by default). Frozen price feeds are null, not flat. Metrics: price, mcap, fdv, ann_fees, ann_revenue, ann_holders_rev, net_flow_usd, ps_ratio, health_score, ann_emissions_usd, circ_supply, total_supply, pct_unlocked, daily_fees, daily_revenue, daily_holders_rev, price_llama (daily_* and price_llama are DefiLlama, years deep; the rest are TCC snapshots).
読み取り専用
入力スキーマ
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Token slug, e.g. geodnet. Use tc_resolve first for a symbol.'}, 'range': {'enum': ['30d', '90d', '1y', 'all'], 'type': 'string'}, 'metrics': {'type': 'array', 'items': {'enum': ['ann_emissions_usd', 'ann_fees', 'ann_holders_rev', 'ann_revenue', 'circ_supply', 'daily_fees', 'daily_holders_rev', 'daily_revenue', 'fdv', 'health_score', 'mcap', 'net_flow_usd', 'pct_unlocked', 'price', 'price_llama', 'ps_ratio', 'total_supply'], 'type': 'string'}, 'maxItems': 6}, 'interval': {'enum': ['1d', '1w', '1m'], 'type': 'string'}}, 'additionalProperties': False}
tc_status
Freshness, size and source-agreement stats of the token universe. Call first; quote generated_at.
読み取り専用
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
追加
tc_ledger
2026年10月5日2:40
追加
tc_moves
2026年10月5日2:40
追加
tc_calendar
2026年10月5日2:40
追加
tc_series
2026年10月5日2:40
追加
tc_get_report
2026年10月5日2:40
追加
tc_brief
2026年10月5日2:40
追加
tc_compare
2026年10月5日2:40
追加
tc_screen
2026年10月5日2:40
追加
tc_resolve
2026年10月5日2:40
追加
tc_categories
2026年10月5日2:40
追加
tc_alerts
2026年10月5日2:40
追加
tc_search_tokens
2026年10月5日2:40
追加
tc_get_token_digest
2026年10月5日2:40
追加
tc_get_token
2026年10月5日2:40
追加
tc_list_tokens
2026年10月5日2:40
追加
tc_status
2026年10月5日2:40