The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the TakoData Tako MCP listing page.
Tako MCP gives your agent industry-leading live web search plus licensed data that the open web does not have. That includes company financials, macroeconomic indicators, web and app traffic, sports, US government spending, and more.
Full Documentation · Get your API key · MCP Registry
Tako MCP lets an agent:
tako_contents reads the rows behind itWhy a data-native search API? On Tako's VerticalRTK benchmark of real-time domain questions (finance, economics, sports, weather), Tako outperforms the next-best web search API by 21% — while using ~75% fewer tool calls at up to one-tenth the cost, and answering research tasks in 15.5s vs 124.2s for OpenAI web search. It reaches parity with Exa, Parallel, Nimble, and Tavily on standard web benchmarks (SimpleQA, FRAMES) and pulls ahead where structured, real-time data matters. Read the evals →
Point your MCP client at the hosted endpoint — no install, no local server, no token:
Paste the URL. Sign in when your client prompts you — a per-host key is minted automatically, and new accounts get up to 2,000 free requests. Until you sign in, the connection runs anonymously: tako_search works right away (rate-limited), and every other tool — listed like everything else — asks you to sign in when called. For CI, headless use, or a client without an OAuth flow, connect with an API key instead — see API keys and headless clients.
Claude Code installs with one command — the plugin brings the MCP connection plus Tako's bundled research skills:
Gemini CLI installs as an extension. Same one command, same bundled skills, plus /data, /chart, and /coverage commands:
Each of these lands on the free tier immediately. Authenticate later to unlock the full toolset — see your client's section below.
Pick your client below.
Plugin (recommended) — installs the MCP connection plus Tako's bundled research skills in one step, and works immediately on the free tier — no API key to mint or manage:
That's it — tako_search works right away on the anonymous free tier. To unlock the full toolset and your own account limits, authenticate once with OAuth: run /mcp inside Claude Code, select tako, and choose Authenticate. A browser opens to sign you in with your Tako account and a per-host API key is minted for you automatically (visible and revocable at tako.com/console/api-keys). The same OAuth flow powers the plugin on Claude.ai — the plugin's Tako connector connects with a click, no token pasting.
If you previously added the server with claude mcp add, remove it first (claude mcp remove tako-mcp) so you don't end up with two copies of every tool.
Updating from an earlier plugin version? Older releases asked for a Tako API key in the plugin config; that setting is gone, so after updating your connection silently lands on the anonymous tier (
tako_searchruns; the rest asks you to sign in) — nothing errors, but your account limits are no longer active. Run/mcp→ tako → Authenticate once (or use the Connect button on Claude.ai) to restore full authenticated access.
Or add the MCP server directly (then authenticate in place via /mcp → tako → Authenticate):
Verify with claude mcp list (should show tako connected) or /mcp inside a session.
Use the one-click badge above, or add to ~/.cursor/mcp.json — Cursor prompts you to sign in on first use:
Add to your Windsurf MCP config — Windsurf prompts you to sign in on first use:
Add to .vscode/mcp.json (workspace) or your user mcp.json — VS Code prompts you to sign in on first use:
Extension (recommended) installs in one command, and works immediately on the free tier with no API key to mint or manage:
That installs the MCP connection, Tako's bundled research skills, and three commands:
| Command | What it does |
|---|---|
/data <question> | The answer, cited, across proprietary data and the full web, since sources defaults to both. One narrow tako_search (with rows) for a specific value, parallel searches for anything broad |
/chart <question> | The series as a chart, with the Open in Tako embed link |
/coverage <entity or metric> | What the proprietary graph has, before you spend a call. tako_available_data is free, and a miss there still leaves web search |
To unlock the full toolset and your own account limits, authenticate once: run /mcp auth tako inside Gemini CLI. A browser opens to sign you in with your Tako account, and a per-host API key is minted for you automatically (visible and revocable at tako.com/console/api-keys).
Manual config: if you'd rather not install the extension, or you want to pin a ?tools= allowlist, add to ~/.gemini/settings.json (authenticate later with /mcp auth tako):
To use an API key instead, add a headers block with "Authorization": "Bearer <key>" — but fill it completely: Gemini substitutes unset ${VAR} references literally, and a malformed Authorization header is rejected rather than ignored, so a half-filled token breaks the connection where no token at all would have worked.
Add to opencode.json — OpenCode prompts you to sign in on first use:
Codex connects to remote servers through the mcp-remote bridge, which runs the sign-in flow in your browser on first connect:
Add to Zed settings.json (via the mcp-remote bridge, which runs the sign-in flow in your browser on first connect):
The consumer chat hosts don't accept Bearer tokens. claude_desktop_config.json only validates stdio servers, so a remote "type": "http" entry there is silently dropped — Claude Desktop connects through Connectors like Claude.ai. The hosted endpoint runs an OAuth 2.1 flow that signs you in with your Tako account and mints a per-host key for you automatically.
Prerequisites: just sign in at tako.com with the identity you'll authorize. You do not mint a token yourself — the consent flow creates a per-host key (named MCP: <client>, visible and revocable at tako.com/console/api-keys). Connecting a new host never rotates another host's key; Tako trims your oldest MCP key past ten.

Claude.ai (requires Pro, Max, Team, or Enterprise)
https://mcp.tako.com/mcp and click Connect
Claude Desktop (same plan requirement as Claude.ai)
https://mcp.tako.com/mcp and click ConnectChatGPT — install the Tako app from ChatGPT's app directory (it connects via OAuth and uses the app surface at https://mcp.tako.com/mcp/chatgpt). To hand-add it as a custom connector instead (requires Pro, Business, or Enterprise; Developer Mode enabled):
https://mcp.tako.com/mcp/chatgpt and click ConnectThe /mcp/chatgpt surface is OAuth-only and tuned for ChatGPT (interactive chart widget, a fixed five-tool listing; ?tools= is ignored there). The generic /mcp URL also works there — you get chart images instead of the interactive widget.

During connect you'll see three Tako-hosted screens regardless of host: a sign-in page (Google, or your Tako email and password), a consent page ("Connect [host] to Tako — Allow / Cancel"), then a bounce back to the host. The host may show its own consent prompt too — that's normal.

Disconnecting. A per-host disconnect (remove the connector in host settings) stops that host only; other hosts and Bearer-auth clients keep working. To hard-kill everything, rotate your key at tako.com/console/api-keys — every previously-issued grant across every host stops authenticating immediately.
Endpoints:
| Environment | URL |
|---|---|
| Production | https://mcp.tako.com/mcp |
| Production, ChatGPT app surface (OAuth-only) | https://mcp.tako.com/mcp/chatgpt |
| Staging (testing only) | https://mcp.staging.tako.com/mcp |
Tools are discovered automatically via the MCP tools/list handshake, so your client always sees the live surface. Auth is connection-level — once connected, tool inputs need no api_token argument.
Sign-in is the default path, but some setups need a key in config: CI and other headless runs, Roo Code, Warp, and mcp-remote pinned to a specific identity. Get your API key and send it as a Bearer header on the same URL:
A key connects exactly like OAuth — same tools, same account limits. Rotating the key at the console kills every connection using it.
The full reference — every description and parameter exactly as the model sees them, per surface — is generated into docs/TOOLS.md. Summary:
Listed by default on /mcp:
| Tool | What it's for |
|---|---|
tako_search | Find the data. Fast search over Tako's curated graph and the live web. Four parameters — query, sources, country_code, locale — and no defaults of its own, so an omitted field takes the API's. Cards carry headline values, node ids and chart links; tako_contents reads the rows. The top result renders inline as a chart with an Open in Tako link. Parallelize broad questions into narrow single entity+metric searches. |
tako_available_data | Find what structured data exists on an entity or metric in one free call — the exact metric name to search on, an id for graph traversal, and a ready-to-run next_call. Ambiguous names come back as candidates with a kind; metric doubles as the substring browse filter; limit widens the candidate list. |
tako_contents | Fetch what's behind result URLs (1-10 per call): a card's rows (billed per 1k rows) or a web page's text — pass query for only the matching passages. Requires a signed-in connection. |
tako_graph_related | Explore a graph node: a map (each relation's key, total, first three names) or one paged relation — metrics, the entities a metric covers, competitors (rel:competes_with), memberships, sources. q is a substring filter. Free. |
Anonymous connections (no credentials): the tool list is the same — it never changes with auth state. tako_search runs anonymously (rate-limited, on shared capacity); the others answer with sign-in instructions.
On connect, the server also advertises MCP server instructions that hosts like Claude.ai, Claude Desktop, and Claude Code place in the model's system prompt. They steer data and metric questions to tako_search ahead of the host's built-in web search, and note that tako_search covers the live web too, so one call can stand in for a separate web search on mixed questions. Built-in web search remains the fallback for queries outside Tako's coverage.
Opt-in on /mcp — name them in ?tools=:
| Tool | Token | What it's for |
|---|---|---|
tako_search_advanced | search_advanced | The whole v3 search request body: per-source count, inline rows and max_rows, graph pins (node_ids + strict), web include_domains / exclude_domains / category / snippet_max_chars / published_after / published_before, location, timezone, include_related, and effort: deep. Set include_answer: true for one synthesized, citation-backed answer (and output_schema to fill a JSON Schema from the same evidence). Same structured payload as tako_search, minus the auto-rendered inline chart — embed_url is still there to click through. |
tako_agent | agent | Tako's Answer Agent: multi-step research (~30–90s) across many retrievals, returning a synthesized answer plus chart cards. |
tako_visualize | visualize | Author a Tako card from your own typed components (timeseries, bar, table, financial boxes…). It PUBLISHES: the card is public, permanent, and readable by anyone with the link. On by default on /mcp/chatgpt, the host that renders the widget inline. |
?tools= is an allowlist that replaces the defaults. ?tools=search,contents lists exactly those two; ?tools=agent lists only tako_agent. Tokens are tool names with the tako_ prefix optional. Unknown tokens are ignored, and a param that names nothing yields the defaults, so a typo never breaks the connection. Include the defaults you rely on:
claude mcp add as above, and keep only one Tako connection active so you don't get two copies of every tool./mcp/chatgpt ignores ?tools=: its listing is fixed at submission — tako_search, tako_available_data, tako_contents, tako_visualize, tako_graph_related.Two tools, one step apart — tako_search finds, tako_contents fetches:
| You want… | Call | What you get back |
|---|---|---|
| To see what exists — recon, fan-outs, a chart to embed | tako_search | Cards with headline values, node ids, and chart links, plus web results. Cheap; safe to parallelize widely. |
| The values themselves — rows to compute over or quote | tako_contents on the card's url | Up to 2,000 rows of an exportable: true card, billed per 1k delivered. |
| A web page's text | tako_contents on the web result's url | The page's extracted text (query narrows it to matching passages). |
More search options — per-source counts, graph pins, domain filters, effort: deep | tako_search_advanced (opt-in, ?tools=search_advanced) | The same structured payload as tako_search. No inline chart render — the response still carries embed_url. |
tako_available_data first. It is free, returns the metric's exact name to search on, and a miss there still leaves web search.Specific question → search, then fetch the rows:
tako_search; the top card carries the headline value and its charttako_contents on that card's url, then answers with the chart inlineData to work with → parallel tako_search (synthesize yourself):
tako_search calls concurrently — one per entity+metrictako_contents on a card's url if it needs full rows (when the card is exportable: true)Ready-to-use skills for Claude Code. Each teaches Claude how to use Tako for a specific kind of data work. Copy the block inside a dropdown and paste it into Claude Code — it sets up the connection and skill for you.
Copy the block below and paste it into Claude Code. It will set up the MCP connection and skill for you.
Copy the block below and paste it into Claude Code. It will set up the MCP connection and skill for you.
Copy the block below and paste it into Claude Code. It will set up the MCP connection and skill for you.
Tako MCP is a Cloudflare Worker — a thin TypeScript proxy deployed at mcp.tako.com:
The Worker extracts the Bearer (or OAuth-derived) token, validates the MCP request, calls the appropriate Django endpoint with the user's token forwarded as X-API-Key, and returns structured tool results. Code lives in workers/.
GET /health returns a simple ok.tako_answer is gone, and ?tools=answer no longer resolves to anything. Synthesis is include_answer: true on tako_search_advanced, which reaches the same endpoint. answer is now an unknown token: it is dropped, so ?tools=answer alone falls back to the four default tools — none of which synthesize. Update the URL to ?tools=search,available_data,contents,search_advanced.?tools= now replaces the default listing instead of adding to it (tokens are tool names, e.g. ?tools=search,contents,agent). tako_graph_search, tako_graph_node, tako_agent_start, tako_agent_wait, get_credit_balance, and tako_credit_balance were removed; tako_graph_related is listed by default. See docs/TOOLS.md.https://mcp.tako.com/mcp/chatgpt?tools=agent was the documented way to reach it; that URL now serves the fixed five-tool listing, because ?tools= is ignored on /mcp/chatgpt. https://mcp.tako.com/mcp?tools=search,available_data,agent registers tako_agent for a ChatGPT developer-mode connector, but ChatGPT's ~60 s per-call ceiling cannot hold a 30–90 s run, so treat it as unsupported rather than a replacement. The agent returns to ChatGPT as reviewed app functionality, not as a hidden opt-in.tako_search takes four parameters — query, sources, country_code, locale. include_contents, preview_rows, effort, count, node_ids and strict are gone, and it declares no defaults of its own, so an omitted field takes the v3 API's. Rows come from tako_contents on an exportable: true card's url. Every removed option, plus effort: deep, include_domains, exclude_domains, category, max_rows and content_format, lives on the new opt-in tako_search_advanced (?tools=search_advanced).tako_contents takes four parameters — urls (now required), max_rows, max_chars, query. The deprecated single url, plus content_format and mode, are gone: every call is delivered inline, and a card's rows come back as one projected rows shape ({columns, rows, total_rows}, positional cells, null for a missing value) rather than CSV or a choice of JSON. download_url, expires_at, data, records, dataset and format left the output with them. Its max_rows documentation said "20-row default"; the real default is the whole card, up to 2,000 rows.tako_agent returns the answer itself instead of a run envelope. Its structuredContent used to carry {run_id, status, timed_out, thread_id} and nothing else — the answer, the citations and the cards existed in the markdown text only, so a host that reads structuredContent and drops content saw a uuid and the word completed. Both channels now carry answer, cards, citations, definitions, assumptions, methodology, thread_id, usage, guidance and error. run_id, status and timed_out left the output: the first has no poll tool to spend it on, and error already distinguishes the only two states the other two could report. usage is new. Per card, methodologies, metric_definitions, content, card_id, card_type, semantic_description, source_indexes, nodes, relevance and relevance_score are gone; per citation, source_name, excerpt, publish_date and content are gone.sources: "tako" — a synonym for "data" — was removed from tako_search, tako_answer and tako_agent.tako_available_data's next_call carries only tool and query now, and tool names whichever search tool the connection registers rather than always tako_search. The query names both halves by their canonical graph names, because tako_search matches the graph's own names; the pin is gone because tako_search no longer accepts one.tako_available_data and tako_graph_related renamed most of their output. node_id is id everywhere in the OUTPUT (the input parameter keeps its name), other_matches is candidates, entity_alternates / metric_alternates are entity_candidates / metric_candidates, and coverage.capped is coverage.total_capped. subtype and label collapse into one kind. The summary prose field is gone: a short guidance string now carries the verdict on the branches that have one. Dropped entirely: coverage.kind, coverage.names, the relation group's kind, each related item's type and label, inferred_labels, candidate aliases, and the query / metric_query echoes. tako_graph_related's map previews names only — ids come from drilling the relation.v0.3.0:
?tools= opt-ins, and ?tools= group aliases (graph, credits, answer, visualize, agent) were introduced. Both the aliases and several of those tools are gone — see the entry above and docs/TOOLS.md for the current surface.get_chart_image), interactive-chart (open_chart_ui), chart-creation (create_chart), and report tools (create_report, get_report, list_reports, export_report) were removed.pip install tako-mcp / Docker) was removed in favor of the hosted Cloudflare Worker.Update any client config or agent prompts that referenced the old tool names or the Python SSE endpoint.
Tako is published to the official MCP Registry as a remote server under io.github.TakoData/tako-mcp.
server.json (repo root) is the registry descriptor: a remote streamable-http entry pointing at https://mcp.tako.com/mcp. The schema doesn't list tools — hosts discover them at runtime via tools/list. (Distinct from registry/server.json, the generated in-repo tool catalog used by npm run registry:gen / registry:check.).github/workflows/publish-mcp.yml, authenticating via GitHub OIDC (no secret). The version lives in code: bump server.json's version, merge to main, and it publishes automatically. A merge that doesn't change the version is a no-op.com.tako/tako-mcp) is a future upgrade requiring DNS authentication (Ed25519 key + TXT record on tako.com).release: X.Y.Z PR. See AGENTS.md → Releases.chatgpt-app-submission.json at the repo root is the file the OpenAI portal imports. assertChatgptSubmissionParity in workers/scripts/gen-registry.ts keeps its tools object matched to what /mcp/chatgpt serves. The schema has no field for three things the portal asks for, so set them by hand:
https://mcp.tako.com/mcp/chatgpt. Not /mcp, which is the generic surface and serves no widget./mcp/chatgpt gets a 401.Tako's own chart pages at https://tako.com/embed/{pub_id}/ (the embed_url a tool returns) render tako_search results and tako_visualize cards interactively. No ads, sign-in, or upgrade UI.
Screenshots: one per starter prompt, showing the widget alone: no ChatGPT chrome, no prompt bubble, no model text. OpenAI's template is a 353×400 CSS px frame exported at 2x, so capture the card's embed page (https://tako.com/embed/{pub_id}/) in a 353 px wide viewport at deviceScaleFactor: 2 and clip to 400–860 px tall. The portal accepts any 706 px wide PNG, so it won't tell you when a capture includes the conversation; review does.
Annotations come from the server, not the form. A wrong hint is fixed in the tool module, deployed to production, and re-scanned with Scan Tools before you submit; the justification alone changes nothing.
io.github.TakoData/tako-mcpMIT License — see LICENSE for details.