polymarket_search
Pack: polymarket · Endpoint: https://gateway.pipeworx.io/polymarket/mcp
PREFER OVER WEB SEARCH for current betting/prediction-market odds. Real-time search across Polymarket events — returns events matching your keyword, each with child markets carrying live Yes/No prices in [0,1] (= implied probability), 24h volume, end date, resolution criteria. Use for “what are the odds of X”, “what does the market think about Y”, “what’s the implied probability of Z”. Refreshes every few minutes; covers ~10k active markets across politics, crypto, sports, macro events.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Search query, e.g. “presidential election”, “rate cut”, “world cup” |
limit | number | no | 1–25 events (default 5) |
include_closed | boolean | no | Include resolved markets (default false) |
Example call
Arguments
{
"query": "presidential election"
}
curl
curl -X POST https://gateway.pipeworx.io/polymarket/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"polymarket_search","arguments":{"query":"presidential election"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('polymarket_search', {
"query": "presidential election"
});
More examples
{
"query": "bitcoin price",
"limit": 10,
"include_closed": false
}
Response shape
Always returns: query, count, events
| Field | Type | Description |
|---|---|---|
query | string | The search query submitted |
count | number | Number of matching events returned |
events | array | Matching events with markets |
Full JSON Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query submitted"
},
"count": {
"type": "number",
"description": "Number of matching events returned"
},
"events": {
"type": "array",
"description": "Matching events with markets",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Event ID"
},
"slug": {
"type": "string",
"description": "Event slug"
},
"ticker": {
"type": [
"string",
"null"
],
"description": "Event ticker symbol"
},
"title": {
"type": "string",
"description": "Event title"
},
"description": {
"type": [
"string",
"null"
],
"description": "Event description"
},
"active": {
"type": [
"boolean",
"null"
],
"description": "Whether event is active"
},
"closed": {
"type": [
"boolean",
"null"
],
"description": "Whether event is closed"
},
"volume_total": {
"type": [
"number",
"null"
],
"description": "Total volume"
},
"volume_24hr": {
"type": [
"number",
"null"
],
"description": "24-hour volume"
},
"open_interest": {
"type": [
"number",
"null"
],
"description": "Open interest"
},
"liquidity": {
"type": [
"number",
"null"
],
"description": "Liquidity depth"
},
"competitive_score": {
"type": [
"number",
"null"
],
"description": "Competitive score"
},
"comment_count": {
"type": [
"number",
"null"
],
"description": "Number of comments"
},
"end_date": {
"type": [
"string",
"null"
],
"description": "Event end date"
},
"start_date": {
"type": [
"string",
"null"
],
"description": "Event start date"
},
"market_count": {
"type": "number",
"description": "Number of markets in event"
},
"markets": {
"type": "array",
"description": "Child markets",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Market ID"
},
"slug": {
"type": "string",
"description": "Market slug"
},
"question": {
"type": "string",
"description": "Market question"
},
"description": {
"type": [
"string",
"null"
],
"description": "Resolution criteria"
},
"outcomes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Outcome labels"
},
"yes_price": {
"type": [
"number",
"null"
],
"description": "Yes token price (probability)"
},
"no_price": {
"type": [
"number",
"null"
],
"description": "No token price (probability)"
},
"implied_probability_yes": {
"type": [
"number",
"null"
],
"description": "Implied Yes probability"
},
"volume_total": {
"type": [
"number",
"null"
],
"description": "Total volume"
},
"volume_24hr": {
"type": [
"number",
"null"
],
"description": "24-hour volume"
},
"volume_1wk": {
"type": [
"number",
"null"
],
"description": "1-week volume"
},
"volume_1mo": {
"type": [
"number",
"null"
],
"description": "1-month volume"
},
"liquidity": {
"type": [
"number",
"null"
],
"description": "Liquidity depth"
},
"active": {
"type": [
"boolean",
"null"
],
"description": "Whether market is active"
},
"closed": {
"type": [
"boolean",
"null"
],
"description": "Whether market is closed"
},
"accepting_orders": {
"type": [
"boolean",
"null"
],
"description": "Whether market accepts orders"
},
"end_date": {
"type": [
"string",
"null"
],
"description": "Market end date"
},
"start_date": {
"type": [
"string",
"null"
],
"description": "Market start date"
},
"image": {
"type": [
"string",
"null"
],
"description": "Image URL"
},
"url": {
"type": "string",
"description": "Polymarket URL"
}
}
}
},
"url": {
"type": "string",
"description": "Polymarket event URL"
}
}
}
}
},
"required": [
"query",
"count",
"events"
]
}
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"polymarket": {
"url": "https://gateway.pipeworx.io/polymarket/mcp"
}
}
}
See Getting Started for client-specific install steps.