Skip to main content
Glama

Destatis Table

destatis_table
Read-onlyIdempotent

Fetch a Destatis GENESIS statistical table's data by its code (get codes from destatis_search), e.g. "12411-0001" (population) or "61111-0001" (consumer price index). Returns the table content (values across its dimensions) plus title. Germany-wide and by Land where the table provides it. A table can offer only a coarse level (e.g. 48112-0001 is WZ sections A-S only; the 4-digit industry rows are in the sibling 48112-0002): call with structure:true to see its dimensions, then filter with classifying_key1 (e.g. WZ08-9200 for gambling and betting) and start_year/end_year. A filtered call takes 12-20s.

Example tool call

This call uses example arguments supplied in the tool’s input schema.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "table_code": "12411-0001"
    },
    "name": "destatis_table"
  }
}

Input Schema

NameRequiredDescriptionDefault
areaNoGENESIS area: free (default), public, all, user.
_apiKeyNoOptional — your own free Destatis GENESIS API token. Omit to use the shared Pipeworx token.
end_yearNoLast year, e.g. "2024".
structureNotrue = return the table's dimensions (variables, time range, classification levels) instead of data. Use it to learn which classification keys a table offers before filtering.
start_yearNoFirst year, e.g. "2022".
table_codeYesGENESIS table code, e.g. "12411-0001".
classifying_key1NoFilter the table's 1st classifying variable to these keys (comma-separated, e.g. "WZ08-92" for lotteries/betting in an industry table). Without a filter GENESIS may return only the top level (e.g. WZ sections).
classifying_key2NoSame, 2nd classifying variable.
classifying_key3NoSame, 3rd classifying variable.
classifying_variable1NoName of the 1st classifying variable (from structure:true), e.g. "WZ08". Optional.
classifying_variable2NoName of the 2nd classifying variable. Optional.
classifying_variable3NoName of the 3rd classifying variable. Optional.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changed
    • addedInput schema / properties / area
      Added value: +{
      +  "description": "GENESIS area: free (default), public, all, user.",
      +  "type": "string"
      +}
    • addedInput schema / properties / classifying_key1
      Added value: +{
      +  "description": "Filter the table's 1st classifying variable to these keys (comma-separated, e.g. \"WZ08-92\" for lotteries/betting in an industry table). Without a filter GENESIS may return only the top level (e.g. WZ sections).",
      +  "type": "string"
      +}
    • addedInput schema / properties / classifying_key2
      Added value: +{
      +  "description": "Same, 2nd classifying variable.",
      +  "type": "string"
      +}
    • addedInput schema / properties / classifying_key3
      Added value: +{
      +  "description": "Same, 3rd classifying variable.",
      +  "type": "string"
      +}
    • addedInput schema / properties / classifying_variable1
      Added value: +{
      +  "description": "Name of the 1st classifying variable (from structure:true), e.g. \"WZ08\". Optional.",
      +  "type": "string"
      +}
    • addedInput schema / properties / classifying_variable2
      Added value: +{
      +  "description": "Name of the 2nd classifying variable. Optional.",
      +  "type": "string"
      +}
    • addedInput schema / properties / classifying_variable3
      Added value: +{
      +  "description": "Name of the 3rd classifying variable. Optional.",
      +  "type": "string"
      +}
    • addedInput schema / properties / end_year
      Added value: +{
      +  "description": "Last year, e.g. \"2024\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / start_year
      Added value: +{
      +  "description": "First year, e.g. \"2022\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / structure
      Added value: +{
      +  "description": "true = return the table's dimensions (variables, time range, classification levels) instead of data. Use it to learn which classification keys a table offers before filtering.",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "_apiKey": "your-destatis-api-key",
      -    "table_code": "12411-0001"
      -  },
      -  {
      -    "_apiKey": "your-destatis-api-key",
      -    "table_code": "61111-0001"
      -  }
      -]New value: +[
      +  {
      +    "table_code": "12411-0001"
      +  },
      +  {
      +    "table_code": "61111-0001"
      +  }
      +]
  3. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "_apiKey": "your-destatis-api-key",
      +    "table_code": "12411-0001"
      +  },
      +  {
      +    "_apiKey": "your-destatis-api-key",
      +    "table_code": "61111-0001"
      +  }
      +]
  4. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so safety is covered. The description adds substantial behavioral context beyond annotations: structure:true returns dimensions instead of data, unfiltered calls may return only top-level classifications, and filtered calls take 12-20s. It also describes the return shape as values across dimensions plus title.

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 the core action and examples, then adds the structure-first workflow, filtering caveats, and latency note. Every sentence earns its place: examples clarify table codes, the sibling reference prevents confusion, and the performance note sets expectations. It is appropriately dense for a 12-parameter tool.

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?

With no output schema, the description still explains that the tool returns table content as values across dimensions plus title. It covers the key workflow for discovering dimensions via structure:true and filtering via classifying_key1, plus the latency of filtered calls. Combined with a fully documented schema and annotations, an agent has what it needs to call the tool 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 schema already documents all 12 parameters, making 3 the baseline. The description adds practical meaning beyond the schema by explaining how structure:true reveals dimensions, how classifying_key1 filters the first classifying variable, and why filtering matters when GENESIS defaults to only top-level results. It does not cover area, _apiKey, or the optional classifying_variable2/3 parameters, but the schema handles those.

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: fetching a Destatis GENESIS statistical table's data by its code. It gives concrete table code examples and explicitly distinguishes itself from destatis_search by saying codes come from that sibling. An agent can tell exactly what this tool returns: table content across dimensions plus title.

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 names the sibling destatis_search as the place to obtain table codes, explains when to call with structure:true before filtering, and describes the sibling table 48112-0002 for finer granularity. It also says filtered calls take 12-20s, which sets expectations for when to use a filtered vs unfiltered call.

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.