Browse prediction markets, check odds, and follow big trades.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Returns markets with mispriced outcomes or cross-platform (Polymarket vs Kalshi) price inconsistencies.
Max results (default 20, max 100)
Minimum absolute spread (0-1, default 0.02)
Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mcp-bgpt-polymarket https://nova.civai.co/mcp/agents/mcp-bgpt-polymarket
Returns markets with mispriced outcomes or cross-platform (Polymarket vs Kalshi) price inconsistencies.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max results (default 20, max 100) |
| min_spread | number | Minimum absolute spread (0-1, default 0.02) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Max results (default 20, max 100)"
},
"min_spread": {
"type": "number",
"description": "Minimum absolute spread (0-1, default 0.02)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for filtering arbitrage opportunities"
}Returns top Polymarket traders ranked by PnL, ROI, win rate, or volume.
| Argument | Type | Description |
|---|---|---|
| limit | number | Number of traders (default 10, max 50) |
| metric | string | Ranking metric (default: pnl) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Number of traders (default 10, max 50)"
},
"metric": {
"enum": [
"pnl",
"roi",
"win_rate",
"volume"
],
"type": "string",
"description": "Ranking metric (default: pnl)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for ranking metric and result count"
}Returns Polymarket markets with the largest price movements in the last 24 hours.
| Argument | Type | Description |
|---|---|---|
| limit | number | Results (default 10) |
| direction | string | Price direction (default: both) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Results (default 10)"
},
"direction": {
"enum": [
"up",
"down",
"both"
],
"type": "string",
"description": "Price direction (default: both)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for filtering market movers by direction and count"
}Returns recent news articles relevant to a Polymarket market topic, useful for grounding LLM analysis.
| Argument | Type | Description |
|---|---|---|
| slug | string | Market slug to derive topic from |
| limit | number | Max articles (default 10, max 30) |
| query | string | Optional explicit keyword(s) to search |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"slug": {
"type": "string",
"description": "Market slug to derive topic from"
},
"limit": {
"type": "number",
"description": "Max articles (default 10, max 30)"
},
"query": {
"type": "string",
"description": "Optional explicit keyword(s) to search"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for fetching news context"
}Returns current prices, implied probability, volume, liquidity, and metadata for a specific Polymarket market by slug.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Market slug or condition ID (required) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Market slug or condition ID (required)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for looking up a specific market by slug"
}Returns bid/ask depth, spread, and liquidity quality for a Polymarket market.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Market slug (required) |
| depth | number | Number of price levels per side (default 10, max 50) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Market slug (required)"
},
"depth": {
"type": "number",
"description": "Number of price levels per side (default 10, max 50)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for fetching orderbook depth"
}Returns resolution state, outcome, close date, and resolution-source metadata for a Polymarket market.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Market slug (required) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Market slug (required)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for fetching resolution status"
}Returns a pre-formatted, AI-citable summary paragraph for any Polymarket market, plus raw data fields.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Market slug (required) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Market slug (required)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for generating a market summary by slug"
}Returns recent ERC1155 conditional-token (share) transfers on Polymarket. Surfaces whales moving winning positions to fresh wallets to mask PnL, self-shuffling, fresh-wallet drops, and round-trips — all activity that happens off the exchange order book.
| Argument | Type | Description |
|---|---|---|
| limit | number | Number of transfers (default 25, max 100) |
| min_usd | number | Minimum transfer notional in USD (default 10000) |
| market_slug | string | Optional: filter to a specific market slug |
| since_hours | number | Only include transfers in the last N hours (default 24) |
| flagged_only | boolean | If true, only return transfers with heuristic flags (whale, self_shuffle, fresh, round_trip) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Number of transfers (default 25, max 100)"
},
"min_usd": {
"type": "number",
"description": "Minimum transfer notional in USD (default 10000)"
},
"market_slug": {
"type": "string",
"description": "Optional: filter to a specific market slug"
},
"since_hours": {
"type": "number",
"description": "Only include transfers in the last N hours (default 24)"
},
"flagged_only": {
"type": "boolean",
"description": "If true, only return transfers with heuristic flags (whale, self_shuffle, fresh, round_trip)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for filtering CTF position transfers"
}Returns historical YES price / implied probability snapshots over time for a Polymarket market.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Market slug (required) |
| hours | number | Lookback window in hours (default 168 = 7d, max 8760) |
| limit | number | Max snapshots to return (default 200, max 1000) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Market slug (required)"
},
"hours": {
"type": "number",
"description": "Lookback window in hours (default 168 = 7d, max 8760)"
},
"limit": {
"type": "number",
"description": "Max snapshots to return (default 200, max 1000)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for fetching a market's price history"
}Finds related Polymarket markets — sibling outcomes in the same event, or other markets in the same category/topic.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Market slug (required) |
| limit | number | Max related markets (default 10, max 50) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Market slug (required)"
},
"limit": {
"type": "number",
"description": "Max related markets (default 10, max 50)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for finding related markets"
}Returns aggregate PolymarketScan platform statistics. Call this first to establish context before querying specific data.
| Argument | Type | Description |
|---|---|---|
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "No parameters required"
}Returns recent trades executed by a Polymarket wallet.
| Argument | Type | Description |
|---|---|---|
| limit | number | Max trades (default 25, max 100) |
| wallet* | string | Ethereum wallet address (0x...) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"wallet"
],
"properties": {
"limit": {
"type": "number",
"description": "Max trades (default 25, max 100)"
},
"wallet": {
"type": "string",
"description": "Ethereum wallet address (0x...)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for fetching recent wallet trades"
}Returns current open positions for a Polymarket wallet (from PolymarketScan's positions cache).
| Argument | Type | Description |
|---|---|---|
| limit | number | Max positions (default 25, max 100) |
| wallet* | string | Ethereum wallet address (0x...) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"wallet"
],
"properties": {
"limit": {
"type": "number",
"description": "Max positions (default 25, max 100)"
},
"wallet": {
"type": "string",
"description": "Ethereum wallet address (0x...)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for fetching open positions"
}Returns performance data for any Polymarket wallet — PnL, ROI, win rate, trade count, classification, and leaderboard rank.
| Argument | Type | Description |
|---|---|---|
| wallet* | string | Ethereum wallet address (0x...) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"wallet"
],
"properties": {
"wallet": {
"type": "string",
"description": "Ethereum wallet address (0x...)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for looking up a trader by wallet address"
}Returns ERC1155 share transfers involving a specific wallet (as sender or recipient). Useful for tracing what positions a whale has moved off-exchange.
| Argument | Type | Description |
|---|---|---|
| limit | number | Number of transfers (default 25, max 100) |
| wallet* | string | Wallet address (0x + 40 hex) |
| min_usd | number | Minimum notional in USD |
| direction | string | from | to | either (default either) |
| since_hours | number | Look back N hours |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"wallet"
],
"properties": {
"limit": {
"type": "number",
"description": "Number of transfers (default 25, max 100)"
},
"wallet": {
"type": "string",
"description": "Wallet address (0x + 40 hex)"
},
"min_usd": {
"type": "number",
"description": "Minimum notional in USD"
},
"direction": {
"enum": [
"from",
"to",
"either"
],
"type": "string",
"description": "from | to | either (default either)"
},
"since_hours": {
"type": "number",
"description": "Look back N hours"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for fetching transfers for a wallet"
}Returns recent large Polymarket trades above a USD size threshold. Useful for detecting whale activity and smart-money flow.
| Argument | Type | Description |
|---|---|---|
| limit | number | Number of trades (default 20, max 100) |
| market_slug | string | Optional: filter to a specific market slug |
| min_size_usd | number | Minimum trade size in USD (default 10000) |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [],
"properties": {
"limit": {
"type": "number",
"description": "Number of trades (default 20, max 100)"
},
"market_slug": {
"type": "string",
"description": "Optional: filter to a specific market slug"
},
"min_size_usd": {
"type": "number",
"description": "Minimum trade size in USD (default 10000)"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for filtering whale trades by size, count, and market"
}Full-text search across all active Polymarket markets. Supports natural language queries.
| Argument | Type | Description |
|---|---|---|
| limit | number | Results (default 10, max 50) |
| query* | string | Search query (required) |
| category | string | Category filter (default: all) |
| min_volume | number | Minimum total volume in USD |
| notification_message | string | Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"description": "Results (default 10, max 50)"
},
"query": {
"type": "string",
"description": "Search query (required)"
},
"category": {
"enum": [
"politics",
"crypto",
"sports",
"weather",
"science",
"all"
],
"type": "string",
"description": "Category filter (default: all)"
},
"min_volume": {
"type": "number",
"description": "Minimum total volume in USD"
},
"notification_message": {
"type": "string",
"description": "Short user-facing sentence for this action if the follow-up reply fails. Plain text only; do not mention template syntax or variable names."
}
},
"description": "Parameters for searching markets by keyword, category, and volume"
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.