Skip to main content
Glama
pythia-the-oracle

pythia-oracle-mcp

Official

get_events_info

Retrieve an overview of on-chain indicator alert subscriptions including pricing, supported conditions, subscriber flow, registry addresses per chain, and subscription stats.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The get_events_info tool is defined as an async function decorated with @mcp.tool() on line 633. It fetches live data, extracts the 'events' section, and returns a formatted text overview of Pythia Events — on-chain indicator alert subscriptions (pricing, conditions, registry addresses, stats, etc.).
    @mcp.tool()
    async def get_events_info() -> str:
        """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.
        """
        data = await _fetch_data()
        events = data.get("events", {}) if data else {}
        if not events:
            return ("Pythia Events info not available. "
                    "Visit https://pythia.c3x-solutions.com for details.")
    
        lines = ["Pythia Events — On-Chain Indicator Alerts\n"]
        lines.append("Subscribe once, get notified when your condition is met.")
        lines.append("One-shot: fires once, remaining whole days refunded in LINK.\n")
    
        lines.append(f"Pricing: {events.get('pricing', '?')}")
        lines.append(f"Max duration: {events.get('max_days', 365)} days")
        lines.append(f"Threshold scale: {events.get('threshold_scale', '?')}")
        lines.append(f"Refund policy: {events.get('refund', '?')}\n")
    
        conditions = events.get("conditions", {})
        active = conditions.get("active", [])
        future = conditions.get("future", [])
        lines.append("Conditions:")
        for c in active:
            lines.append(f"  {c}  [active]")
        for c in future:
            lines.append(f"  {c}  [future — accepted, not yet processed]")
        lines.append("")
    
        lines.append("Subscriber Flow:")
        for i, step in enumerate(events.get("subscriber_flow", []), 1):
            lines.append(f"  {i}. {step}")
        lines.append("")
    
        registries = events.get("registries", [])
        if registries:
            lines.append("Event Registry Contracts:")
            for reg in registries:
                lines.append(f"  {reg['chain']}: {reg['address']}")
            lines.append("")
    
        stats = events.get("stats", {})
        active_subs = stats.get("active_subscriptions", 0)
        total_subs = stats.get("total_subscriptions", 0)
        lines.append(f"Stats: {active_subs} active / {total_subs} total subscriptions")
        lines.append("\nUse get_events_guide() for Solidity integration code.")
        lines.append("Use subscribe_info() to plan a specific subscription.")
        return "\n".join(lines)
  • The tool is registered via the @mcp.tool() decorator (line 633) on the FastMCP instance named 'mcp', defined on line 17. This is the registration mechanism.
    @mcp.tool()
    async def get_events_info() -> str:
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It describes a read-only retrieval operation, which is inferred, but does not mention any constraints like rate limits or authentication requirements. The description adds value by specifying return data, but lacks explicit 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.

Conciseness5/5

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

The description is extremely concise with two sentences, immediately stating the main purpose and listing the types of information returned. Every sentence contributes value with no waste.

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 has no parameters and an output schema exists, the description sufficiently explains what the tool does and what data it returns, providing enough context for an agent to select and invoke it 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 input schema has no parameters (100% coverage trivially), so the baseline is 4. No parameter description is needed, and the tool's operation is straightforward.

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 'overview of Pythia Events', distinguishing it from siblings like get_events_guide and lookup_event_feed by describing it as an overview tool that returns aggregate 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 implies this tool is for obtaining an overview of events, but does not explicitly state when to use it over alternatives such as get_events_guide or lookup_event_feed, 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.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pythia-the-oracle/pythia-oracle-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server