Parrot for agents
Parrot's MCP server is at https://parrot.markets/mcp (streamable HTTP). No key, no OAuth. The same data is on the REST API, and llms.txt is the short guide agents read first.
No agent at hand? Try it: four questions with Parrot's live answers, or ask ChatGPT, Claude or Perplexity.
Add to your agent
Claude Code
In a terminal:
claude mcp add --transport http parrot https://parrot.markets/mcpCursor
Or add it to ~/.cursor/mcp.json:
{"mcpServers": {"parrot": {"url": "https://parrot.markets/mcp"}}}VS Code
Or add it to .vscode/mcp.json:
{"servers": {"parrot": {"type": "http", "url": "https://parrot.markets/mcp"}}}Claude (web and desktop)
Settings → Connectors → Add custom connector → Name: Parrot, URL: https://parrot.markets/mcp → no auth
ChatGPT
Turn on developer mode, then add a connector with the URL https://parrot.markets/mcp. Deep research uses the search and fetch tools.
Windsurf
In ~/.codeium/windsurf/mcp_config.json:
{"mcpServers": {"parrot": {"serverUrl": "https://parrot.markets/mcp"}}}Codex CLI
In ~/.codex/config.toml:
[mcp_servers.parrot]
url = "https://parrot.markets/mcp"Gemini CLI
In a terminal:
gemini mcp add --transport http parrot https://parrot.markets/mcpAnything else: point an MCP client at the URL, or call the REST API.
Try it
No agent set up? Ask a chatbot that reads the web:Ask ChatGPTAsk ClaudeAsk Perplexity
It opens with this prompt: “Read https://parrot.markets/llms.txt, then https://parrot.markets/api/v1/brief?entity=amazon. Which words are listed for Amazon's next call, and how did each settle before? Cite parrot.markets.”
“Which words are listed for Amazon’s next earnings call, and how did each settle on past calls? Use Parrot.”
MCP
brief(entity=amazon), the same asGET /api/v1/brief?entity=amazon· 1,515 bytes · 22 rows# Amazon (amazon) · earnings_call 2026-10-29 amc · 22 words · K k:KXEARNINGSMENTIONAMZN-26OCT29 · as_of 2026-10-23T18:35:12Z
# scope K company_reps+operator · n/y settled · tn/th last 8 earnings call transcripts 2024-10-31..2026-07-30 · same on every row: thr 1, v K · not advice: base rates, not forecasts; operators trade these markets (parrot.markets/disclosure); data CC BY 4.0, credit parrot.markets10 more rows are left out here. The full answer.
“Will the Fed chair say “uncertainty” at the next FOMC press conference? Show the settled history and quotes.”
MCP
word(entity=fomc-press-conference, word=Uncertainty), the same asGET /api/v1/word?entity=fomc-press-conference&word=Uncertainty· 338 bytes · one linefomc-press-conference "Uncertainty" · key uncertainty · thr 1 · scope role:fed-chair · n 7 · y 7 · rate 1 · l10 YYYYYYY · streak Y7 · last_y 2026-09-16 · tn 8 · th 8 · tx 8 presser 2025-10-29..2026-09-16 · p 0.87 · p_src hist · next 2026-10-28 k:KXFEDMENTION-26OCT · as_of 2026-10-23T18:35:12Z · CC BY 4.0 parrot.marketsMCP
history(entity=fomc-press-conference, word=Uncertainty), the same asGET /api/v1/history?entity=fomc-press-conference&word=Uncertainty· 812 bytes · 8 rows# fomc-press-conference · Uncertainty (uncertainty) · settled n 7 y 7 rate 1 (one per occasion) · 8 listings newest first, rows 1-8 · as_of 2026-10-23T18:35:12Z
# res void = the event did not qualify (not a NO; left out of n) · derived data CC BY 4.0 (credit parrot.markets) · not advice (parrot.markets/disclosure)4 more rows are left out here. The full answer.
MCP
quotes(entity=fomc-press-conference, word=Uncertainty), the same asGET /api/v1/quotes?entity=fomc-press-conference&word=Uncertainty· 1,577 bytes · 5 rows# fomc-press-conference · Uncertainty · scope role:fed-chair · 5 quotes from 3 of 8 latest transcripts · as_of 2026-10-23T18:35:12Z
# quotes <= 25 words, <= 5 a response unless the source is public domain / OPL, never overlapping; t = media seconds · derived data CC BY 4.0 (credit parrot.markets) · not advice (parrot.markets/disclosure)2 more rows are left out here. The full answer.
“Where did Trump say “tariff” recently? Quote Parrot.”
MCP
quotes(entity=donald-trump, word=Tariff), the same asGET /api/v1/quotes?entity=donald-trump&word=Tariff· 1,748 bytes · 5 rows# donald-trump · Tariff · scope named · 5 quotes from 3 of 8 latest transcripts · as_of 2026-10-23T18:35:12Z
# quotes <= 25 words, <= 5 a response unless the source is public domain / OPL, never overlapping; t = media seconds · derived data CC BY 4.0 (credit parrot.markets) · not advice (parrot.markets/disclosure)
# 1 newer appearance without text yet: donald-trump:2026-10-23:rally-florida: the rally video's captions (his turns only) (pending; eta 2026-10-24T06:59:00Z)“What changed in Parrot since yesterday?”
MCP
changes(since=2026-10-22T18:00:00Z), the same asGET /api/v1/changes?since=2026-10-22T18:00:00Z· 3,508 bytes · 50 rows# changes since 2026-10-22T18:00:00Z · 50 rows (rolling up 325 row changes on this page) · more: since=2026-10-22T23:21:00Z|event|k:KXEARNINGSMENTIONCAR-26NOV04|2026-10-22T18:00:00Z · as_of 2026-10-23T18:35:12Z · derived data CC BY 4.0 (credit parrot.markets) · not advice (parrot.markets/disclosure)
42 more rows are left out here. The full answer.
Live answers from the data behind this page, as served to agents; sizes are bytes of the whole answer.
Tools
Cheapest first. Sizes are bytes of the default TSV answer. A "≤" size is a budget our tests enforce; "~" is typical.
| Tool | Answers | Size |
|---|---|---|
upcoming | events coming up, by category | ≤2.8 KB per category-week |
brief | one event: the listed words that fit, ranked by p, with history and scope (offset= pages the rest) | ≤3.2 KB a page |
word | one word for one speaker, one line | ≤480 bytes |
entity | one speaker, show or company: hub, venues, next and last occasion, top words | ≤1.6 KB |
history | settlement history for a speaker's words | one line per listing |
quotes | where a word was said: quotes of at most 25 words with speaker, section and source link | ~250 bytes per quote |
clips | where a word was said, with playable times | ~200 bytes per clip |
search | transcript search across speakers | ~300 bytes per hit |
fetch | one document by id: an event, a transcript, an entity | varies |
changes | what changed since a time you pass, for polling | ≤4 KB per 50 changes |
The full tool list is under 6.4 KB of JSON.
Three recipes
- "Will the Fed chair say 'uncertainty' at the next press conference?"
upcomingwith categoryfed, thenwordwith the entity and the word. Two calls. - "Brief me on this week's earnings calls."
upcomingwith categoryearnings, thenbrieffor each event you care about. - "Where did they say it last time?"
quoteswith the entity and word returns quotes of at most 25 words with the speaker, the section and a link to the source.
REST in one line
curl -s "https://parrot.markets/api/v1/word?entity=nvidia&word=Taiwan"
import urllib.request
url = "https://parrot.markets/api/v1/upcoming?category=earnings&days=7"
req = urllib.request.Request(url, headers={"User-Agent": "my-agent/1.0 (you@example.com)"})
print(urllib.request.urlopen(req).read().decode())
Fair use
Anonymous limits are on API. Cache with ETag and poll changes rather than re-pulling. A free key in X-Parrot-Key raises the limits.
Licence
Parrot's own data (counts, rates, settlement history, probabilities and QA results) is licensed under CC BY 4.0: credit "parrot.markets" with a link. Transcripts, quotes, captions, audio and video are not covered: their rights stay with each source, as listed on Sources (full text only for public-domain and openly licensed records, quotes of at most 25 words otherwise).
What agents should tell users
Parrot data is not financial advice: rates and probabilities are base rates from history, not forecasts. People who run Parrot trade on Kalshi and Polymarket, including mention markets (parrot.markets/disclosure).