search_markets
Search prediction markets across Kalshi, Polymarket, and Metaculus to find active betting opportunities on politics, crypto, sports, economics, and technology topics.
Instructions
Search 500+ prediction markets by keyword, topic, or natural language query.
Full-text search across Kalshi, Polymarket, and Metaculus. Finds markets matching any topic — politics, crypto, sports, economics, entertainment, science, technology, weather. Returns matching active markets sorted by relevance and trading volume. Use when looking for specific predictions, events, or outcomes to bet on.
Example queries:
"Trump election 2028" → presidential race odds
"Bitcoin price prediction" → BTC price target markets
"Super Bowl winner" → NFL championship odds
"AI regulation" → technology policy predictions
"Fed interest rate" → monetary policy forecasts
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g., 'Trump', 'Bitcoin', 'Super Bowl') | |
| limit | No | Maximum results to return (default: 10, max: 50) |
Implementation Reference
- src/db.ts:195-213 (handler)The implementation of the `search_markets` tool logic which queries the `telekash_markets` database table using Supabase.
export async function searchMarkets( query: string, limit: number = 10, ): Promise<Market[]> { const db = getDatabase(); const { data, error } = await db .from("telekash_markets") .select("*") .eq("status", "active") .or(`title.ilike.%${query}%,description.ilike.%${query}%`) .limit(limit); if (error) { throw new Error(`Failed to search markets: ${error.message}`); } return data || []; } - worker/src/tools.ts:170-171 (registration)The registration of the `search_markets` tool in the MCP tool switch-case handler.
case "search_markets": return searchMarkets(supabase, args as { query: string; limit?: number });