Skip to main content
Glama
pythia-the-oracle

pythia-oracle-mcp

Official

Pythia Oracle MCPサーバー

PyPI License: MIT pythia-oracle-mcp MCP server

すべてのスマートコントラクトは、単なるデータではなくインテリジェンスを享受すべきです。

Pythiaは、計算されたテクニカル指標(EMA、RSI、VWAP、ボリンジャーバンド、ボラティリティなど)を、Chainlinkがサポートするあらゆるチェーン上のあらゆるトークンに対してオンチェーンで提供する初のオラクルです。トレーダーが使用するのと同じ指標を、Chainlinkを介した単一の呼び出しでスマートコントラクトやAIエージェントが利用できます。

Pythia Eventsを使用すると、スマートコントラクトは指標の条件(RSIが30を下回る、EMAのクロスオーバー、ボリンジャーバンドのブレイクアウトなど)をサブスクライブし、条件がトリガーされた際に自動的に呼び出しを受けることができます。キーパーやオフチェーンボット、ポーリングは不要で、コントラクトが市場に自律的に反応します。

Pythia Visionsは、ウォークフォワード検証済みの市場インテリジェンス(パターンタイプ、信頼スコア、指標のスナップショット、確認のために監視すべきフィードなど)を、すべて1つのイベントでオンチェーンに提供します。9年間の履歴データでバックテスト済みです。サブスクリプションは無料です。精度統計と発生頻度を含む現在のライブトークンおよびパターンカタログについては、以下のMCPツールから get_visions_info を呼び出してください。

なぜPythiaなのか?

ほとんどのオラクルは価格のみを提供しますが、Pythiaは計算された分析を提供します。BTC、SOL、TAO、RENDER、ONDO、AAVE、UNIなどのトークンに対し、4つのタイムフレームでEMA、RSI、ボリンジャーバンド、VWAP、ボラティリティをChainlink経由でオンチェーン配信します。新しいトークンや指標はオンデマンドで追加されます。AIエージェント、DeFiプロトコル、またはトレーディングボットがオンチェーンのRSI、EMA、ボリンジャーバンドを必要とする場合、Pythiaが唯一のソースとなります。

ユースケース:

  • オンチェーンのテクニカルシグナルを必要とするAIトレーディングエージェント

  • RSIやボラティリティのしきい値に基づくDeFiボルトのリバランス

  • ボリンジャーバンドの幅を使用したスマートコントラクトのリスク管理

  • リアルタイムで計算された指標を用いたAI駆動のポートフォリオ分析

  • イベント駆動型戦略 — RSIのしきい値やEMAのクロスオーバーをサブスクライブし、コントラクトを自動的にトリガー

  • キーパー不要の自動化されたDeFiボット — Gelatoやcronジョブ、オフチェーンインフラは不要

Related MCP server: Crypto Indicators MCP Server

クイックスタート

pip install pythia-oracle-mcp

Claude Desktop

claude_desktop_config.json に追加します:

{
  "mcpServers": {
    "pythia-oracle": {
      "command": "pythia-oracle-mcp"
    }
  }
}

Claude Code

claude mcp add pythia-oracle -- pythia-oracle-mcp

Cursor / Windsurf / VS Code

MCP設定に追加します:

{
  "pythia-oracle": {
    "command": "pythia-oracle-mcp"
  }
}

OpenAI Agents / GPT

MCP互換クライアントであればどれでも動作します。pythia-oracle-mcp を指定するだけです。

直接実行

python -m pythia_oracle_mcp

利用可能なツール

ツール

説明

list_tokens

ステータス、稼働時間、データソースを含むすべての追跡トークン

get_token_feeds

特定のトークンのすべての指標フィード名

get_market_summary

システム全体の概要 — ステータス別のトークン、エコシステムのカバー範囲、インフラの健全性

check_oracle_health

トークンごとの30日間の稼働時間(ワースト順)、データソースのステータス、インシデントレポート

get_contracts

すべてのコントラクトアドレス(オペレーター、コンシューマー、ファセット、LINK)

get_pricing

料金プランとそれぞれの使用タイミング

get_integration_guide

あらゆるプランに対応したデプロイ可能なSolidityコード

get_events_info

Pythia Eventsの仕組み — 指標条件のサブスクライブとオンチェーンでのトリガー方法

get_events_guide

イベントサブスクリプションのためのSolidityコードとデプロイ手順

subscribe_info

サブスクリプションの詳細 — 条件、料金、返金メカニズム

get_visions_info

