Skip to main content
Glama

KalshiSpy

Search Kalshi markets by title or keywords

search_markets
Read-only

Find Kalshi markets by title or keywords, the way the KalshiSpy app's search works: fuzzy title matching finds the market series (so a team, a nickname or an approximate title works), and keyword matching runs against market titles. WITHOUT an API key it returns SETTLED WINS ONLY: settled markets where KalshiSpy's roster of ID-verified, high-profit Kalshi traders held the winning side (wins only, never a hit rate). WITH an Elite or Lifetime API key the same call also returns OPEN markets in open_markets: roster positions from the live feed and named traders' recent trades on still-open markets, and it costs 1 unit of the daily quota. Always read data.access: it says which answer you got and, when a key was refused, why; relay that sentence rather than guessing. Call this first whenever the user names a market in words, send the words under the argument name this tool's own schema gives, and cite each market's kalshi_url. An empty list is never evidence that Kalshi has no such market. For more wins, follow settled_wins.more, which carries ready-made search_settled_wins arguments.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum items in each list (settled wins, roster markets, recently traded markets).
queryYesMarket title or keywords, e.g. "super bowl", "fed rate" or "bitcoin". Terms of 2+ characters, at most 8. Keyword matching ANDs them as substrings of the title, outcome and tickers (settled wins also match the event title); the full text is also fuzzy-matched to market series.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint, and the description adds substantial context beyond them: no-key vs keyed return sets, wins-only never hit-rate semantics, a 1-unit quota cost, the `data.access` field to inspect and relay, and the warning that an empty list is not evidence of absence.

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-loads the core purpose before the tier/behavioral detail, and each sentence carries real information. It is lengthy, but the length is spent on genuine behavioral disclosures rather than 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?

Despite having no output schema, the description names the return buckets (`settled_wins`, `open_markets`, `data.access`), explains the wins-only framing, and covers the quota and citation expectations — everything an agent needs to call and interpret it.

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

Parameters3/5

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

Schema description coverage is 100%, so the query and limit semantics (pattern, max length, AND-of-substrings, fuzzy series match) are already fully documented in the schema. The description only adds a mild pointer ('send the words under the argument name this tool's own schema gives'), so the baseline of 3 is appropriate.

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 ('Find Kalshi markets by title or keywords') and explains the mechanics (fuzzy series matching plus keyword matching). It also implicitly separates itself from the sibling search_settled_wins by describing the `settled_wins.more` handoff, so an agent can place this tool in the family.

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?

Gives explicit when-to-use ('Call this first whenever the user names a market in words') and describes the branch depending on API-key tier. It also routes to the follow-up tool via `settled_wins.more`, covering the alternatives case.

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