list_tokens
Retrieve a list of all tracked tokens with status, reliability, uptime, and category information for cross-chain and DeFi assets.
Instructions
List all tokens tracked by Pythia with status and reliability info.
Returns token symbols, categories, data source count, 30-day uptime, and operational status. Covers cross-chain tokens (BTC, SOL, TAO, RENDER, ONDO, etc.) and DeFi tokens.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/pythia_oracle_mcp/server.py:169-169 (registration)Registration of the list_tokens tool via the @mcp.tool() decorator on the FastMCP instance.
@mcp.tool() - src/pythia_oracle_mcp/server.py:169-195 (handler)Handler function for list_tokens: fetches live feed-status.json data, extracts tokens and stats, formats a table of token symbols, engine IDs, categories, status, 30-day uptime, and data source counts.
@mcp.tool() async def list_tokens() -> str: """List all tokens tracked by Pythia with status and reliability info. Returns token symbols, categories, data source count, 30-day uptime, and operational status. Covers cross-chain tokens (BTC, SOL, TAO, RENDER, ONDO, etc.) and DeFi tokens. """ data = await _fetch_data() tokens = data.get("tokens", []) stats = data.get("stats", {}) lines = [f"Pythia Oracle — {stats.get('tokens', len(tokens))} tokens, " f"{stats.get('total_indicators', '?')} indicator feeds\n"] lines.append(f"{'Symbol':<8} {'Engine ID':<28} {'Category':<16} {'Status':<6} " f"{'Uptime':>7} {'Src':>3}") lines.append("-" * 78) for t in sorted(tokens, key=lambda x: x.get("category", "")): status = t.get("status", "?") uptime = f"{t['uptime_30d']:.1f}%" if t.get("uptime_30d") is not None else "?" lines.append( f"{t['symbol']:<8} {t['engine_id']:<28} {t.get('category', '?'):<16} " f"{status:<6} {uptime:>7} {t.get('sources', '?'):>3}" ) lines.append(f"\nData delivered on-chain via Chainlink.") lines.append(f"Free trial: PythiaFaucet at {FAUCET_ADDRESS}") return "\n".join(lines)