Find the same prediction market on Kalshi and Polymarket, with live prices and profit after fees.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer lyr_your_key: a free Layer API key from https://uselayer.sh/dashboard/keys
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.
Is buying YES on Kalshi and NO on a Polymarket (or the reverse) profitable after both venues' fees? Send the contracts and each side's price in dollars (0 to 1); Layer applies each venue's fee schedule. Send polymarket (polymarket.com) or polymarket_us, not both. With kalshi.market_id, Layer looks up the fees and the match itself.
How many contracts on each side.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http layer https://uselayer.sh/mcp \ --header 'Authorization: Bearer YOUR_TOKEN'
Headers
Authorization (required): Bearer lyr_your_key: a free Layer API key from https://uselayer.sh/dashboard/keysIs buying YES on Kalshi and NO on a Polymarket (or the reverse) profitable after both venues' fees? Send the contracts and each side's price in dollars (0 to 1); Layer applies each venue's fee schedule. Send polymarket (polymarket.com) or polymarket_us, not both. With kalshi.market_id, Layer looks up the fees and the match itself.
| Argument | Type | Description |
|---|---|---|
| kalshi* | object | |
| contracts* | integer | How many contracts on each side. |
| polymarket | object | |
| polymarket_us | object |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contracts",
"kalshi"
],
"properties": {
"kalshi": {
"type": "object",
"required": [
"price"
],
"properties": {
"price": {
"type": "number",
"description": "The Kalshi price you'd pay, in dollars per contract.",
"exclusiveMaximum": 1,
"exclusiveMinimum": 0
},
"market_id": {
"type": "string",
"description": "The Kalshi market ticker, so Layer can look up its fee and its match."
}
}
},
"contracts": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "How many contracts on each side."
},
"polymarket": {
"type": "object",
"required": [
"price"
],
"properties": {
"price": {
"type": "number",
"description": "The polymarket.com price you'd pay, in dollars per contract.",
"exclusiveMaximum": 1,
"exclusiveMinimum": 0
},
"category": {
"type": "string",
"description": "The market's category, to look the fee rate up."
},
"fee_rate": {
"type": "number",
"description": "The market's fee rate, if you know it."
}
}
},
"polymarket_us": {
"type": "object",
"required": [
"price"
],
"properties": {
"price": {
"type": "number",
"description": "The Polymarket US price you'd pay, in dollars per contract.",
"exclusiveMaximum": 1,
"exclusiveMinimum": 0
}
}
}
}
}List prediction markets that are the same bet on Kalshi and another venue, earliest event day first, with both venues' live prices and the best trade between them. Filter with q (words in the title, such as nba or btc), series, category, and a date range. total says how many there are; while has_more is true, call again with offset=next_offset. An empty answer has a hint saying why.
| Argument | Type | Description |
|---|---|---|
| q | string | Words that must all appear in the market title, e.g. nba, btc, fed. Crypto markets use the ticker: btc, eth, sol, xrp. |
| to | string | Last event day, YYYY-MM-DD. |
| from | string | First event day, YYYY-MM-DD. |
| limit | integer | How many to return. Start small (10 to 25): each match is a long object. |
| venue | string | The venue matched with Kalshi. Polymarket US when left out. |
| offset | integer | How many to skip: send next_offset from the last answer. |
| series | string | Kalshi series, comma-separated, e.g. KXBTC15M for 15-minute Bitcoin windows. |
| category | string |
Find the same bet on another venue for one market you know: its twin, how confident the match is, the rule differences, and both venues' live prices. Once the market has settled, says how both venues settled it.
| Argument | Type | Description |
|---|---|---|
| with | string | For a Kalshi market: which venue to find its twin on. Polymarket US when left out. |
| venue* | string | The venue the market id is from. |
| market_id* | string | The market's id on that venue: Kalshi's market ticker, Polymarket's conditionId or slug, Polymarket US's slug. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"venue",
"market_id"
],
"properties": {
"with": {
"enum": [
"polymarket_us",
"polymarket",
"hyperliquid",
"novig"
],
"type": "string",
"description": "For a Kalshi market: which venue to find its twin on. Polymarket US when left out."
},
"venue": {
"enum": [
"kalshi",
"polymarket",
"polymarket_us",
"hyperliquid",
"novig"
],
"type": "string",
"description": "The venue the market id is from."
},
"market_id": {
"type": "string",
"minLength": 1,
"description": "The market's id on that venue: Kalshi's market ticker, Polymarket's conditionId or slug, Polymarket US's slug."
}
}
}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 12, 2026.
| One category, e.g. sports, crypto, politics, economics. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"description": "Words that must all appear in the market title, e.g. nba, btc, fed. Crypto markets use the ticker: btc, eth, sol, xrp."
},
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last event day, YYYY-MM-DD."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First event day, YYYY-MM-DD."
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "How many to return. Start small (10 to 25): each match is a long object."
},
"venue": {
"enum": [
"polymarket_us",
"polymarket",
"hyperliquid",
"novig"
],
"type": "string",
"description": "The venue matched with Kalshi. Polymarket US when left out."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "How many to skip: send next_offset from the last answer."
},
"series": {
"type": "string",
"description": "Kalshi series, comma-separated, e.g. KXBTC15M for 15-minute Bitcoin windows."
},
"category": {
"type": "string",
"description": "One category, e.g. sports, crypto, politics, economics."
}
}
}