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: questions about what Tako covers. 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

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

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.

  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

A4.7/5.0
Behavior5/5

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

Beyond the read-only and idempotent annotations, the description discloses important behavior: returned names mean the graph tracks the term, not that a card exists; searches should use canonical names; empty results should be reported rather than rephrased; and a node id can be passed to `tako_graph_related`.

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 front-loaded with purpose and best-use guidance, then adds only actionable caveats about canonical names, empty results, and graph follow-up. Each sentence contributes operational value.

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?

Given the rich annotations, full schema descriptions, and existing output schema, the description is complete enough for an agent to call the tool correctly. It covers the workflow, canonical-name behavior, and follow-up paths without needing to explain return values.

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

Parameters3/5

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

Schema coverage is 100% and the parameter descriptions are already detailed, including `q`, `metric`, `label`, `limit`, and `types`. The tool description reinforces the entity-versus-metric distinction but adds little parameter-level meaning beyond what the schema already states.

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 states a specific verb and resource: find what data Tako holds on an entity or metric, including the canonical name. It clearly distinguishes the tool from siblings by naming `tako_search` and `tako_graph_related` and explaining their different roles.

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?

It gives explicit guidance for when to use the tool: questions about what Tako covers. It also explains how to use `q` for an entity versus a metric, when to add `metric`, how to use canonical names returned, and what to do if a follow-up search is empty.

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.