Skip to main content
Glama
pythia-the-oracle

pythia-oracle-mcp

Official

Pythia Oracle MCP 서버

PyPI License: MIT pythia-oracle-mcp MCP server

모든 스마트 컨트랙트는 데이터뿐만 아니라 지능을 가질 자격이 있습니다.

Pythia는 Chainlink가 지원하는 모든 체인에서 모든 토큰에 대해 계산된 기술적 지표(EMA, RSI, VWAP, 볼린저 밴드, 변동성)를 온체인으로 제공하는 최초의 오라클입니다. 트레이더들이 사용하는 것과 동일한 지표를 Chainlink를 통한 단일 호출로 스마트 컨트랙트와 AI 에이전트가 사용할 수 있습니다.

Pythia Events를 사용하면 스마트 컨트랙트가 지표 조건(RSI 30 미만, EMA 교차, 볼린저 밴드 돌파 등)을 구독하고 조건이 충족될 때 자동으로 호출을 받을 수 있습니다. 키퍼(Keeper), 오프체인 봇, 폴링이 필요 없습니다. 귀하의 컨트랙트가 시장 상황에 스스로 반응합니다.

Pythia Visions는 워크포워드(walk-forward) 검증을 거친 시장 인텔리전스(패턴 유형, 신뢰도 점수, 지표 스냅샷, 확인을 위해 지켜봐야 할 피드 등)를 하나의 이벤트로 온체인에 전달합니다. 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, 크론 작업, 오프체인 인프라 불필요

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의 speed 번들을 사용할 수 있는 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