Skip to main content
Glama

DatiTuristici.it

Read the yearly tourism series of an Italian comune

leggi_serie_comune
Read-onlyIdempotent

Reads the yearly series of nights spent (presenze) and arrivals of one Italian comune, split by guests resident in Italy and abroad, over a range of years. Use it for the trend of one comune, given its 6-digit cod_istat from cerca_comune; do not use it for one year or for capacity and population (use leggi_dati_comune instead), or for several comuni (use confronta_comuni instead). Rows are yearly, oldest first; from 2025 ISTAT counts include privately rented holiday flats, so anno_discontinuita and nota flag that totals across 2025 are not comparable (hotel figures are). A comune without figures returns an empty list in serie with a nota, and a range outside its years with data or an unknown code returns an error that says what to pass. Read-only, public, no authentication; 30 requests per minute per client, shared across tools.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "cod_istat": "<cod_istat>"
    },
    "name": "leggi_serie_comune"
  }
}

Input Schema

NameRequiredDescriptionDefault
a_annoNoLast year to include, e.g. 2024, not before `da_anno`; default: the latest year with data. A range with no year of data returns an error that gives the years.
da_annoNoFirst year to include, e.g. 2015; default: the first year with data.
cod_istatYes6-digit ISTAT code of the comune as a string, leading zeros kept ("058091" is Roma); it comes from cerca_comune.

Output Schema

NameRequiredDescriptionDefault
nomeYesOfficial name of the comune.
notaYesNotes in English on reading the series (the change of scope above, a comune without figures, or a range without a year of figures); null otherwise.
fonteYesSource to cite with the figures: processed by DatiTuristici.it from institutional data (ISTAT).
serieYesOne row per year with movement figures, oldest first, from `da_anno` to `a_anno`; yearly figures only. An empty list when the comune has none, or none in that range (`nota` then lists the years that have figures).
schedaYesLink to the comune's public page on datituristici.it, to cite.
regioneYesRegion as recorded by ISTAT (Bolzano and Trento are provinces of TRENTINO-ALTO ADIGE); null if not recorded.
cod_istatYes6-digit ISTAT code of the comune, as a string with leading zeros kept.
provinciaYesProvince (or metropolitan city) as recorded by ISTAT; null if not recorded.
anno_discontinuitaYes2025 when the series reaches it: from 2025 ISTAT counts include privately rented holiday flats, so totals and non-hotel figures are not comparable with years before 2025 (hotel figures are). Null when every row is before 2025.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses what an agent actually needs: row ordering (yearly, oldest first), the 2025 ISTAT counting change flagged via anno_discontinuita and nota, empty-list-with-nota for comuni without figures, error behavior for out-of-range or unknown codes, and the 30 req/min shared rate limit.

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

Conciseness4/5

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

Dense but front-loaded: purpose first, then usage routing, then behavior and caveats, then access constraints. Every sentence carries operational information, though the ISTAT-2025 discontinuity clause is somewhat compressed.

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 an output schema present, return values need no explanation, and the description still covers the edge cases an agent would otherwise get wrong: defaults, empty results vs errors, and incomparability across 2025. Nothing material is missing for correct invocation.

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 description coverage is 100%, including defaults for da_anno/a_anno and the cod_istat pattern and provenance, so the schema carries the parameter burden. The description reinforces the cod_istat source and the range-error case but adds no syntax or semantics beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource (yearly series of presenze and arrivi for one comune), the split by resident/foreign guests, and the time granularity. This clearly distinguishes it from leggi_dati_comune (single year, capacity, population) and confronta_comuni (several comuni).

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?

Explicitly names the when (trend of one comune, using a 6-digit cod_istat from cerca_comune) and the when-not, routing to leggi_dati_comune for one year/capacity/population and confronta_comuni for multiple comuni. Nothing is left to inference.

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.

Resources