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

NameRequiredDescriptionDefault
requestYesRequest for prediction market discovery tools.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / request / additionalProperties
      Added value: +false
    • removedInput schema / properties / request / anyOf
      Removed 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"
      -  }
      -]
    • addedInput schema / properties / request / description
      Added value: +"Request for prediction market discovery tools."
    • addedInput schema / properties / request / properties
      Added value: +{
      +  "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'."
      +  }
      +}
    • addedInput schema / properties / request / type
      Added value: +"object"
  2. 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"
      +  }
      +]
  3. 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"
      +  }
      +]
  4. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely non-obvious behavior: matching is literal-style rather than fuzzy web search, no-match results should not be backfilled with nearest guesses, and superlatives must map to the shown metric. Pagination/rate behavior is left implicit, keeping this just short of a 5.

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?

Front-loaded with the core action in sentence one, then cleanly sectioned with bold headers. Slightly long, and the anti-hallucination rules overlap a little with the no-match rule, but nearly every line carries actionable instruction rather than 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?

An output schema exists and all four nested request parameters are documented, so return values and parameter shapes need no prose. Combined with the annotations, the description covers everything an agent needs to select, scope, and interpret calls to this screener.

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 100%, so the baseline is 3, but the query tips add real meaning about the `query` parameter — short topic fragments, no multi-topic bundling, split broad questions into separate calls. That goes beyond the schema's "Optional text query for filtering" and shapes how the parameter should actually be filled.

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?

States a specific verb and resource ("Browse and sort Polymarket markets, events, or categories") and explicitly distinguishes itself from the sibling prediction_market_lookup. An agent can route between the two without opening either schema.

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?

Contains an explicit "When to use" block plus a negative rule naming the alternative tool for single named markets/slugs/URLs. It also covers failure handling (no rows returned → do not invent a nearest match), which is real invocation guidance rather than restated metadata.

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