Pythia Visionsの概要 — ウォークフォワード検証済みパターン、発生頻度の開示、コントラクトアドレス

get_visions_guide

Visionsをサブスクライブし、VisionFiredイベントをリッスンするためのSolidityコード

get_vision_history

パターンの内訳と信頼統計を含む、トークンに対して発生した最近のVisions

get_vision_payload

発生したVisionの完全なエンリッチオブジェクト — 失敗プロファイル、クールダウンコンテキスト、同時発生

lookup_event_feed

イベントのfeedId (bytes32) から人間が読めるフィード名への逆引き

list_subscriptions

所有者アドレスに対するアクティブなPythia Eventサブスクリプションの列挙

get_feed_value

あらゆるPythia指標フィードの最新の計算値(オフチェーンキャッシュ)

プロンプト例

AIエージェントに尋ねてみてください:

"Pythiaはビットコインに対してどのような指標を持っていますか?"

get_token_feeds("bitcoin") を呼び出し、ビットコインのすべての指標フィードをタイプ別に返します。

"Pythiaは統合するのに十分信頼できますか?"

check_oracle_health() を呼び出し、トークンごとの稼働時間、データソースの健全性、アクティブなインシデントを返します。

"Pythiaのスピードバンドルを消費するためのSolidityコントラクトを教えて"

get_integration_guide("speed") を呼び出し、正しいアドレスとジョブIDを含む、デプロイ可能な完全なコントラクトを返します。

"Pythiaはどのトークンをカバーしており、それらはすべて正常に動作していますか?"

get_market_summary() を呼び出し、エコシステムのカバー範囲、ステータスの内訳、インフラの健全性を返します。

"Pythia Eventsはどのように機能しますか?BTCのRSIが30を下回ったときにコントラクトを反応させたいです。"

get_events_info() を呼び出し、サブスクリプションの仕組み、サポートされている条件、料金を返します。

"EMAクロスオーバーイベントをサブスクライブするためのSolidityコードを教えて"

get_events_guide() を呼び出し、サブスクライブ/受信パターンを備えたデプロイ可能なEventSubscriberコントラクトを返します。

"Pythia Visionsとは何ですか?どのようなパターンを検出しますか?"

get_visions_info() を呼び出し、精度範囲、発生頻度、コントラクトアドレス、仕組みを含むウォークフォワード検証済みパターンを返します。

"最近発生したBTCのVisionsを表示して"

get_vision_history("BTC") を呼び出し、信頼度と価格を含む最近のパターン検出結果を返します。

"Pythia VisionsをサブスクライブするためのSolidityコードを教えて"

get_visions_guide() を呼び出し、VisionFiredイベントをサブスクライブするコントラクトを返します。

Pythiaが提供するもの

  • あらゆるトークン、あらゆるChainlinkサポートチェーン — 現在、BTC、SOL、TAO、RENDER、ONDO、AAVE、UNI、MORPHOなどを提供しており、新しいトークンもオンデマンドで追加されます。

  • 6つの指標タイプ: EMA、RSI、ボリンジャーバンド(上限/下限)、VWAP、ボラティリティ、USD価格

  • 4つのタイムフレーム: 5分、1時間、1日、1週間

  • 4つの料金プラン: Discovery / Analysis / Speed / Complete — 現在のLINK料金については get_pricing を呼び出してください。

  • 無料トライアル: PythiaFaucetコントラクト — LINKは不要です。

  • Pythia Events: 指標条件(しきい値の上下)をサブスクライブ — 条件がトリガーされるとコントラクトが呼び出されます。LINKで前払いされ、キャンセルまたはトリガー時に未使用分は返金されます。キーパーインフラは不要です。

  • Pythia Visions: ウォークフォワード検証済みの市場インテリジェンスをオンチェーンで提供 — パターンタイプ + 信頼度 + 指標スナップショット + 監視すべきフィードをChainlink経由で配信。サブスクリプションは無料です。パターンのライブリストとトークンについては get_visions_info を呼び出してください。

データの鮮度

このMCPサーバーは、データエンジンによって15分ごとに更新されるライブステータスフィード https://pythia.c3x-solutions.com/feed-status.json のシンクライアントです。新しいトークン、新しいパターン、コントラクトアドレス、料金の変更は、次のデータエンジンサイクルから数秒以内にMCPツールに反映されます(パッケージの更新は不要です)。

ライブフィードに到達できない場合、MCPツールは古いデータを返すのではなく、明確なエラーを発生させます。しばらくしてから再試行するか、ステータスを確認してください。(v0.9.0以降、フェイルラウド方式を採用しています。以前のバージョンにあった、本番環境の状態から乖離する可能性のある組み込みのフォールバックは削除されました。)

