Skip to main content
Glama

Expat Living Italy

Get one region's profile

get_region
Read-onlyIdempotent

One Italian region (slug such as abruzzo or friuli-venezia-giulia, or its name): population, foreign residents by citizenship (citizenship, not birthplace), seismicZones (a count of its comuni per official seismic zone, never an average), the region-grain map layers (healthcare scores), its provinces (look each up with get_province) and how much of the region meets each verified tax regime (places, not people). Trentino-Alto Adige/Südtirol is scored by autonomous province, so its regional healthcare value is null with a reason: use get_province for Bolzano and Trento. A section a source lacks is null and listed in missingSections: report it as missing.

Input Schema

NameRequiredDescriptionDefault
slugYesA region's slug, e.g. "abruzzo" or "friuli-venezia-giulia", or its name. Find it in a comune's `region` or a province's `regionSlug`.

Output Schema

NameRequiredDescriptionDefault
layersYesEvery region-grain map layer (healthcare scores) for this region. Trentino-Alto Adige/Südtirol is scored by autonomous province, so its regional value is null with a reason: look up Bolzano and Trento with GET /province/{code}. Province- and comune-grain layers are not rolled up here.
regionYes
populationYesSum of the region's comuni.
taxRegimesYesVerified regimes with at least one qualifying comune here. Places, not people; a regime absent here is not a no.
attributionYes
seismicZonesYesHow this region's comuni are spread across the official seismic zones: a count per zone, never an average.
missingSectionsYesEvery part of this profile a source has no figure for, with why.
placesNotPeopleYes
foreignResidentsByCitizenshipYesCitizenship, not birthplace, and only the citizenships this site tracks, so a floor. Summed over the comuni ISTAT has a row for: `coverage` says how many that is, and a comune with no row adds nothing rather than a zero.
foreignResidentsAllCitizenshipsYesISTAT's own all-citizenship total (citizenship, not birthplace), summed over the comuni that have one; `coverage` says how many.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already mark this as a safe read operation, and the description adds substantial behavior detail: sections may be null and listed in missingSections, seismicZones is a count per zone rather than an average, tax regime coverage is by places rather than people, and the autonomous-province scoring exception explains null regional healthcare values.

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?

The description is front-loaded with the core resource and slug format, then proceeds through output nuances. It is dense and long for one paragraph, but most sentences carry useful information rather than 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?

Given the single-parameter schema, output schema, and read-only annotations, the description is complete enough for correct invocation. It explains the special null/missing-section behavior and the Trentino-Alto Adige/Südtirol exception, which are not obvious from structured fields.

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%, so the schema already documents the single slug parameter, its examples, and its pattern. The description repeats slug examples but does not meaningfully extend the parameter semantics beyond the schema.

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 identifies a specific tool for retrieving one Italian region's profile and enumerates the resources it returns. It also distinguishes this tool from get_province for province-level data, giving an agent a clear basis for selection.

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

Usage Guidelines4/5

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

It explicitly routes province lookups to get_province and explains the Trentino-Alto Adige/Südtirol exception, which requires using get_province for Bolzano and Trento. It does not fully specify when not to use this tool versus every other sibling, but the main alternatives are clear.

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