Skip to main content
Glama

Server Details

Compute, decode and verify the Italian codice fiscale; codici catastali of every era.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation4/5

The four tools have mostly distinct purposes: computation, decoding, verification, and place lookup. Decode and verify overlap somewhat because both validate format and check character, but the descriptions make clear that decode extracts information while verify performs layered validation. An agent can reliably choose between them.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: compute_codice_fiscale, decode_codice_fiscale, verify_codice_fiscale, and lookup_place. The shared suffix for the three codice fiscale operations makes the grouping obvious.

Tool Count5/5

Four tools is well scoped for a focused codice fiscale utility. Each tool covers a distinct operation, and there is no unnecessary bloat.

Completeness4/5

The surface covers the core lifecycle: compute a code, decode it, verify it, and resolve birth places. Minor gaps remain, such as no explicit support for generating omocodia variants mentioned in the description. These are workarounds or edge cases rather than blockers for typical use.

Available Tools

4 tools
compute_codice_fiscaleCompute a codice fiscaleA
Read-onlyIdempotent
Inspect

Compute the Italian codice fiscale (tax code) of a person from surname, name, sex, birth date and birth place, with the D.M. 23/12/1976 rules. The place can be a comune ('Roma', 'Castro (LE)'), a foreign state ('Francia') or a codice catastale ('H501'); the code valid on the birth date is used. Returns the 16 characters and why each group has its value. The Agenzia delle Entrate may assign an omocodic variant: only it confirms a code.

NameRequiredDescriptionDefault
sexYesM or F.
nameYesGiven name(s) (nome), all of them.
surnameYesSurname (cognome), as on the document.
birth_dateYesBirth date, YYYY-MM-DD (DD/MM/YYYY accepted).
birth_placeYesComune (with province if ambiguous), foreign state, or codice catastale / Z-code.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/closed-world, and the description adds genuinely new behavior: the return payload is the 16 characters plus a per-group explanation, and the result is non-authoritative because of omocodice variants that only the Agenzia delle Entrate can settle. The rule that the catastale code valid on the birth date is used is a real behavioral detail, not a restatement.

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?

Three tight sentences, front-loaded with what is computed and from what, then the place-resolution rule, then the return shape and the authority caveat. No filler and nothing redundant with the schema.

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?

No output schema exists, and the description compensates by describing the return value (16 characters plus per-group reasoning) and the non-definitive nature of the result. For a five-parameter, deterministic derivation tool this covers everything an agent needs before calling.

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 coverage is 100%, so the baseline is 3; the description earns an extra point by explaining that birth_place accepts a comune with or without province, a foreign state, or a codice catastale/Z-code, and that the historical code at the birth date is applied — semantics the schema only gestures at.

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?

Specific verb (compute) plus a precisely scoped resource (the Italian codice fiscale) and an explicit standard (D.M. 23/12/1976) and full input list. Against siblings decode_/verify_codice_fiscale the direction of derivation (person data → code) is unmistakable from the first clause.

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?

Usage context is clear: derive a code from personal data, with place formats enumerated and support for the catastale code in force at the birth date. It never explicitly routes the agent to decode_codice_fiscale or verify_codice_fiscale, but the closing note that only the Agenzia delle Entrate confirms a code implies where verification belongs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_codice_fiscaleDecode a codice fiscale (inverso)A
Read-onlyIdempotent
Inspect

Read back a codice fiscale: sex, birth date (one or two possible centuries), birth comune or foreign state valid on that date, the consonant codes of surname and name, and omocodia. The full name cannot be recovered from a code. Fails with the reason when the format or the check character is wrong.

NameRequiredDescriptionDefault
codeYesCodice fiscale, 16 characters (spaces and lowercase accepted).

TDQS

A4.2/5.0
Behavior4/5

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

With annotations already declaring readOnly, idempotent, and closed-world, the description adds meaningful behavior: which fields come back, the century ambiguity, that omocodia is reported, and that failures return a reason distinguishing format errors from check-character errors. It does not mention output shape or how the two-century case is represented, which is the main remaining gap.

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?

Three tightly packed sentences, front-loaded with the returned fields, followed by the key limitation and the failure mode. No filler; each sentence adds distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must convey return content, which it does by enumerating every decoded field plus the error behavior. What is missing is the concrete return structure and how ambiguous centuries/omocodia are encoded in the response.

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 single 'code' parameter already documents format, length, and accepted lowercase/spaces. The description adds no syntax or handling detail beyond that, so the schema carries the full parameter burden.

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 ('Read back a codice fiscale') and immediately enumerates the decoded fields, so the agent knows exactly what it gets. The inverse relationship to compute_codice_fiscale (and the distinction from verify_codice_fiscale) is clear from the decode framing.

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?

Implied usage is clear: use this to extract information from an existing code, not to validate-only or generate one. It does not explicitly name compute_codice_fiscale or verify_codice_fiscale as alternatives, nor state when to prefer them, so routing is inferred rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_placeFind the codice catastale of a placeA
Read-onlyIdempotent
Inspect

