Skip to main content
Glama

Server Details

Give your agent web search and authoritative datasets: S&P Global, FRED, OECD, SimilarWeb & more.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
TakoData/tako-mcp
GitHub Stars
5
Server Listing
Tako MCP

Available Tools

4 tools
tako_available_dataTako: Available DataA
Read-onlyIdempotent
Inspect

Find what data Tako holds on an entity or a metric, and the canonical name it holds it under.

Best for: coverage questions themselves, or a metric's canonical name before a priced search. Put a company, person, or place in q to list the metrics tracked on it; put a metric in q to list the entities it covers. Add metric when you know the measure — you get the resolved pair and a ready-to-run next_call.

Search on the canonical names it returns, not your own phrasing — tako_search matches the graph's names, not yours. A name here means the graph tracks it, not that a card exists. If the follow-up search comes back empty, say Tako has no card for it rather than rephrasing the query. Hand a node id to tako_graph_related to see what else connects to it.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesThe entity or metric to look up by name — "Carnival", "United States", "Nvidia". Put the measure in `metric`, not here.
labelNoNER label to prefer for `q` — a boost, not a filter. Set it when you can categorize the term: company → ORG, place → GPE, person → PERSON. It never applies to `metric`.
limitNoHow many candidates to resolve for each of `q` and `metric`. Raising it widens what the tool considers, not just what it shows: a deeper metric can become the one `next_call` names.
typesNoNarrow resolution to one kind, an entity or a metric. Omit to resolve both.
metricNoThe measure, when you already know it — "gross margin", "capex". Supplying it resolves the entity+metric pair directly; omit it to browse everything the entity has.

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundYesWhether Tako holds matching data; `verified` says on what evidence.
entityNoLookup path: the resolved entity.
metricNoLookup path: the resolved metric.
matchesYesThe nodes whose coverage was drilled, best first.
guidanceNoThe verdict, and the one next action.
verifiedNoWhat was checked. `pair`: the metric is on the entity's own list. `coverage`: a list was drilled. `unlinked`: the list was checked, the metric is absent. `resolution`: names resolved only.
next_callYesA follow-up search in canonical names. Null when no target is unambiguous.
candidatesYesThe other nodes `q` resolved to, best first.
entity_candidatesNoRunners-up.
metric_candidatesNoRunners-up.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, and the description adds behavior beyond that: a name here means the graph tracks it, not that a card exists, and a resolved pair returns a ready-to-run next_call. It also warns that tako_search matches the graph's names, not the user's phrasing, which is critical behavioral context for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well structured with a front-loaded purpose statement, a 'Best for' section, and short actionable paragraphs. Every sentence contributes either selection guidance or behavioral nuance; there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete given the rich input and output schemas and annotations. It covers the tool's purpose, when to use it, how parameters affect behavior, what a result means, and how to handle empty follow-up searches. It also points to the relevant sibling tools without needing to describe return values in detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema coverage, the description adds meaningful parameter semantics: it explains how to use q for entities or metrics, when to add metric to resolve a pair, that label is a boost rather than a filter and never applies to metric, and that raising limit widens what the tool considers and can change which metric next_call names. This clearly goes beyond the schema's property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Find what data Tako holds on an entity or a metric, and the canonical name it holds it under.' This clearly states the tool's function and distinguishes it from siblings like tako_search, which matches names, and tako_graph_related, which explores connections. It leaves no ambiguity about what the tool is for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool: for coverage questions and getting a metric's canonical name before a priced search. It also gives concrete alternative routing: use tako_search on canonical names and tako_graph_related with a node id, plus a clear instruction to report 'no card' instead of rephrasing when search returns empty. This is strong, actionable selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tako_contentsTako: Fetch ContentsA
Read-onlyIdempotent
Inspect

Fetch the full content behind a url: a web page's text, or an exportable Tako card's data rows. Batch up to 10 urls in one call — each one is billed and fails on its own.

Fetch only cards that tako_search marked exportable: true. Rows bill per 1,000 delivered, so set max_rows when the recent rows are enough. If a page is long, such as a filing or an annual report, set query to get back only the passages that match.

Best for: reading one source in full — a page you need to quote, or the rows behind a card you need to compute over.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYesThe urls to fetch: a Tako card url or a web result url. One call for 8 urls costs the same as 8 separate calls and saves 7 round trips.
queryNoWeb pages only: return the passages around matches of this phrase instead of the whole page. The full page is always scanned, so no match means the phrase isn't there.
max_rowsNoTako cards only: how many rows to return. Omit it for the whole card, up to 2,000 rows. Every row delivered is billed, so lower it when the recent rows are enough.
max_charsNoWeb pages only: character cap on the extracted text. Inline fetches default to 100,000 per url, less across a batch. Raise it for a long document; `truncated` reports a cut.

Output Schema

ParametersJSON Schema
NameRequiredDescription
usageYesWhat this request cost.
resultsYesOne per requested url, in order.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though annotations already declare readOnly, idempotent, and non-destructive behavior, the description adds substantial non-obvious context: batching up to 10 with independent billing/failure, row-based billing, full-page scanning for query, and the `truncated` cut signal. This greatly exceeds what the annotations alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight paragraphs: what it does, cost/scope caveats, and best-fit use cases. Every sentence carries information, and the most important capability is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers operation, batching limits, billing behavior, exportable precondition, per-type parameter guidance, truncation reporting, and use-case fit. Combined with the detailed input schema and output schema, nothing essential is missing for an agent to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds extra selection guidance beyond the schema: use `query` for long documents, lower `max_rows` when recent rows suffice, and only pass card URLs that tako_search marked exportable. This pushes it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Fetch the full content behind a url') and precisely delimits two object types: web page text and Tako card data rows. This clearly separates tako_contents from its siblings like tako_search and tako_available_data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when the tool is best ('reading one source in full') and states the exportable-card precondition from tako_search. It does not explicitly spell out when not to use it or name alternatives, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updates
    • Removedtako_answer
    • Changedtako_available_data42 fields changed
      • changedInput schema / properties / label / description
        Previous value: -"NER label to prefer for `q` (boost, not a filter). Supply when you can categorize the term (company→ORG, place→GPE, person→PERSON, ...). Describes the ENTITY only — it is not applied to `metric`."New value: +"NER label to prefer for `q` — a boost, not a filter. Set it when you can categorize the term: company → ORG, place → GPE, person → PERSON. It never applies to `metric`."
      • addedInput schema / properties / limit
        Added value: +{
        +  "description": "How many candidates to resolve for each of `q` and `metric`. Raising it widens what the tool considers, not just what it shows: a deeper metric can become the one `next_call` names.",
        +  "maximum": 20,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedInput schema / properties / metric / description
        Previous value: -"The measure you want, when you already know it — e.g. \"gross margin\", \"passenger cruise days\", \"capex\". Supplying it is the FAST path: the tool resolves the entity+metric pair directly and hands back a runnable next_call, instead of listing every metric the entity has. Omit it only to browse what exists."New value: +"The measure, when you already know it — \"gross margin\", \"capex\". Supplying it resolves the entity+metric pair directly; omit it to browse everything the entity has."
      • changedInput schema / properties / q / description
        Previous value: -"The NAME of the entity (or metric) to look up, min 2 chars — e.g. \"Carnival\", \"United States\", \"Nvidia\". Put the measure in `metric`, not here."New value: +"The entity or metric to look up by name — \"Carnival\", \"United States\", \"Nvidia\". Put the measure in `metric`, not here."
      • changedInput schema / properties / types / description
        Previous value: -"Narrow resolution to a \"thing\" (\"entity\") or a \"measure\" (\"metric\"). Omit to search both."New value: +"Narrow resolution to one kind, an entity or a metric. Omit to resolve both."
      • addedOutput schema / properties / candidates
        Added value: +{
        +  "description": "The other nodes `q` resolved to, best first.",
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "coverage": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "total": {
        +            "type": "number"
        +          },
        +          "total_capped": {
        +            "description": "`total` is a floor.",
        +            "type": "boolean"
        +          }
        +        },
        +        "required": [
        +          "total",
        +          "total_capped"
        +        ],
        +        "type": "object"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "kind": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "description": "Canonical graph name — search on this.",
        +        "type": "string"
        +      },
        +      "type": {
        +        "description": "entity or metric; also what `coverage` counts.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "type"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / entity / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "name": {
        -        "type": "string"
        -      },
        -      "node_id": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "node_id",
        -      "name",
        -      "type"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedOutput schema / properties / entity / description
        Added value: +"Lookup path: the resolved entity."
      • removedOutput schema / properties / entity_alternates
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "name": {
        -        "type": "string"
        -      },
        -      "node_id": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "node_id",
        -      "name",
        -      "type"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / entity_candidates
        Added value: +{
        +  "description": "Runners-up.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / found / description
        Previous value: -"The OUTCOME. Discovery path (no `metric`): at least one match has live data coverage, not mere node resolution. Lookup path (`metric` supplied): both halves resolved and the pinned metric passed the name test — read `verified` for what was actually CHECKED. Never means a chart exists; only running `next_call` establishes that."New value: +"Whether Tako holds matching data; `verified` says on what evidence."
      • addedOutput schema / properties / guidance
        Added value: +{
        +  "description": "The verdict, and the one next action.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / matches / description
        Previous value: -"The resolved matches and their coverage, each entry carrying the node id to pin. To fetch a specific metric precisely: call tako_search or tako_answer with node_ids=[<the metric's node_id>] AND strict:true — an entity-only pin without strict does not steer retrieval."New value: +"The nodes whose coverage was drilled, best first."
      • addedOutput schema / properties / matches / items / properties / aliases
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / matches / items / properties / coverage / properties / items / description
        Added value: +"Headline-first."
      • addedOutput schema / properties / matches / items / properties / coverage / properties / items / items / properties / id
        Added value: +{
        +  "description": "Graph node id.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / matches / items / properties / coverage / properties / items / items / properties / name / description
        Added value: +"Canonical graph name."
      • removedOutput schema / properties / matches / items / properties / coverage / properties / items / items / properties / node_id
        Removed value: -{
        -  "description": "Pin this in a follow-up's node_ids WITH strict:true.",
        -  "type": "string"
        -}
      • changedOutput schema / properties / matches / items / properties / coverage / properties / items / items / required
        Previous value: -[
        -  "name",
        -  "node_id"
        -]New value: +[
        +  "name",
        +  "id"
        +]
      • removedOutput schema / properties / matches / items / properties / coverage / properties / items_truncated
        Removed value: -{
        -  "description": "More coverage entries exist than are listed here — the full NAME list is in the text channel.",
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / matches / items / properties / coverage / properties / kind
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / matches / items / properties / coverage / properties / total / description
        Added value: +"Entries in all, not entries listed."
      • addedOutput schema / properties / matches / items / properties / coverage / properties / total_capped
        Added value: +{
        +  "description": "`total` is a floor.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / matches / items / properties / coverage / properties / truncated / description
        Added value: +"More entries exist than are listed."
      • changedOutput schema / properties / matches / items / properties / coverage / required
        Previous value: -[
        -  "kind",
        -  "total",
        -  "truncated",
        -  "items"
        -]New value: +[
        +  "total",
        +  "total_capped"
        +]
      • addedOutput schema / properties / matches / items / properties / filter
        Added value: +{
        +  "description": "The `metric` phrase that narrowed this list. When set, `total` counts only matching entries.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / matches / items / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / matches / items / properties / kind
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / matches / items / properties / name / description
        Added value: +"Canonical graph name — search on this."
      • removedOutput schema / properties / matches / items / properties / node_id
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / matches / items / properties / type / description
        Added value: +"entity or metric; also what `coverage` counts."
      • changedOutput schema / properties / matches / items / required
        Previous value: -[
        -  "node_id",
        -  "name",
        -  "type",
        -  "coverage"
        -]New value: +[
        +  "id",
        +  "name",
        +  "type",
        +  "coverage"
        +]
      • changedOutput schema / properties / metric / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "name": {
        -        "type": "string"
        -      },
        -      "node_id": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "node_id",
        -      "name",
        -      "type"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / metric / description
        Previous value: -"The metric whose node_id belongs in the follow-up's node_ids."New value: +"Lookup path: the resolved metric."
      • removedOutput schema / properties / metric_alternates
        Removed value: -{
        -  "description": "Runners-up. The top metric is right ~80% of the time and the top three ~93-95%, so check these before accepting the primary.",
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "name": {
        -        "type": "string"
        -      },
        -      "node_id": {
        -        "type": "string"
        -      },
        -      "type": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "node_id",
        -      "name",
        -      "type"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / metric_candidates
        Added value: +{
        +  "description": "Runners-up.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / metric_query
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / next_call / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "node_ids": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "query": {
        -        "type": "string"
        -      },
        -      "strict": {
        -        "type": "boolean"
        -      },
        -      "tool": {
        -        "enum": [
        -          "tako_search",
        -          "tako_answer"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "tool",
        -      "query",
        -      "node_ids",
        -      "strict"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "query": {
        +        "type": "string"
        +      },
        +      "tool": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "tool",
        +      "query"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / next_call / description
        Previous value: -"Ready-to-run follow-up: call this tool with exactly this query, node_ids and strict. node_ids holds the METRIC node only — strict is an OR over pinned nodes, so adding the entity id widens the filter back out. Null when no metric resolved."New value: +"A follow-up search in canonical names. Null when no target is unambiguous."
      • removedOutput schema / properties / query
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / verified / description
        Previous value: -"WHAT WAS CHECKED, as distinct from `found`, which is the outcome. `coverage`: a coverage list was drilled. `pair`: the metric is on the entity's own metric list — the strongest free evidence there is. `unlinked`: the entity's list was checked and holds nothing matching, so a pinned call will probably return 0 cards; the emitted next_call therefore drops the pin. `resolution`: no pair evidence (check skipped or failed) — treat exactly as before."New value: +"What was checked. `pair`: the metric is on the entity's own list. `coverage`: a list was drilled. `unlinked`: the list was checked, the metric is absent. `resolution`: names resolved only."
      • changedOutput schema / required
        Previous value: -[
        -  "found",
        -  "query",
        -  "matches",
        -  "next_call"
        -]New value: +[
        +  "found",
        +  "matches",
        +  "candidates",
        +  "next_call"
        +]
    • Addedtako_contents
    • Addedtako_graph_related
    • Changedtako_search43 fields changed
      • removedInput schema / properties / count
        Removed value: -{
        -  "default": 10,
        -  "description": "Maximum number of results to return per source (1-20).",
        -  "maximum": 20,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / country_code / default
        Removed value: -"US"
      • changedInput schema / properties / country_code / description
        Previous value: -"ISO country code for localized results."New value: +"ISO 3166-1 alpha-2 country code for localized results. Omit it and the server uses US. Set it to localize for the user."
      • removedInput schema / properties / effort
        Removed value: -{
        -  "description": "Search effort: \"fast\" (default) or \"instant\" (fastest, serves cached embeds as-is). Omit for fast.",
        -  "enum": [
        -    "fast",
        -    "instant"
        -  ],
        -  "type": "string"
        -}
      • removedInput schema / properties / include_contents
        Removed value: -{
        -  "default": true,
        -  "description": "Inline each Tako card's data preview (default true; preview_rows sets how many rows). Set false — pointers-only, no rows — for large parallel fan-outs or when coverage is unconfirmed (no prior tako_available_data check). DATA source only; web page text is never auto-inlined (billed per page — use tako_contents). Full export is a separate tako_contents call, only for cards marked `exportable: true`.",
        -  "type": "boolean"
        -}
      • removedInput schema / properties / locale / default
        Removed value: -"en-US"
      • changedInput schema / properties / locale / description
        Previous value: -"Locale for results."New value: +"BCP-47 locale tag for language and formatting. Omit it and the server uses en-US. Set it to localize for the user."
      • removedInput schema / properties / node_ids
        Removed value: -{
        -  "description": "Graph node ids (from tako_available_data, or a card's nodes) to PIN into the proprietary data source. Pinned nodes get a strong retrieval boost. Max 20. Applies only to the 'data' source.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "maxItems": 20,
        -  "type": "array"
        -}
      • removedInput schema / properties / preview_rows
        Removed value: -{
        -  "default": 20,
        -  "description": "Cap on the rows of each card's data inlined when include_contents is true — always the N MOST-RECENT rows (default 20, the free inline allowance the server ships; values above your account's allowance have no effect). Lower it to trim context on broad fan-outs. For MORE than 20 rows, call tako_contents on the card's url (max_rows up to 2,000 — first 20 free, priced beyond). Ignored when include_contents is false.",
        -  "maximum": 250,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • changedInput schema / properties / query / description
        Previous value: -"Natural-language search query (e.g. \"US GDP growth\", \"Intel vs Nvidia revenue\"). Website-traffic data is keyed by domain — query \"openai.com monthly visits\", not \"OpenAI website visits\"."New value: +"Natural-language search query (e.g. \"US GDP growth\", \"Intel vs Nvidia revenue\"). Double-quote a multi-word name to keep it one entity (\"tesla motors\" club revenue); an unpaired quote disables quoting. Website-traffic data is keyed by domain — query \"openai.com monthly visits\", not \"OpenAI website visits\"."
      • changedInput schema / properties / sources / description
        Previous value: -"Source(s) to search. Default [\"data\",\"web\"] (both) — keep BOTH enabled unless you have a confirmed reason to narrow. Narrow to [\"data\"] only once `tako_available_data` has confirmed the proprietary data exists (web is the fallback when it does not). Narrow to [\"web\"] only for content a data graph cannot hold (news articles, page text, qualitative claims) — never because a metric merely feels web-native: website traffic, app usage, and similar digital metrics ARE in the proprietary data graph. (\"tako\" is a legacy synonym for \"data\".)"New value: +"Which corpora to search; default is both. Narrow to [\"data\"] once `tako_available_data` confirms coverage; narrow to [\"web\"] only for news or page text — website traffic is in the data graph."
      • changedInput schema / properties / sources / items / enum
        Previous value: -[
        -  "data",
        -  "web",
        -  "tako"
        -]New value: +[
        +  "data",
        +  "web"
        +]
      • removedInput schema / properties / strict
        Removed value: -{
        -  "default": false,
        -  "description": "Hard filter. When true, return ONLY cards matching at least one node in node_ids (which must then be non-empty — empty node_ids + strict is a 400). When false (default), pinned nodes are preferred/boosted but organic results still return.",
        -  "type": "boolean"
        -}
      • changedOutput schema / properties / cards / description
        Previous value: -"The data cards — the payload. Each carries its title, description (headline value), facts, and inline rows under `content`."New value: +"The data cards. Fetch an exportable card's rows with tako_contents on its url."
      • addedOutput schema / properties / cards / items / properties / coverage_end
        Added value: +{
        +  "description": "Where the DATA ends — use this, not `last_updated`, to judge whether a figure is current. Reduced ISO precision at the series' own granularity (\"2026\", \"2026-06\", \"2026-06-30\"), and it can be in the future on a card with projections.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / cards / items / properties / description
        Added value: +{
        +  "description": "Headline value and range — often the answer itself.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / cards / items / properties / exportable
        Added value: +{
        +  "description": "true → tako_contents on `url` returns the rows; false → rows are locked, read the headline from `description`.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / cards / items / properties / last_updated
        Added value: +{
        +  "description": "Date Tako last refreshed this card — NOT where its data ends.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / cards / items / properties / nodes
        Added value: +{
        +  "description": "Graph handles — pass ids to tako_graph_related.",
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "name",
        +      "type"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / cards / items / properties / relevance
        Added value: +{
        +  "description": "Either a 1.0-5.0 score as a string (\"4.5\", 5.0 = exact match) on entitled accounts, or a coarse word (\"High\"). Higher is more relevant in both forms.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / cards / items / properties / source
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / cards / items / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / cards / items / properties / total_rows
        Added value: +{
        +  "description": "Rows behind `url` (exportable cards only).",
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / cards / items / properties / url
        Added value: +{
        +  "description": "The card page — the tako_contents handle.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / cards / items / required
        Added value: +[
        +  "exportable"
        +]
      • removedOutput schema / properties / dark_mode
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / embed_url
        Removed value: -{
        -  "pattern": "^https?:\\/\\/",
        -  "type": "string"
        -}
      • changedOutput schema / properties / guidance / description
        Previous value: -"Present only on a zero-card response: the recovery protocol."New value: +"Zero-card responses only: what this response is evidence about, and the one next action."
      • removedOutput schema / properties / height
        Removed value: -{
        -  "exclusiveMinimum": 0,
        -  "maximum": 9007199254740991,
        -  "type": "integer"
        -}
      • removedOutput schema / properties / image_url
        Removed value: -{
        -  "pattern": "^https?:\\/\\/",
        -  "type": "string"
        -}
      • addedOutput schema / properties / metric_definitions
        Added value: +{
        +  "additionalProperties": {
        +    "type": "string"
        +  },
        +  "description": "What each metric means (unit, basis, caveats), keyed by metric name, deduped across cards.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • removedOutput schema / properties / pub_id
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / source_notes
        Added value: +{
        +  "additionalProperties": {
        +    "type": "string"
        +  },
        +  "description": "What each source is and how it builds its data, keyed by source name.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • changedOutput schema / properties / web_results / description
        Previous value: -"Web results, each with a `snippet`. A snippet is the passages selected against your query, not the page's opening text, so it usually carries the answer-bearing sentence. A ' … ' inside one marks a discontinuity — either passages joined from different parts of the page, or the page's own ellipsis — so read it as a whole and never quote across it as one continuous sentence. `null` means that page had no relevant passage — its url is still fetchable via tako_contents."New value: +"Web results."
      • addedOutput schema / properties / web_results / items / properties / content
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Page text — only when the request asked for it.",
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / web_results / items / properties / published
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / web_results / items / properties / snippet
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Passages selected against the query. A ' … ' marks a discontinuity — joined passages or the page's own ellipsis — so never quote across it as one sentence. null → no relevant passage, url still fetchable."
        +}
      • addedOutput schema / properties / web_results / items / properties / source
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / web_results / items / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / web_results / items / properties / url
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / web_results / items / required
        Added value: +[
        +  "url"
        +]
      • removedOutput schema / properties / width
        Removed value: -{
        -  "exclusiveMinimum": 0,
        -  "maximum": 9007199254740991,
        -  "type": "integer"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "usage"
        -]New value: +[
        +  "cards",
        +  "web_results",
        +  "usage"
        +]
  2. 1 tool update
    • Changedtako_available_data2 fields changed
      • changedOutput schema / properties / found / description
        Previous value: -"True when at least one match has live data coverage — not mere node resolution."New value: +"The OUTCOME. Discovery path (no `metric`): at least one match has live data coverage, not mere node resolution. Lookup path (`metric` supplied): both halves resolved and the pinned metric passed the name test — read `verified` for what was actually CHECKED. Never means a chart exists; only running `next_call` establishes that."
      • addedOutput schema / properties / verified
        Added value: +{
        +  "description": "WHAT WAS CHECKED, as distinct from `found`, which is the outcome. `coverage`: a coverage list was drilled. `pair`: the metric is on the entity's own metric list — the strongest free evidence there is. `unlinked`: the entity's list was checked and holds nothing matching, so a pinned call will probably return 0 cards; the emitted next_call therefore drops the pin. `resolution`: no pair evidence (check skipped or failed) — treat exactly as before.",
        +  "enum": [
        +    "coverage",
        +    "pair",
        +    "unlinked",
        +    "resolution"
        +  ],
        +  "type": "string"
        +}
  3. 2 tool updates
    • Changedtako_answer2 fields changed
      • removedOutput schema / properties / request_id
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "request_id",
        -  "usage"
        -]New value: +[
        +  "usage"
        +]
    • Changedtako_search2 fields changed
      • removedOutput schema / properties / request_id
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "request_id",
        -  "usage"
        -]New value: +[
        +  "usage"
        +]
  4. 2 tool updates
    • Changedtako_answer7 fields changed
      • addedOutput schema / properties / dark_mode
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / embed_url
        Added value: +{
        +  "pattern": "^https?:\\/\\/",
        +  "type": "string"
        +}
      • addedOutput schema / properties / height
        Added value: +{
        +  "exclusiveMinimum": 0,
        +  "maximum": 9007199254740991,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / image_url
        Added value: +{
        +  "pattern": "^https?:\\/\\/",
        +  "type": "string"
        +}
      • addedOutput schema / properties / pub_id
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / web_results / description
        Previous value: -"Web results cited by the answer."New value: +"Web results cited by the answer, each with a `snippet` of the passages selected against the question rather than the page's opening text. A ' … ' inside one marks a discontinuity — joined passages or the page's own ellipsis — so never quote across it as one continuous sentence. `null` means no relevant passage was found on that page."
      • addedOutput schema / properties / width
        Added value: +{
        +  "exclusiveMinimum": 0,
        +  "maximum": 9007199254740991,
        +  "type": "integer"
        +}
    • Changedtako_search1 field changed
      • changedOutput schema / properties / web_results / description
        Previous value: -"Web results with their snippets."New value: +"Web results, each with a `snippet`. A snippet is the passages selected against your query, not the page's opening text, so it usually carries the answer-bearing sentence. A ' … ' inside one marks a discontinuity — either passages joined from different parts of the page, or the page's own ellipsis — so read it as a whole and never quote across it as one continuous sentence. `null` means that page had no relevant passage — its url is still fetchable via tako_contents."
  5. 3 tool updates
    • Changedtako_answer1 field changed
      • changedOutput schema / properties / usage / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {},
        -    "properties": {
        -      "compute": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": {},
        -            "properties": {
        -              "cost_usd": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "cost_usd"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "data": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": {},
        -            "properties": {
        -              "cost_usd": {
        -                "type": "number"
        -              },
        -              "datasets": {
        -                "maximum": 9007199254740991,
        -                "minimum": -9007199254740991,
        -                "type": "integer"
        -              }
        -            },
        -            "required": [
        -              "cost_usd",
        -              "datasets"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "total_cost_usd": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "total_cost_usd"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "total_cost_usd": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "total_cost_usd"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedtako_available_data12 fields changed
      • changedInput schema / properties / label / description
        Previous value: -"NER label to prefer (boost, not a filter). Supply when you can categorize the term (company→ORG, place→GPE, person→PERSON, ...)."New value: +"NER label to prefer for `q` (boost, not a filter). Supply when you can categorize the term (company→ORG, place→GPE, person→PERSON, ...). Describes the ENTITY only — it is not applied to `metric`."
      • addedInput schema / properties / metric
        Added value: +{
        +  "description": "The measure you want, when you already know it — e.g. \"gross margin\", \"passenger cruise days\", \"capex\". Supplying it is the FAST path: the tool resolves the entity+metric pair directly and hands back a runnable next_call, instead of listing every metric the entity has. Omit it only to browse what exists.",
        +  "minLength": 2,
        +  "type": "string"
        +}
      • changedInput schema / properties / q / description
        Previous value: -"The NAME of one entity or one metric to look up (min 2 chars). Not a full question: for \"Carnival passenger cruise days\" pass \"Carnival\" and read the metric off the returned coverage.names."New value: +"The NAME of the entity (or metric) to look up, min 2 chars — e.g. \"Carnival\", \"United States\", \"Nvidia\". Put the measure in `metric`, not here."
      • addedOutput schema / properties / entity
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "name": {
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "type": "string"
        +        },
        +        "type": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "name",
        +        "type"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / entity_alternates
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "name": {
        +        "type": "string"
        +      },
        +      "node_id": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "node_id",
        +      "name",
        +      "type"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / matches
        Added value: +{
        +  "description": "The resolved matches and their coverage, each entry carrying the node id to pin. To fetch a specific metric precisely: call tako_search or tako_answer with node_ids=[<the metric's node_id>] AND strict:true — an entity-only pin without strict does not steer retrieval.",
        +  "items": {
        +    "additionalProperties": {},
        +    "properties": {
        +      "coverage": {
        +        "additionalProperties": {},
        +        "properties": {
        +          "items": {
        +            "items": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "name": {
        +                  "type": "string"
        +                },
        +                "node_id": {
        +                  "description": "Pin this in a follow-up's node_ids WITH strict:true.",
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "name",
        +                "node_id"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "items_truncated": {
        +            "description": "More coverage entries exist than are listed here — the full NAME list is in the text channel.",
        +            "type": "boolean"
        +          },
        +          "kind": {
        +            "type": "string"
        +          },
        +          "total": {
        +            "type": "number"
        +          },
        +          "truncated": {
        +            "type": "boolean"
        +          }
        +        },
        +        "required": [
        +          "kind",
        +          "total",
        +          "truncated",
        +          "items"
        +        ],
        +        "type": "object"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "node_id": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      },
        +      "unavailable": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "node_id",
        +      "name",
        +      "type",
        +      "coverage"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / metric
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "name": {
        +          "type": "string"
        +        },
        +        "node_id": {
        +          "type": "string"
        +        },
        +        "type": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "node_id",
        +        "name",
        +        "type"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The metric whose node_id belongs in the follow-up's node_ids."
        +}
      • addedOutput schema / properties / metric_alternates
        Added value: +{
        +  "description": "Runners-up. The top metric is right ~80% of the time and the top three ~93-95%, so check these before accepting the primary.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "name": {
        +        "type": "string"
        +      },
        +      "node_id": {
        +        "type": "string"
        +      },
        +      "type": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "node_id",
        +      "name",
        +      "type"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / metric_query
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / next_call / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "node_ids": {
        -        "items": {
        -          "type": "string"
        -        },
        -        "type": "array"
        -      },
        -      "query": {
        -        "type": "string"
        -      },
        -      "tool": {
        -        "const": "tako_search",
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "tool",
        -      "query",
        -      "node_ids"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "node_ids": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "query": {
        +        "type": "string"
        +      },
        +      "strict": {
        +        "type": "boolean"
        +      },
        +      "tool": {
        +        "enum": [
        +          "tako_search",
        +          "tako_answer"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "tool",
        +      "query",
        +      "node_ids",
        +      "strict"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / properties / next_call / description
        Previous value: -"Ready-to-run follow-up when coverage was found: call tako_search with exactly this query and node_ids pinned. Null when no match has coverage."New value: +"Ready-to-run follow-up: call this tool with exactly this query, node_ids and strict. node_ids holds the METRIC node only — strict is an OR over pinned nodes, so adding the entity id widens the filter back out. Null when no metric resolved."
      • changedOutput schema / required
        Previous value: -[
        -  "found",
        -  "query",
        -  "next_call"
        -]New value: +[
        +  "found",
        +  "query",
        +  "matches",
        +  "next_call"
        +]
    • Changedtako_search1 field changed
      • changedOutput schema / properties / usage / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": {},
        -    "properties": {
        -      "compute": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": {},
        -            "properties": {
        -              "cost_usd": {
        -                "type": "number"
        -              }
        -            },
        -            "required": [
        -              "cost_usd"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "data": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": {},
        -            "properties": {
        -              "cost_usd": {
        -                "type": "number"
        -              },
        -              "datasets": {
        -                "maximum": 9007199254740991,
        -                "minimum": -9007199254740991,
        -                "type": "integer"
        -              }
        -            },
        -            "required": [
        -              "cost_usd",
        -              "datasets"
        -            ],
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "total_cost_usd": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "total_cost_usd"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": {},
        +    "properties": {
        +      "total_cost_usd": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "total_cost_usd"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Query 2,500+ verified public datasets (World Bank, IMF, Eurostat, OECD, WHO) from your AI agent. Search, analyze, and visualize data, and publish charts — with verified SEC + official source data.
    28
    410
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to access SEC EDGAR filings, US Treasury rates, BLS labor statistics, and economic indicators without API keys.
    6
    32
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Direct access to 40+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.
    8
    42
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool has a distinct role: coverage/canonical-name lookup, graph and web search, content fetching, and graph relation expansion. The descriptions cross-reference one another and define a clear workflow, so an agent should not confuse them.

Naming Consistency3/5

All names share the tako_ prefix and snake_case, but the suffixes do not follow a single convention: available_data and contents are noun phrases, graph_related is a noun-adjective compound, and search is a bare verb. The set is readable but grammatically mixed.

Tool Count5/5

Four tools is a compact and well-scoped set for a data-discovery server: discovery, search, retrieval, and graph traversal each have one dedicated tool. No tool feels redundant or out of place.

Completeness5/5

The toolkit covers the likely user journey end-to-end: resolve canonical coverage, search for cards and web results, fetch full content or rows, and expand through graph relations. There is no obvious dead end or missing operation for the stated domain.