統合例

Hardhatセットアップを備えたSolidityコントラクトについては、pythia-oracle-examples を参照してください。Chainlinkがサポートするあらゆるネットワークにデプロイ可能です。

リンク

ライセンス

MIT

Available Tools

18 tools
check_oracle_healthA

Check the reliability and uptime of Pythia's oracle system.

Returns per-token 30-day uptime (sorted worst-first so problems surface immediately), recent daily status history, data source health, and infrastructure status. Use this to verify Pythia's reliability before integrating or relying on its data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility. It discloses key behavioral traits: returns per-token 30-day uptime sorted worst-first, daily history, data source health, and infrastructure status. No contradictions present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste: first sentence states core purpose, second lists what is returned. Front-loaded and efficient, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, presence of output schema, and the tool's simple nature, the description provides all necessary context: what it checks, what data it returns, and when to use it. Complete and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so description does not need to explain them. It adds value by detailing the output components, effectively compensating for the lack of parameters. Baseline is 4 due to high schema coverage (100%).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks the reliability and uptime of Pythia's oracle system, using specific verbs and a distinct resource. It differentiates from sibling tools which focus on contracts, events, feeds, etc., leaving no ambiguity about its role as a health check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using this tool to verify reliability before integrating or relying on data. While it does not give when-not-to-use or alternative tools, the context is clear and sufficient for the agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contractsA

Get Pythia contract addresses for on-chain integration. Shows all supported chains.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It explains what the tool does but does not disclose potential behavioral traits such as network calls, caching, rate limits, or authorization requirements. The existence of an output schema mitigates some concern about return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, directly conveys the function and scope. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and an output schema, the description is sufficient. It could slightly expand on what the output contains (e.g., addresses per chain), but the output schema likely covers that. The sibling tools list provides context about available alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and the schema coverage is 100%. The description does not need to add parameter information beyond what the schema already provides. The baseline for zero parameters is 4, and the description meets it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves Pythia contract addresses for on-chain integration and lists all supported chains. It specifies a concrete verb-resource pair and distinguishes from sibling tools like get_feed_value or check_oracle_health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining contract addresses during integration, but does not explicitly state when to use this tool over alternatives or when not to use it. The context is clear enough given the simplicity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_events_guideA

Get Solidity code to subscribe to Pythia Events (indicator alerts).

Returns a complete contract that approves LINK, subscribes to an indicator alert, listens for PythiaEvent, and can cancel for a refund.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It transparently discloses the tool returns a contract that approves LINK, subscribes, listens for events, and can cancel. It implies read-only behavior (returning code) but could explicitly note no side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no wasted words. First sentence states primary purpose, second elaborates on contract contents. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and presence of an output schema (not shown), description adequately explains the returned contract's capabilities. Missing details on how to use the code, but sufficient for a code generation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so baseline of 4 applies. Description adds value by detailing the contract's functionality, compensating for absence of param info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get Solidity code to subscribe to Pythia Events', specifying a verb and resource. It distinguishes from siblings like get_events_info (info about events) and get_integration_guide (general guide) by focusing on code generation for subscriptions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides clear context of use (when you need a subscription contract), but lacks explicit exclusions or alternatives to other guide tools. It implies usage but could be more directive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_events_infoA

Get overview of Pythia Events — on-chain indicator alert subscriptions.

Returns pricing, supported conditions, subscriber flow, registry addresses per chain, and current subscription stats. Events let you subscribe once and get notified when an indicator crosses a threshold.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description partially discloses behavior by listing returned data, but does not mention side effects, read-only nature, or potential limitations, leaving some behavioral traits unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences plus a clarifying line—with the purpose front-loaded. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, parameterless tool with an output schema, the description covers the tool's purpose, return categories, and conceptual context (event subscriptions). It is complete enough for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so baseline is 4. The description adds value by clarifying the tool's purpose and output, which is sufficient given no parameters to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns an overview of Pythia Events, specifying return contents (pricing, conditions, etc.) and distinguishing it from siblings like get_events_guide by focusing on high-level summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description implies it's for overview, but lacks when-not or alternative suggestions, leaving the agent to infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_feed_valueA

Get the latest computed value of a Pythia indicator feed.

Reads from the live cache (feed_values table) populated by the indicator pipeline on every cycle. Off-chain AI agents use this when reasoning about a Vision context, choosing an Event threshold, or sanity-checking a feed's current level. On-chain consumers should request the value through oracle.request() to get a Chainlink-attested response — see get_integration_guide().

Args: feed_name: full feed name (e.g. 'bitcoin_RSI_1H_14', 'pol_EMA_5M_20').

Returns: Latest value + computed_at + chain, one block per chain if a feed exists on multiple chains. If the feed has no cached value, returns a diagnostic pointer (warm-up window, deactivated, or unknown name).

ParametersJSON Schema
NameRequiredDescriptionDefault
feed_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses reading from live cache updated every cycle, describes return structure (value, computed_at, chain, multi-chain behavior), and explains diagnostic pointers for missing values. This fully informs the agent of behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet comprehensive, using clear sections and bullet points. Every sentence adds value without verbosity. Front-loaded with purpose and immediately useful examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema (indicated by context signals), the description covers purpose, usage, parameter format, and return behavior completely. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by providing explicit examples ('bitcoin_RSI_1H_14', 'pol_EMA_5M_20') and clarifying the 'full feed name' format. This adds significant meaning beyond the schema's simple type and title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the latest computed value of a Pythia indicator feed' with a specific verb and resource. It distinguishes from sibling tools like get_market_summary and get_vision_payload by targeting feed values specifically, and contrasts with on-chain usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when off-chain AI agents should use this tool (reasoning about Vision context, choosing Event thresholds, sanity-checking) and provides a clear alternative for on-chain consumers (oracle.request() via get_integration_guide). This is excellent guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_indicator_historyA

Read Pythia's public, immutable indicator history for a feed over a date range — and optionally settle a condition against it.

Backed by the free day-file archive at https://pythia.c3x-solutions.com/history/{chain}/{feed_name}/{YYYY-MM-DD}.json (one file per feed per closed UTC day, 5-minute points, never rewritten once published). Use it to audit or re-derive "was RSI below 30 at any point last week?", to reconstruct what a Vision or Event saw, to backtest a threshold before subscribing to an Event, or to settle a prediction-market style question from public inputs anyone can re-fetch and verify.

Args: feed_name: full feed name, same key as Feeds/Events (e.g. 'bitcoin_RSI_1D_14'). start_date: first UTC day, YYYY-MM-DD (inclusive). end_date: last UTC day, YYYY-MM-DD (inclusive). Defaults to start_date. At most 31 days per call — split longer ranges. chain: delivery chain the feed is archived for (e.g. 'polygon'). Only needed when the manifest lists the feed on more than one chain. condition: optional 'ABOVE' or 'BELOW' — with threshold, evaluates whether ANY point in the range satisfies it. threshold: numeric threshold for condition, in the feed's own units.

Returns: Per-day coverage (points, min, max, first, last), the range summary, the day-file URLs used (so a verifier can re-fetch the exact inputs), and — when condition+threshold are given — a verdict: TRUE (first matching timestamp + value), FALSE (full coverage, no match), or INSUFFICIENT_DATA (missing day-files or gaps large enough that FALSE cannot be asserted). Never interpolates across gaps.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNo
end_dateNo
conditionNo
feed_nameYes
thresholdNo
start_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden and meets it thoroughly. It discloses immutability, public accessibility, the exact day-file archive format, the 5-minute point granularity, the never-rewritten guarantee, and the three-way verdict behavior (TRUE/FALSE/INSUFFICIENT_DATA). It also explicitly states that it never interpolates across gaps, which is essential for an agent choosing this for verification or settlement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but every section earns its place: a front-loaded purpose summary, then organized Args and Returns blocks with clear formatting. The longest content is behavioral and parameter semantics, which are necessary because schema coverage is zero. There is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter tool with no annotations and no schema-level descriptions, this description is complete. It covers purpose, inputs, constraints, return values, edge cases, and verification support. An agent can invoke it correctly and interpret its results without needing further undocumented context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully compensate, and it does. Each parameter is clarified beyond the schema: feed_name format and example, inclusive date semantics, the 31-day limit, the conditional need for chain, the exact allowed condition values, and threshold units. The description adds meaning the schema's bare titles do not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Read Pythia's public, immutable indicator history for a feed over a date range') and immediately distinguishes its scope from live/current tools by emphasizing historical, closed-day, immutable data. The opening sentence alone makes it clear why an agent would select this over siblings like get_feed_value or get_vision_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit use cases: auditing, re-deriving conditions, reconstructing what a Vision/Event saw, backtesting before subscribing, and settling prediction-style questions. It also provides concrete operational guidance such as splitting ranges longer than 31 days and only supplying chain when the feed exists on multiple chains. It does not explicitly name an alternative tool for live data, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_integration_guideA

Get Solidity code to integrate Pythia into a smart contract.

Args: tier: 'discovery' (single value), 'analysis', 'speed', or 'complete'. chain: Optional chain key (e.g. 'mainnet', 'amoy', 'arbitrum'). When unset, the embedded Solidity uses the first available chain's addresses (Polygon mainnet by convention) and the prose lists every chain where this tier's consumer is deployed.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNodiscovery
chainNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It does well by explaining the default chain behavior, that the embedded Solidity uses the first available chain's addresses, and that the prose lists every deployed chain. It does not discuss error cases or authentication, but the key behavioral nuance is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the core purpose, and then uses a brief Args section to clarify parameters. Every sentence contributes useful information without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two optional parameters and an output schema, the description fully covers the needed invocation context: what the tool returns, valid tier values, chain behavior, and defaults. Nothing critical is missing for an agent to select and call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It lists the valid tier values and explains the chain parameter's optionality and default behavior with concrete examples. This gives agents enough semantic meaning to invoke the tool correctly, though a complete chain enum list would be even stronger.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Get Solidity code to integrate Pythia into a smart contract.' This clearly differentiates it from sibling guides like get_events_guide or get_visions_guide, which presumably cover different integration topics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to choose tier and chain values, and what happens when chain is unset. However, it does not explicitly state when to prefer this tool over sibling guides, nor does it mention any alternatives or exclusions. Usage context is implied rather than directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_market_summaryA

Get a summary of all tokens tracked by Pythia with operational overview.

Returns system-wide stats, tokens grouped by status, uptime distribution, data source health, and infrastructure status. Useful for quickly understanding what Pythia covers and whether the system is healthy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It describes the return data categories but does not disclose behavioral traits such as authentication requirements, rate limits, or side effects. The read-only nature is implied but not stated explicitly, and the description lacks details on data freshness or system impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences long, front-loads the main purpose, and provides essential details without extraneous information. Every sentence adds value, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of parameters and presence of an output schema, the description is fairly complete. It explains the tool's purpose and output categories. However, it does not mention any prerequisites, such as authentication or data latency, which would enhance completeness for a system health overview tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100%. According to guidelines, 0 parameters yields a baseline of 4. The description adds no parameter information, but none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a summary of all tokens with an operational overview. It lists specific outputs (system-wide stats, tokens grouped by status, etc.), which makes the purpose clear. However, it does not explicitly differentiate from sibling tools like get_token_feeds or check_oracle_health, which could provide overlapping information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the tool is 'useful for quickly understanding what Pythia covers and whether the system is healthy,' which implies when to use it. However, it does not provide explicit guidance on when not to use it or mention alternatives among the 16 sibling tools, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pricingA

Get Pythia pricing tiers and free trial info. Prices are live from the data feed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only mentions that prices are live, lacking details on rate limits, authentication, or other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with front-loaded key information, though slightly terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an output schema, the description adequately covers the tool's purpose; could mention return structure but output schema fills that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is complete; the description adds no param info but is not required since there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'Pythia pricing tiers and free trial info', and distinguishes from siblings which focus on oracles, contracts, or events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance; usage is implied for fetching pricing data, but no alternatives are discussed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_token_feedsA

Get all available indicator feeds for a specific token.

Shows every feed name (EMA, RSI, Bollinger, Volatility across all timeframes), the token's reliability stats, and data source count. Feed names are what you pass to the on-chain oracle to request data.

Args: engine_id: Token engine ID (e.g., 'bitcoin', 'solana', 'bittensor', 'aave', 'pol'). Use list_tokens() to see all available IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
engine_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It discloses that the tool returns feed names, reliability stats, and data source count, but does not mention any side effects, permissions, or rate limits. The read-only nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear structure: purpose sentence, list of output contents, and parameter explanation. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has only one parameter and an output schema (not shown), the description adequately covers what the tool returns and how to use it. It also connects the output to subsequent steps (passing feed names to oracle).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter engine_id is explained with examples ('bitcoin', 'solana', etc.) and a reference to list_tokens() for valid values. This adds significant value over the schema, which has 0% description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get all available indicator feeds for a specific token', providing a specific verb and resource. It distinguishes from siblings by focusing on listing available feeds rather than fetching values or managing subscriptions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains that feed names are used for oracle requests and instructs to use list_tokens() for engine IDs. However, it does not explicitly specify when to use this tool over alternatives like get_feed_value.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vision_historyA

Get recent Pythia Visions fired for a token with pattern breakdown and stats.

Args: token: Token symbol to check (default: BTC). Case-insensitive. Currently live: BTC, ETH.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNoBTC

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions 'recent' and 'pattern breakdown and stats' but does not explain what constitutes 'recent', pagination, or whether the operation is read-only. No disclosure on auth or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and front-loaded, with no filler. However, it could be better structured (e.g., separate sections for purpose and args). Still, it's efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, description needn't detail return format, but it misses context on time range for 'recent' and what 'pattern breakdown' entails. Parameter docs are good, but overall completeness is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaning: token default is explained, case-insensitivity noted, and currently supported values listed (BTC, ETH). This goes beyond the schema's minimal info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves recent Pythia Visions for a token, with specifics on pattern breakdown and stats. It distinguishes itself from siblings like get_visions_info or get_vision_payload by focusing on history and breakdown.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for checking recent visions by token but lacks explicit guidance on when to use this vs alternatives like get_visions_info or get_vision_payload. No when-not-to-use or prerequisite context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_vision_payloadA

Get the full enriched object for a fired Pythia Vision by id.

Returns the rich AI-facing companion to the on-chain VisionFired event: pattern metadata with numeric ranges, failure profile (avg return when correct, avg drawdown when wrong, worst drawdown), cooldown context (hours since last same-pattern fire on this token, confidence delta vs last fire), and concurrent fires from other tokens within the last 24h.

Lightweight on-chain consumers can decode the VisionFired payload bytes directly. AI agents reasoning about a specific Vision should use this tool — it contains the data needed to size positions and compare against historical failure modes, which the on-chain event payload does not.

Args: vision_id: integer id of the Vision (returned by get_vision_history)

Returns: Multi-section text report. If vision_id is not in the recent window (last 20 fires per token), returns a helpful pointer to history.

ParametersJSON Schema
NameRequiredDescriptionDefault
vision_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that the tool returns a multi-section text report and how it handles missing vision_ids. While it doesn't mention side effects, authentication, or rate limits, the description is sufficiently transparent for a read-only data retrieval tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with separate sections for what the tool returns, comparison to alternatives, args, and return behavior. It is concise yet comprehensive, with no wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has an output schema (context indicates it exists), the description does not need to fully detail return values. It summarizes the output effectively and explains fallback behavior. The description fully covers the necessary context for a single-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter vision_id has 0% schema description coverage. The description adds meaning by stating it is an integer id returned by get_vision_history, which provides extraction source. This compensates for the lack of schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool gets the full enriched object for a fired Pythia Vision by id. It details the contents (pattern metadata, failure profile, etc.) and clearly distinguishes between lightweight on-chain consumers and AI agents, the latter being the intended audience. This provides a specific verb-resource combination with differentiation from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'AI agents reasoning about a specific Vision should use this tool' and contrasts it with on-chain decoding. It also notes that if vision_id is not in the recent window, the tool returns a helpful pointer to history. This tells the agent when to use this tool and what to expect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_visions_guideA

Get Solidity code to subscribe to Pythia Visions and listen for VisionFired events.

Returns a complete contract that subscribes to the PythiaVisionRegistry, receives VisionFired events with pattern type, confidence, direction, price, and full analysis payload. Subscription is FREE (no LINK required).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It reveals that the tool returns a complete contract, details events, and importantly states subscription is free (no LINK required). This adds behavioral context beyond just 'get code'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences that are front-loaded: first sentence states the core action, second details the return value and a key benefit (free). No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no annotations, the description covers the tool's purpose and output. However, it omits information on how to use the returned code or any prerequisites, which would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description's job is to explain what the tool does. It clearly explains the output (Solidity code) and its purpose, which adds meaning beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns Solidity code to subscribe to Pythia Visions and listen for VisionFired events. It distinguishes from siblings like get_vision_history (history data) and get_events_guide (different guide) by specifying this is for code generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing subscription code, but does not explicitly state when to use this tool versus alternatives (e.g., get_events_guide for other event types). No when-not-to-use or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_visions_infoA

Get overview of Pythia Visions — walk-forward validated market intelligence on-chain.