Search the 15,000 comuni of every era and the foreign states of the ANPR archive by name or by code (codice catastale like H501, Z-code like Z110). Returns up to 20 places with their province and the dates their code was valid. Give a date to keep only the places valid on it.

NameRequiredDescriptionDefault
qYesName ('Roma', 'Sant Angelo') or code ('H501', 'Z110').
dateNoOptional date YYYY-MM-DD: only places valid on that day.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, closed-world safety profile, so the description's job is to add context — and it does: it discloses the 20-result cap, that the registry spans 'every era' including historical comuni, and that each result carries province and validity dates. Only minor gaps remain (no pagination or truncation guidance beyond the cap).

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?

Three tight sentences, front-loaded with the searchable universe and result shape, ending with the date-filter hint. No sentence is filler.

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?

There is no output schema, so the description carries the return-value burden — and it does, specifying result count cap, fields (province, validity dates), and the record universe. An agent has everything needed to call this correctly.

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 agent already knows 'q' accepts names or codes and 'date' is an optional YYYY-MM-DD validity filter. The description adds the search domain ('15,000 comuni of every era and foreign states'), which helps but mostly restates the schema's own examples and format hints.

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 (search/lookup) and resource (comuni and foreign states in the ANPR archive) and names the exact identifiers returned (codice catastale such as H501 or Z110). It is clearly distinguishable from the sibling compute/decode/verify codice fiscale tools, which act on tax codes rather than place registries.

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?

Explains the two search modes (by name or by code) and explicitly tells the agent to supply a date to narrow results to places valid on that day. It does not name when to prefer a sibling or any exclusions, but the usage context is clear for a self-contained lookup tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_codice_fiscaleVerify a codice fiscaleA
Read-onlyIdempotent
Inspect

Check that a codice fiscale is well formed, layer by layer: format, check character, a real birth date, a place code valid on that date, and optionally the surname and name letters. It says whether the code is written correctly, not whether the Agenzia delle Entrate has assigned it (only its own service does).

NameRequiredDescriptionDefault
codeYesCodice fiscale, 16 characters (spaces and lowercase accepted).
nameNoOptional name to match against characters 4-6.
surnameNoOptional surname to match against characters 1-3.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent and non-open-world, so the safety profile is covered. The description adds genuinely useful non-obvious context: the check is structural only and a passing code does not mean the code was issued. It does not say whether a name/surname mismatch fails the whole check or is reported separately.

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?

Front-loaded with the action and the checklist of layers, followed by the important scope caveat. The single long sentence with an embedded parenthetical is dense but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description leaves the result shape ambiguous: 'layer by layer' implies a per-layer breakdown while 'it says whether the code is written correctly' implies a single verdict. For a diagnostic validation tool, stating whether failures are reported per layer would complete the picture.

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 already state that name maps to characters 4-6 and surname to characters 1-3. The description's mention of 'surname and name letters' restates that, adding only the notion that these are an optional extra layer, not actual syntax or behavior.

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 (check a codice fiscale is well formed) and enumerates exactly what layers are validated: format, check character, birth date, place code valid on that date, and optional name/surname letters. The explicit negative scope ('not whether the Agenzia delle Entrate has assigned it') separates it from both the encode/decode siblings and any authoritative registry lookup.

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?

Clear that this is a syntactic/semantic validation rather than a registration check, and 'optionally the surname and name letters' tells the agent when the two optional parameters come into play. It stops short of naming compute_codice_fiscale or decode_codice_fiscale as the alternatives when the agent instead wants to generate or extract fields.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • First observedcompute_codice_fiscale
    • First observeddecode_codice_fiscale
    • First observedlookup_place
    • First observedverify_codice_fiscale

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to work with Italian FatturaPA electronic invoices and the SDI exchange system: extracting invoice data, running structural XML checks, detecting anomalies, aggregating multi-invoice reports, looking up SDI error codes offline, and verifying Italian or EU VAT numbers via VIES. Installs in one line and runs locally with fail-closed file access so untrusted documents can be processed safely.
    7
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for Italian cadastral, geospatial and real estate data (catasto) for AI agents: geocoding on 18.7M+ addresses, 85M+ parcel profiles, risk, solar potential, valuations, administrative lists. Free Zornade API key.
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching Italian national legislation through Normattiva's Open Data, resolving exact URN:NIR citations, and reading the original-language text of any article as it stood on a given date. Publication, emanation, and in-force dates are returned separately, so historical (multivigenza) versions of laws, decree-laws, legislative decrees, the Constitution, and regulations can be retrieved without hand-building citation suffixes.
    223 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Validates Latin American tax, ID and bank numbers (CUIT, CUIL, CPF, CNPJ, RFC, CURP, RUT, NIT, RUC, CLABE, CBU) with exact check-digit rules.
    4
    157 PyPI
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources