Skip to main content
Glama

Screening prediction markets

prediction_market_screener
Read-only

Browse and sort Polymarket markets, events, or categories.

When to use:

  • Broad discovery, screening, and ranked browsing across many markets.

  • Do NOT use this to resolve one named market/event/slug/URL — use prediction_market_lookup instead.

Query tips:

  • Literal-style matching on text and slugs, not fuzzy web search.

  • Prefer one short topic or slug fragment (e.g. fed cuts, zelensky, ncaa tournament).

  • Do not bundle unrelated topics (e.g. bitcoin ethereum politics weather). If a broad question spans several topics, run separate screener queries for each.

  • If a query returns no rows, do not invent a nearest match — try a narrower topic or say no data was returned.

Output rules:

  • Superlatives (highest, leading, biggest, top, trending) must match the shown metric exactly.

  • Do not infer end dates, rankings, or category leadership from titles alone.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "Request for prediction market discovery tools.",
      -    "properties": {
      -      "mode": {
      -        "default": "markets",
      -        "description": "Discovery mode. Use 'markets' to screen individual markets, 'events' to screen grouped events, and 'categories' for category level aggregated stats.",
      -        "enum": [
      -          "markets",
      -          "events",
      -          "categories"
      -        ],
      -        "type": "string"
      -      },
      -      "orderBy": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional sort field for markets/events. Common fields: volume24h, volume, volume1w, volume1m, liquidity, openInterest, uniqueTraders24h, ageHours."
      -      },
      -      "page": {
      -        "default": 1,
      -        "description": "Page number for paginated results.",
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "query": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional text query for filtering markets/events by keyword."
      -      },
      -      "status": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional lifecycle filter for markets/events. Common values: 'active', 'open', 'closed', or 'all'."
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Request for prediction market discovery tools.",
      +    "properties": {
      +      "mode": {
      +        "default": "markets",
      +        "description": "Discovery mode. Use 'markets' to screen individual markets, 'events' to screen grouped events, and 'categories' for category level aggregated stats.",
      +        "enum": [
      +          "markets",
      +          "events",
      +          "categories"
      +        ],
      +        "type": "string"
      +      },
      +      "orderBy": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "volume_24hr",
      +              "volume",
      +              "volume_1wk",
      +              "volume_1mo",
      +              "liquidity",
      +              "open_interest",
      +              "unique_traders_24h",
      +              "age_hours"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Sort field. Pass an exact value above or None for default ('volume_24hr')."
      +      },
      +      "page": {
      +        "default": 1,
      +        "description": "Page number for paginated results.",
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "query": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Optional text query for filtering markets/events by keyword."
      +      },
      +      "status": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Optional lifecycle filter for markets/events. Common values: 'active', 'open', 'closed', or 'all'."
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  2. Changed3 schema fields changed
    • removedInput schema / $defs
      Removed value: -{
      -  "PredictionMarketScreenerRequest": {
      -    "description": "Request for prediction market discovery tools.",
      -    "properties": {
      -      "mode": {
      -        "default": "markets",
      -        "description": "Discovery mode. Use 'markets' to screen individual markets, 'events' to screen grouped events, and 'categories' for category level aggregated stats.",
      -        "enum": [
      -          "markets",
      -          "events",
      -          "categories"
      -        ],
      -        "type": "string"
      -      },
      -      "orderBy": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional sort field for markets/events. Common fields: volume24h, volume, volume1w, volume1m, liquidity, openInterest, uniqueTraders24h, ageHours."
      -      },
      -      "page": {
      -        "default": 1,
      -        "description": "Page number for paginated results.",
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "query": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional text query for filtering markets/events by keyword."
      -      },
      -      "status": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "description": "Optional lifecycle filter for markets/events. Common values: 'active', 'open', 'closed', or 'all'."
      -      }
      -    },
      -    "type": "object"
      -  }
      -}
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / request / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "$ref": "#/$defs/PredictionMarketScreenerRequest"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "Request for prediction market discovery tools.",
      +    "properties": {
      +      "mode": {
      +        "default": "markets",
      +        "description": "Discovery mode. Use 'markets' to screen individual markets, 'events' to screen grouped events, and 'categories' for category level aggregated stats.",
      +        "enum": [
      +          "markets",
      +          "events",
      +          "categories"
      +        ],
      +        "type": "string"
      +      },
      +      "orderBy": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Optional sort field for markets/events. Common fields: volume24h, volume, volume1w, volume1m, liquidity, openInterest, uniqueTraders24h, ageHours."
      +      },
      +      "page": {
      +        "default": 1,
      +        "description": "Page number for paginated results.",
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "query": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Optional text query for filtering markets/events by keyword."
      +      },
      +      "status": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Optional lifecycle filter for markets/events. Common values: 'active', 'open', 'closed', or 'all'."
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  3. Added

TDQS

A4.9/5.0
Behavior5/5

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

The description discloses search behavior not captured by annotations: 'Literal-style matching on text and slugs, not fuzzy web search.' It also sets output-handling rules ('If a query returns no rows, do not invent a nearest match') and prevents overinference from titles, which is important for trustworthy results. Annotations already declare read-only and open-world, and the description adds substantial behavioral context beyond them.

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 organized with clear headers (When to use, Query tips, Output rules) and front-loads the core purpose. Every section earns its place by providing actionable guidance; there is no filler or repetition of schema details.

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 broad discovery tool with an output schema and annotations, the description covers use cases, exclusions, query formulation, empty-result handling, and output accuracy expectations. The combination of annotations, schema, and description leaves little an agent needs 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 input schema documents nested fields (mode, page, query, status, orderBy), but the tool description adds critical query semantics: 'Literal-style matching on text and slugs,' 'Prefer one short topic or slug fragment,' and 'Do not bundle unrelated topics.' It also maps to mode by naming markets/events/categories. This goes beyond the schema's generic 'Optional text query for filtering' description, though it does not elaborate on status or orderBy values.

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 opens with a specific verb and resource: 'Browse and sort Polymarket markets, events, or categories.' It further clarifies this is for 'broad discovery, screening, and ranked browsing across many markets,' and explicitly contrasts with the sibling `prediction_market_lookup`, so an agent can distinguish it without inspecting schemas.

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?

It provides an explicit 'When to use' section stating the intended scope and a direct exclusion: 'Do NOT use this to resolve one named market/event/slug/URL — use prediction_market_lookup instead.' Query tips further guide usage with concrete examples and negative constraints (e.g., 'Do not bundle unrelated topics').

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources