Connect
Your client decides how it authenticates — you don’t have to choose. Web hosts (Claude.ai, ChatGPT, Claude Desktop) open a Tako sign-in window the first time you add the connector; approve once and nothing goes in a config file. CLI and editor clients send a Bearer token in anAuthorization: Bearer tako_sk_… header — though most of them can do the sign-in flow instead if you leave the header out.
Mint a token at tako.com/dashboard → Settings → API tokens. Tokens look like tako_sk_…, are shown once, and each connected client appears as its own named, revocable key.
The endpoint is the same everywhere: https://mcp.tako.com/mcp.
Claude.ai
Requires a Claude Pro, Max, Team, or Enterprise plan.
- Open Settings → Connectors → Add custom connector.
- Enter
https://mcp.tako.com/mcpand click Add. - Approve the Tako sign-in window when it opens — the Tako tools then appear. No token required.
ChatGPT
Requires ChatGPT Plus, Pro, Business, Enterprise, or Edu.
- Open Settings → Apps (formerly “Connectors”) → Advanced settings → Developer mode and toggle it on.
- Click Create app, give it a name, and set the Connector URL to
https://mcp.tako.com/mcp. - Approve the Tako sign-in when prompted. No token required.
Claude Code
Add Tako with the CLI, passing a Bearer token:/mcp inside Claude Code and approve the Tako sign-in:
claude mcp list.
Claude Desktop
- Open Settings → Connectors → Add custom connector.
- Enter
https://mcp.tako.com/mcp. - Sign in when the Tako window opens.
Cursor
~/.cursor/mcp.json (or a project .cursor/mcp.json) by hand:
headers.
VS Code
.vscode/mcp.json by hand:
servers (in user settings.json it nests under "mcp"). Omit headers and inputs to sign in with OAuth instead.
Windsurf
Add Tako to~/.codeium/windsurf/mcp_config.json — note the key is serverUrl, not url:
Codex
Use the Codex CLI; it reads the token from an environment variable rather than storing it in the config file:~/.codex/config.toml, which you can also add by hand:
codex mcp login tako.
Gemini CLI
Add Tako with the CLI — the Streamable HTTP key ishttpUrl:
~/.gemini/settings.json:
Zed
Add a context server to Zed’ssettings.json (Zed calls MCP servers “context servers”):
headers to sign in with OAuth instead.
Cline
In the Cline MCP Servers panel, open the Remote Servers tab, set the URL tohttps://mcp.tako.com/mcp, and choose the Streamable HTTP transport. The equivalent JSON config:
Roo Code
Open Roo Code’s MCP settings (Edit Global MCP) and add Tako — thetype must be streamable-http:
Kiro
~/.kiro/settings/mcp.json (or workspace .kiro/settings/mcp.json) by hand:
headers to sign in with OAuth instead.
Warp
In Warp, open Settings → Agents → MCP servers → + Add, choose the URL (Streamable HTTP) option, and paste:Goose
Rungoose configure → Add Extension → Remote Extension (Streamable HTTP), set the endpoint to https://mcp.tako.com/mcp, then add a Custom Request Header: Authorization: Bearer tako_sk_YOUR_TOKEN. The Goose desktop app has the same flow under Extensions → Add custom extension.
Antigravity
In Antigravity, open the side-panel ”…” menu → Manage MCP Servers → View raw config (the raw-config view shows the exact file path for your install), and add Tako — note the key isserverUrl:
headers to sign in with OAuth instead.
Other
Any client that speaks Streamable HTTP can use Tako: point it athttps://mcp.tako.com/mcp and either complete the OAuth sign-in or send Authorization: Bearer tako_sk_….
For clients that only support stdio servers, bridge to the remote endpoint with mcp-remote:
env var with no space after the colon — the documented workaround for an npx argument-escaping bug on some clients. To use OAuth instead, drop --header/env and run the bare bridge: npx mcp-remote https://mcp.tako.com/mcp.
Tools
tako_search
Find live data for a specific, known thing and get back ranked knowledge cards — each a structured factual answer with an interactive chart — backed by Tako’s curated knowledge graph and the live web. On hosts that support it, the top card renders inline automatically; reference it in your reply and link embed_url so the user can open it fullscreen.
Use it for a current or latest value, a time series, a statistic, a price, a score, a schedule, a forecast, a poll, or prediction-market odds — including a direct comparison of two named entities — across sports, economics, finance, demographics, technology, weather, elections, prediction markets, web traffic, real estate, energy, and health. When the question instead needs figuring something out — resolving a cohort, ranking or filtering a set by criteria, or multi-step reasoning across many entities — use tako_agent instead.
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | — (required) | Natural-language query, e.g. "US GDP growth" or "Intel vs Nvidia revenue". |
count | integer (1–20) | 10 | Maximum number of cards to return. |
sources | array of "data" | "web" | ["data","web"] | Where to search. Defaults to both Tako’s curated cards and the live web; pass ["data"] for curated cards only or ["web"] for web results only. The legacy value tako is accepted as a synonym for data. |
effort | "instant" | "fast" | (auto) | instant is the fastest cached path; fast runs the standard synchronous search. Omit to let Tako choose. |
include_contents | boolean | false | Inline each result’s underlying data in the response (a content object): the Tako card’s CSV and any web page’s text, fetched in the same call. Leave off and use tako_contents to fetch data on demand. |
country_code | string | "US" | ISO country code for localized results. |
locale | string | "en-US" | Locale for results. |
cards (each with card_id, title, description, webpage_url, image_url, embed_url, and — when include_contents is set — an inline content object), web_results (title, url, snippet, source_name, with inline content when requested; web results are not chartable cards), contents_total_cost (USD for any inlined data, 0 otherwise), and request_id. When the top card is chartable, the response also lifts its embed_url and image_url to the root for inline rendering.
Example
Example
Prompt: “How has Nvidia’s revenue grown since 2015?”
tako_answer
Ask a factual question about a specific, known thing and get back a single grounded, citation-backed text answer (prose, not a chart), plus the backing cards and web results. Use it when the user wants a direct written answer rather than a rendered chart. When the question needs figuring something out — cohort resolution, ranking or filtering a set, multi-step reasoning across many entities — use tako_agent instead.
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | — (required) | Natural-language question, e.g. "What was US GDP in 2024?". |
sources | array of "data" | "web" | ["data","web"] | Where to ground the answer. Defaults to both Tako’s curated data and the live web; pass ["data"] for curated data only or ["web"] for live web only. The legacy value tako is accepted as a synonym for data. |
include_contents | boolean | false | Inline the underlying data of each backing result (content): the card’s CSV and any web page’s text. Leave off and use tako_contents to fetch data on demand. |
country_code | string | "US" | ISO country code for localized results. |
locale | string | "en-US" | Locale for results. |
answer (the synthesized text), cards (backing knowledge cards with card_id, title, description, webpage_url, image_url, embed_url, plus inline content when include_contents is set), web_results (title, url, snippet, source_name), contents_total_cost (USD for any inlined data, 0 otherwise), and a request_id.
Example
Example
Prompt: “What is the current US unemployment rate?”
tako_search and tako_answer take nearly the same inputs and differ only in what comes back: tako_search returns cards to render, tako_answer returns prose plus the backing cards. Reach for tako_answer when you want a written answer read back to the user, and tako_search when you want to display or post-process the charts.tako_agent
Tako’s deep research agent — for questions that require figuring something out rather than retrieving a known value: resolving a cohort (“which companies match…”), ranking or filtering a set by criteria, multi-step aggregation, or multi-hop reasoning across many entities that a single tako_search / tako_answer can’t satisfy. It researches across Tako and the web and returns a synthesized answer plus the supporting chart cards and web_results. Runs server-side (typically ~30–90s).
| Parameter | Type | Default | Description |
|---|---|---|---|
query | string | — (required) | The analytical question to work through, e.g. "Which of the largest US semiconductor companies grew revenue fastest since 2015?". |
sources | array of "data" | "web" | ["data","web"] | Where the agent researches. Defaults to both; pass ["data"] for curated data only or ["web"] for the live web only. The legacy value tako is accepted as a synonym for data. |
thread_id | string | — | A thread_id from a prior run, to ask a follow-up in the same conversation. Omit to start a new thread. |
run_id, thread_id, status (queued → running → completed / failed), and on completion a result carrying the synthesized answer, the backing cards, web_results, and a request_id.
On ChatGPT the agent is split into two tools —
tako_agent_start (dispatch; returns a run_id) and tako_agent_wait (poll until done) — because the single-call path can’t survive that host’s tool-call timeout. Every other host exposes a single tako_agent tool that dispatches and waits in one call.tako_contents
Fetch the content behind a result you already have, given that result’s URL. A Tako card URL resolves to a CSV of the card’s underlying dataset; any other URL resolves to the page’s extracted full text. One URL per call. Use it after a tako_search / tako_answer result when the user wants the raw data or text — the input is a result URL, not a search query. mode controls delivery: inline (the default) returns the data in the response so the model can read it; url returns a presigned download link instead.
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | — (required) | The result URL to fetch — a Tako card’s webpage_url/embed_url (→ CSV) or a web result’s url (→ page text). |
mode | "inline" | "url" | "inline" | inline returns the content in the response (data) so the model can read it — CSV is capped at 1000 rows (total_rows / truncated flag the cap); url returns a short-lived download_url (no row cap), for handing the user a file or for large datasets you don’t need to read. |
format (e.g. csv or text), the source_url, and cost (USD for the fetch — Tako-card CSV is free; web text is metered). In inline mode it also returns data (the content, with total_rows / truncated describing CSV truncation) and leaves download_url / expires_at null. In url mode it returns a short-lived download_url + expires_at and leaves data null.
Example
Example
Prompt: “Get the data behind that Nvidia chart.”
tako_visualize
Build a brand-new interactive Tako chart from your own data — the Thin-Viz chart-creation tool (it posts to Tako’s Thin-Viz create endpoint). This is the only write tool on the server: it mints a publicly hostable chart and returns its URLs. Pass an array of component configs (optionally a header, plus one or more visualization components); Tako renders, hosts, and returns the card. Auto-renders inline when the host supports it.
| Parameter | Type | Default | Description |
|---|---|---|---|
components | array of objects | — (required) | One or more component configs. Each has a component_type (e.g. "header", "generic_timeseries", "categorical_bar", "choropleth", "pie", "scatter", "treemap" — 15+ types), an optional component_variant, and a config object whose shape depends on the component type. |
title | string | header title | Card title. Falls back to the header component’s title if omitted. |
description | string | — | Optional card description. |
source | string | — | Optional data-source attribution shown in the card footer (e.g. "Yahoo Finance", "Company Reports"). |
height | integer | — | Optional chart height in pixels (100–2000); overrides the default aspect-ratio height. |
normalize_currencies | string | — | Optional target ISO 4217 currency code (e.g. "USD") to convert currency-denominated datasets. |
card_id, title, description, webpage_url, embed_url, and image_url for the new card. On hosts that support MCP Apps the card auto-renders inline; otherwise share the returned embed_url (or webpage_url).
See Visualize Your Data for an agent-ready setup.
Example
Example
Prompt: “Chart sales by region: North America 500, Europe 300 (USD).”
get_credit_balance
Return the current account’s remaining Tako credits (plus subscription metadata). Call it only when the user explicitly asks about their balance, credits, or subscription — Tako’s other tools surface their own cost in each response, so a pre-flight balance check before another call is redundant and noisy. Takes no parameters.
Returns details, an object carrying credit_balance (the remaining balance, a number) and formatted_credit_balance (a display string), plus any additional subscription / usage fields.
Example
Example
Prompt: “How many Tako credits do I have left?”
Troubleshooting
Sign-in required / no API token
Sign-in required / no API token
The OAuth flow needs your Tako account to have at least one API token. Mint one at tako.com/dashboard → Settings → API tokens, then retry the connection.
Tools don't appear after connecting
Tools don't appear after connecting
Confirm your client supports the Streamable HTTP transport and is pointed at
https://mcp.tako.com/mcp (not a .../sse path). For header-based clients, make sure the Authorization: Bearer tako_sk_… header is set and the token hasn’t been revoked.