Returns the walk-forward validated patterns with accuracy stats, the Vision Registry contract address, subscription info (FREE), evaluation frequency, and supported tokens. Visions are pattern detections that passed walk-forward validation across multiple years of history. Live token + pattern set is returned in the response (canonical source: feed-status.json visions section).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It details what the tool returns and mentions the canonical source (feed-status.json). While read-only behavior is implied, it does not explicitly state no side effects or disclose potential limitations, but the coverage is thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, coherent paragraph that provides comprehensive information without excessive verbosity. It could benefit from bullet points for structure, but the content earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, high schema coverage, and the presence of an output schema, the description fully covers what the tool returns and its source. It is complete and leaves no obvious gaps for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the baseline is 4. The description need not add parameter info, and it correctly omits any.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns an overview of Pythia Visions, listing specific components like patterns, contract address, subscription info, and supported tokens. It distinguishes itself from sibling tools by focusing on the walk-forward validated patterns and the comprehensive nature of the returned data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining an overview of visions but does not explicitly state when to use it over alternatives or provide exclusions. With many sibling tools, more guidance would be beneficial, but the purpose is clear enough for basic selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_subscriptionsA

Enumerate active Pythia Event subscriptions owned by an address.

Returns every subscription where active=true (not yet fired, expired, or cancelled). Without this tool, dApps and dashboards have to replay every SubscriptionCreated log from the registry deploy block to discover what an owner is currently subscribed to.

Args: owner_address: subscriber wallet address ('0x...', case-insensitive).

Returns: Multi-section report listing each active subscription with feed name, condition + threshold, expiry, registry address, and creation tx.

ParametersJSON Schema
NameRequiredDescriptionDefault
owner_addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It transparently states it returns only active subscriptions and defines 'active' (not yet fired, expired, or cancelled). It also outlines return sections. Lacks details on side effects or rate limits, but for a read operation, it is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear paragraphs and Args/Returns sections. It is concise, providing all necessary information without superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, single purpose), the description comprehensively covers purpose, parameter, return value, and use case. The presence of an output schema further reduces the burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only title and type for 'owner_address', with 0% schema description coverage. The description compensates fully by explaining it is the subscriber wallet address and case-insensitive, adding critical semantic meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool enumerates active Pythia Event subscriptions for an address, specifying the resource (subscriptions), action (enumerate), and scope (active=true). It distinguishes from the alternative of replaying logs, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to discover current subscriptions) and provides context on the inefficiency of alternatives (replaying logs). While it doesn't explicitly list when not to use or compare with sibling tools like 'subscribe_info', it gives clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tokensA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description provides clear behavioral context: returns token symbols, categories, data source count, 30-day uptime, and operational status. Covers cross-chain and DeFi tokens. No side effects disclosed (implied read-only).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose and enumerate return fields. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and existence of output schema, description sufficiently explains purpose and key return data. Covers scope and examples, making it complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema; baseline 4 applies. Description does not need to add parameter info since none exist. Schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists all tokens tracked by Pythia with status and reliability info. Gives specific return fields and examples of covered tokens (BTC, SOL, etc.), distinguishing it from siblings that focus on feeds or oracle health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for getting an overview of all tokens, but does not explicitly state when to use versus alternative tools like get_token_feeds or get_market_summary. No exclusions or context for when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_event_feedA

Reverse-lookup a Pythia Event feedId (bytes32) to its human-readable feed name.

Subscribers receive bytes32 feedId in SubscriptionCreated and PythiaEvent events. This tool maps that hash back to the canonical feed name (e.g. 'pol_RSI_5M_14') so dApps don't need to maintain their own feedId → name table or query the registry contract on every event.

Args: feed_id_hex: bytes32 hash, with or without '0x' prefix, any case.

Returns: Single-section report with feed_name + matching token + indicator suffix. If the hash is not in the registered lookup table, returns a diagnostic pointer.

ParametersJSON Schema
NameRequiredDescriptionDefault
feed_id_hexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It discloses that returns a single-section report with feed_name, token, and indicator suffix; if not found, a diagnostic pointer. Also explains input format (hex, optional '0x', any case). No side effects mentioned, but implied read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise yet informative. Includes purpose, motivation, parameter description, and return value. Each sentence adds value, though the motivation sentence could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter and output schema existence, description covers input format and output structure. It mentions the diagnostic pointer for missing hashes. Complete enough for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description thoroughly explains feed_id_hex: bytes32 hash, with or without '0x' prefix, any case. It adds meaning beyond schema by specifying it's a hash and the accepted formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it reverse-looks up a bytes32 feedId to a human-readable feed name. The verb 'lookup' and resource 'event feed' are specific, and it distinguishes from sibling tools like get_feed_value or get_token_feeds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context: when subscribers receive bytes32 feedId in events and need canonical name. Explains why to use it instead of maintaining a local table or querying the registry contract. No explicit when-not, but the guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subscribe_infoA

Plan a specific Pythia Events subscription with cost and exact calls.

Args: feed_name: Feed name to monitor (e.g. 'pol_RSI_5M_14', 'bitcoin_EMA_1H_20') condition: 0=ABOVE, 1=BELOW, 2=CROSSES_ABOVE, 3=CROSSES_BELOW days: Subscription duration in days (1-365)

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
conditionNo
feed_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says 'Plan... with cost and exact calls', which is vague about side effects (read vs write). It does not disclose whether a subscription is created, if there are costs incurred, or any authentication or rate limits. Minimal behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a short introductory sentence followed by a clear, bullet-like list for each parameter. No redundant information. Every sentence adds value, and the key purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and no annotations, the description covers the basics but lacks behavioral context (e.g., whether it's a read or write operation). An output schema exists but is not referenced, though that is acceptable per guidelines. The description does not address the presence of many sibling tools, leaving potential confusion about when to use this one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description compensates for 0% schema coverage by providing clear explanations for each parameter: feed_name with examples, condition with enum mapping (0-3), and days with range. This adds significant meaning beyond the raw schema, making it easy for an agent to understand parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb 'Plan' and resource 'Pythia Events subscription', clearly indicating the tool's purpose. It mentions cost and exact calls, providing further clarity. This distinguishes it from sibling tools like list_subscriptions (listing) and get_events_info (retrieving info).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through examples and parameter definitions, but does not explicitly state when to use this tool versus alternatives. For instance, it does not contrast with list_subscriptions or get_events_info. Usage context is implicit, not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.12.1
    • Addedget_indicator_history
    • Changedget_integration_guide1 field changed
      • addedInput schema / properties / chain
        Added value: +{
        +  "default": "",
        +  "title": "Chain",
        +  "type": "string"
        +}
  2. 4 tool updatesv0.8.1
    • Addedget_feed_value
    • Addedget_vision_payload
    • Addedlist_subscriptions
    • Addedlookup_event_feed
  3. 3 tool updatesv0.4.0
    • Addedget_vision_history
    • Addedget_visions_guide
    • Addedget_visions_info
  4. 10 tool updatesv0.3.0
    • Addedcheck_oracle_health
    • Addedget_contracts
    • Addedget_events_guide
    • Addedget_events_info
    • Addedget_integration_guide
    • Addedget_market_summary
    • Addedget_pricing
    • Addedget_token_feeds
    • Addedlist_tokens
    • Addedsubscribe_info
  5. 7 tool updatesv0.2.4
    • Removedcheck_oracle_health
    • Removedget_contracts
    • Removedget_integration_guide
    • Removedget_market_summary
    • Removedget_pricing
    • Removedget_token_feeds
    • Removedlist_tokens
  6. 7 tool updatesv0.2.2
    • First observedcheck_oracle_health
    • First observedget_contracts
    • First observedget_integration_guide
    • First observedget_market_summary
    • First observedget_pricing
    • First observedget_token_feeds
    • First observedlist_tokens

TDQS

A3.8/5.0

Scored across 18 tools

Disambiguation2/5

Several tools have unclear boundaries: list_tokens, get_market_summary, and check_oracle_health all return uptime, status, and data-source health, with list_tokens already including 30-day uptime. Pricing/cost info also overlaps across get_pricing, get_events_info, and subscribe_info. Most other tools are distinct, but these multi-way overlaps make tool selection genuinely ambiguous.

Naming Consistency4/5

The vast majority of tools follow a clean lowercase snake_case verb_noun pattern, and the get_* family is dominant. Parallel names like get_events_info/get_events_guide and get_visions_info/get_visions_guide reinforce consistency, though a few outliers such as subscribe_info and check_oracle_health use different verbs.

Tool Count3/5

18 tools sits in the 16–25 range that feels heavy for a single-purpose server. The domain has multiple sub-areas, but the overlapping status/health tools suggest the surface could be consolidated. It is not excessive enough for a 2, but it is beyond the ideal 3–15 scope.

Completeness4/5

The tool set covers token discovery, feed data, historical verification, event subscription planning, vision analysis, contract addresses, integration guides, and pricing, which supports most real workflows. Minor gaps exist, such as no direct historical Event fire enumeration and no on-chain subscription actions, but agents can work around these via guides and get_indicator_history.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers