Skip to main content
Glama

Tako: Available Data

tako_available_data
Read-onlyIdempotent

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.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
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.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed42 schema 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"
      +]
  2. Changed2 schema 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. Changed12 schema 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"
      +]
  4. Changed2 schema fields changed
    • removedInput schema / properties / coverage_filter
      Removed value: -{
      -  "description": "Hunting one specific metric? Case-insensitive filter matching WORDS in the coverage names + aliases, applied server-side across the FULL coverage (e.g. q=\"Capital One\", coverage_filter=\"charges-off\"). Use whole words as they appear in the name — a partial word (\"charge\" for \"charges\") may not match. Use when the unfiltered list came back truncated without the metric you expected; omit for the general coverage overview.",
      -  "minLength": 1,
      -  "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: if your lookup names both a thing and a measure (\"Carnival passenger cruise days\"), put the entity here (\"Carnival\") and the metric words in coverage_filter (\"passenger cruise days\")."New 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."
  5. Changed8 schema fields changed
    • addedInput schema / properties / coverage_filter
      Added value: +{
      +  "description": "Hunting one specific metric? Case-insensitive filter matching WORDS in the coverage names + aliases, applied server-side across the FULL coverage (e.g. q=\"Capital One\", coverage_filter=\"charges-off\"). Use whole words as they appear in the name — a partial word (\"charge\" for \"charges\") may not match. Use when the unfiltered list came back truncated without the metric you expected; omit for the general coverage overview.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / q / description
      Previous value: -"Entity or metric name to look up (min 2 chars)."New value: +"The NAME of one entity or one metric to look up (min 2 chars). Not a full question: if your lookup names both a thing and a measure (\"Carnival passenger cruise days\"), put the entity here (\"Carnival\") and the metric words in coverage_filter (\"passenger cruise days\")."
    • changedOutput schema / properties / found / description
      Previous value: -"True when at least one match has live data coverage — not mere node resolution. A resolved node with no coverage (or whose coverage lookup failed) yields false."New value: +"True when at least one match has live data coverage — not mere node resolution."
    • removedOutput schema / properties / matches
      Removed value: -{
      -  "items": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "coverage": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "capped": {
      -            "type": "boolean"
      -          },
      -          "kind": {
      -            "enum": [
      -              "metrics",
      -              "entities"
      -            ],
      -            "type": "string"
      -          },
      -          "names": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "total": {
      -            "maximum": 9007199254740991,
      -            "minimum": -9007199254740991,
      -            "type": "integer"
      -          },
      -          "truncated": {
      -            "type": "boolean"
      -          }
      -        },
      -        "required": [
      -          "kind",
      -          "names",
      -          "total",
      -          "truncated",
      -          "capped"
      -        ],
      -        "type": "object"
      -      },
      -      "label": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "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 / next_call
      Added value: +{
      +  "anyOf": [
      +    {
      +      "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"
      +    }
      +  ],
      +  "description": "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."
      +}
    • removedOutput schema / properties / other_matches
      Removed value: -{
      -  "items": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "name": {
      -        "type": "string"
      -      },
      -      "type": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "name",
      -      "type"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / summary
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "found",
      -  "query",
      -  "summary",
      -  "matches",
      -  "other_matches"
      -]New value: +[
      +  "found",
      +  "query",
      +  "next_call"
      +]
  6. First observed

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.

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.