Earnings-call mention markets on Kalshi and Polymarket: transcripts, word history, probabilities.
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.
One call, a row per listed word: settled n/y/rate/l10, transcript th/tn, p. By event, appearance, or entity(+date). <=3.2 KB; offset pages the rest.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http parrot https://parrot.markets/mcp
One call, a row per listed word: settled n/y/rate/l10, transcript th/tn, p. By event, appearance, or entity(+date). <=3.2 KB; offset pages the rest.
| Argument | Type | Description |
|---|---|---|
| date | string | |
| event | string | |
| limit | integer | |
| entity | string | |
| fields | string | |
| format | string | |
| offset | integer | |
| symbol | string | |
| markets | boolean | |
| appearance | string |
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"event": {
"type": "string"
},
"limit": {
"type": "integer"
},
"entity": {
"type": "string"
},
"fields": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md"
],
"type": "string"
},
"offset": {
"type": "integer"
},
"symbol": {
"type": "string"
},
"markets": {
"type": "boolean"
},
"appearance": {
"type": "string"
}
}
}What changed since an ISO time or a next cursor (ts type id op); strikes roll up into their event.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| since* | string | |
| types | string | |
| format | string |
{
"type": "object",
"required": [
"since"
],
"properties": {
"limit": {
"type": "integer"
},
"since": {
"type": "string"
},
"types": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md"
],
"type": "string"
}
}
}Timed audio clips of a word, mp3:<source>@<a>-<b> (~175 timed past calls; no new clips are added). ~200 bytes/row.
| Argument | Type | Description |
|---|---|---|
| word* | string | 'Tariff / Tariffs (3+ times)' |
| limit | integer | |
| entity | string | |
| format | string | |
| symbol | string | |
| appearance | string |
{
"type": "object",
"required": [
"word"
],
"properties": {
"word": {
"type": "string",
"description": "'Tariff / Tariffs (3+ times)'"
},
"limit": {
"type": "integer"
},
"entity": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md"
],
"type": "string"
},
"symbol": {
"type": "string"
},
"appearance": {
"type": "string"
}
}
}Entity card: kind, hub, tier, venues, next / last call, top words. <=1.6 KB.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| fields | string | |
| format | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"fields": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md"
],
"type": "string"
}
}
}One document by id (entity, appearance, k:/p: event, <entity>/words/<word>, or a URL) as JSON.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}Settled strikes where our count disagrees with the result (JSON).
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| venue | string | |
| format | string | |
| offset | integer | |
| symbol | string | |
| mismatch_only | boolean |
{
"type": "object",
"properties": {
"limit": {
"type": "integer"
},
"venue": {
"enum": [
"kalshi",
"polymarket"
],
"type": "string"
},
"format": {
"enum": [
"text",
"json"
],
"type": "string"
},
"offset": {
"type": "integer"
},
"symbol": {
"type": "string"
},
"mismatch_only": {
"type": "boolean"
}
}
}Settlement history of an entity's words (most settled first); with word, every settled listing of it. offset pages.
| Argument | Type | Description |
|---|---|---|
| q | string | |
| word | string | 'Tariff / Tariffs (3+ times)' |
| limit | integer | |
| entity | string | |
| format | string | |
| offset | integer | |
| symbol | string |
{
"type": "object",
"properties": {
"q": {
"type": "string"
},
"word": {
"type": "string",
"description": "'Tariff / Tariffs (3+ times)'"
},
"limit": {
"type": "integer"
},
"entity": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md"
],
"type": "string"
},
"offset": {
"type": "integer"
},
"symbol": {
"type": "string"
}
}
}Earnings calls (id, date, quarter, words, flags), newest first.
| Argument | Type | Description |
|---|---|---|
| to | string | |
| from | string | |
| limit | integer | |
| format | string | |
| offset | integer | |
| symbol | string |
{
"type": "object",
"properties": {
"to": {
"type": "string"
},
"from": {
"type": "string"
},
"limit": {
"type": "integer"
},
"format": {
"enum": [
"tsv",
"json"
],
"type": "string"
},
"offset": {
"type": "integer"
},
"symbol": {
"type": "string"
}
}
}Where a word was said: <=25-word quotes, speaker, section, counted under the market's scope. ~250 bytes/row.
| Argument | Type | Description |
|---|---|---|
| call | string | |
| word* | string | 'Tariff / Tariffs (3+ times)' |
| limit | integer | |
| entity | string | |
| format | string | |
| symbol | string | |
| call_id | integer | |
| appearance | string |
{
"type": "object",
"required": [
"word"
],
"properties": {
"call": {
"type": "string"
},
"word": {
"type": "string",
"description": "'Tariff / Tariffs (3+ times)'"
},
"limit": {
"type": "integer"
},
"entity": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md",
"text"
],
"type": "string"
},
"symbol": {
"type": "string"
},
"call_id": {
"type": "integer"
},
"appearance": {
"type": "string"
}
}
}Settled markets: frozen p vs price at listing, T-24h, T-1h; head scores both; offset pages.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| entity | string | |
| format | string | |
| offset | integer |
{
"type": "object",
"properties": {
"kind": {
"enum": [
"live",
"backtest",
"all"
],
"type": "string"
},
"entity": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md"
],
"type": "string"
},
"offset": {
"type": "integer"
}
}
}Every open market, a row each with p and the book; filter, sort vol|date|p. <=4 KB; offset pages.
| Argument | Type | Description |
|---|---|---|
| q | string | |
| days | integer | |
| sort | string | |
| venue | string | |
| entity | string | |
| format | string | |
| offset | integer | |
| decided | boolean | |
| call_state | string |
{
"type": "object",
"properties": {
"q": {
"type": "string"
},
"days": {
"type": "integer"
},
"sort": {
"type": "string"
},
"venue": {
"type": "string"
},
"entity": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md"
],
"type": "string"
},
"offset": {
"type": "integer"
},
"decided": {
"type": "boolean"
},
"call_state": {
"type": "string"
}
}
}Search companies, executives and call transcripts ('yesterday' works). JSON results [{id,title,url,text}]; ids work with fetch.
| Argument | Type | Description |
|---|---|---|
| to | string | |
| from | string | |
| limit | integer | |
| query* | string | |
| entity | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"to": {
"type": "string"
},
"from": {
"type": "string"
},
"limit": {
"type": "integer"
},
"query": {
"type": "string"
},
"entity": {
"type": "string"
}
}
}START HERE. Earnings calls with mention markets in the next N days: entity, venues, word count, top3 word:p<p>:n. <=4.8 KB a week.
| Argument | Type | Description |
|---|---|---|
| all | boolean | |
| days | integer | |
| fields | string | |
| format | string | |
| markets | boolean | |
| category | string |
{
"type": "object",
"properties": {
"all": {
"type": "boolean"
},
"days": {
"type": "integer"
},
"fields": {
"type": "string"
},
"format": {
"enum": [
"tsv",
"json",
"md"
],
"type": "string"
},
"markets": {
"type": "boolean"
},
"category": {
"type": "string"
}
}
}Will <entity> say <word>? One line: settled history, transcript history, p, scope, next listing. next=true: the next market's word. <=480 bytes.
| Argument | Type | Description |
|---|---|---|
| next | boolean | |
| word* | string | 'Tariff / Tariffs (3+ times)' |
| entity | string | |
| format | string | |
| symbol | string | |
| markets | boolean |
{
"type": "object",
"required": [
"word"
],
"properties": {
"next": {
"type": "boolean"
},
"word": {
"type": "string",
"description": "'Tariff / Tariffs (3+ times)'"
},
"entity": {
"type": "string"
},
"format": {
"enum": [
"text",
"json"
],
"type": "string"
},
"symbol": {
"type": "string"
},
"markets": {
"type": "boolean"
}
}
}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 11, 2026.