Imperio — Italian Tax & Compliance Tools
Server Details
Italian tax + NIS2 scope: Codice Fiscale, P.IVA, IBAN, ATECO, IMU, F24, FatturaPA. Free, no LLM.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 23 of 23 tools scored. Lowest: 3.9/5.
Tools are mostly distinct, targeting specific tax/compliance operations. The pair 'parse_fatturapa' and 'parse_verify_fatturapa' are similar but differentiated by the verification step. The detailed descriptions further reduce ambiguity.
Names follow a consistent verb_noun pattern with prefixes like 'calc_', 'validate_', 'lookup_', 'parse_', 'nis2_', etc. Minor deviations exist (e.g., 'compose_f24' vs 'calc_forfettario', 'intrastat_compose' vs 'intrastat_periodicity') but overall the pattern is clear.
With 23 tools, the set is on the heavier side for a single server, covering many subdomains of Italian tax and compliance. While each tool seems purposeful, the count exceeds the typical well-scoped range (3-15), making it slightly overwhelming.
The tool surface covers a wide array of Italian tax and compliance needs: tax calculations, F24 composition, INTRASTAT, ATECO, NIS2, FatturaPA, and validations. Minor gaps exist (e.g., no IRPEF or IRAP calculators), but the core tax workflows are well supported.
Available Tools
23 toolscalc_forfettarioCalcolatore Regime ForfettarioARead-onlyIdempotentInspect
Calcola imposta sostitutiva e contributi INPS del regime forfettario italiano dal fatturato e (opzionale) codice ATECO. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| ateco | No | Codice ATECO da cui derivare il coefficiente di redditività. ALTERNATIVO a `coefficiente`: uno dei due è obbligatorio (senza, il calcolo non ha coefficiente e il tool risponde «Fornire 'ateco' oppure 'coefficiente'»). | |
| ricavi | Yes | Ricavi/compensi annui in euro. | |
| startup | No | Aliquota startup 5% per i primi 5 anni (default false → 15%). | |
| coefficiente | No | Coefficiente di redditività in % (override manuale). ALTERNATIVO ad `ateco`: uno dei due è obbligatorio. | |
| riduzione_35 | No | Riduzione contributiva INPS del 35% (artigiani/commercianti). | |
| gestione_inps | No | Gestione previdenziale INPS/cassa (opzionale). | |
| contributi_cassa_privata | No | Contributi cassa privata già versati, in euro (opzionale). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that the tool is 'Gratis (€0), deterministico, nessun login richiesto', which provides extra behavioral context beyond the annotations. However, it does not describe output format or edge-case behavior, so it offers modest added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence defining the main purpose, followed by a short second sentence with practical attributes (free, deterministic, no login). It is front-loaded and contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich schema descriptions and strong annotations, the description is largely complete for a calculator tool. It states what is computed and key usage constraints (free, no login), though it does not detail the exact output structure, which is not provided by an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have complete descriptions in the schema (100% coverage), so the baseline is 3. The description merely restates that the tool uses 'fatturato' and 'codice ATECO' without adding new parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'calcola' and clearly identifies the resource (imposta sostitutiva e contributi INPS) within the Italian regime forfettario. It also mentions the key inputs (fatturato, codice ATECO), which differentiates it from sibling calculators for other tax regimes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for regime forfettario calculations, but it does not explicitly state when to use it over alternatives like calc_iva or calc_imu, nor does it mention exclusions or prerequisites. Usage context is inferred from the name and mention of 'regime forfettario italiano', but no explicit alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_imuCalcola IMUARead-onlyIdempotentInspect
Calcola l'IMU italiana (L.160/2019) per fabbricati (da rendita catastale + categoria), terreni agricoli (da reddito dominicale) e aree edificabili (da valore venale), con acconto/saldo. L'aliquota (‰) è quella deliberata dal Comune. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| detrazione | No | Detrazione in euro (solo fabbricati; es. 200 per abitazione principale di lusso). | |
| mesi_possesso | No | Mesi di possesso nell'anno (default 12). | |
| tipo_immobile | No | Tipo immobile → seleziona la formula (default abitazione_non_principale). | |
| valore_venale | No | Aree edificabili: valore venale in comune commercio al 1° gennaio (€). OBBLIGATORIO con `tipo_immobile: area_edificabile`. | |
| aliquota_permille | Yes | Aliquota deliberata dal Comune, in per mille (es. 8.6 per 8,6‰). | |
| rendita_catastale | No | Fabbricati: rendita catastale annua in euro (da visura). OBBLIGATORIA per tutti i tipi diversi da `terreno_agricolo` e `area_edificabile` — cioè anche per il tipo di default `abitazione_non_principale`. | |
| quota_possesso_pct | No | Quota di possesso in % (default 100). | |
| reddito_dominicale | No | Terreni agricoli: reddito dominicale da visura (base = ×1,25×135). OBBLIGATORIO con `tipo_immobile: terreno_agricolo`, tranne quando il terreno è esente (vedi i due flag). | |
| categoria_catastale | No | Categoria catastale per i fabbricati (default A). Determina il moltiplicatore. | |
| esente_montano_isola | No | Terreni: in comune montano/collinare o isola minore → esente. | |
| coltivatore_diretto_iap | No | Terreni: coltivatore diretto/IAP iscritto alla previdenza agricola → esente. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds valuable behavioral context: free (€0), deterministic, and no login required. It does not describe the output format, but this is a minor gap given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and packs all key facts: purpose, supported use cases, rate source, and behavioral traits. It is front-loaded with the verb and resource, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the absence of an output schema, the description explains the core calculation scope and legal reference. The schema fills in parameter details. A minor gap is the lack of any statement about what the tool returns (e.g., amount in euros, breakdown), but overall the context is sufficient for a complex 11-parameter calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already has detailed descriptions (e.g., aliquota_permille, rendita_catastale, conditional requirements). The tool description adds only high-level category info and the legal basis, which does not materially go beyond the schema's parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Calcola l'IMU italiana' and enumerates the exact property categories (fabbricati, terreni agricoli, aree edificabili). This clearly differentiates it from sibling calculators like calc_iva or calc_forfettario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: for Italian IMU calculation with specific property types and the municipality rate. It does not explicitly name alternatives or exclusions, but the context is unambiguous enough for an agent to select it over sibling tax tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_ivaCalcola IVAARead-onlyIdempotentInspect
Calcola l'IVA italiana su un imponibile (aliquote 22/10/5/4/0/esente/fuori campo), con ritenuta d'acconto opzionale (autonomi 20%, agenti 11,5%) e regimi non imponibili (intra-UE, export extra-UE). Gestisce le DUE basi imponibili della fattura di un professionista: il contributo integrativo della cassa entra nella base IVA ma NON in quella della ritenuta, la rivalsa INPS in entrambe; base_iva e base_ritenuta sono sempre esposte separatamente. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| imponibile | Yes | Compenso/corrispettivo in EUR (es. 1000), AL NETTO del contributo integrativo cassa e della rivalsa INPS: quelli si aggiungono con i due campi dedicati. | |
| aliquota_iva | No | Aliquota IVA (default 22). | |
| con_ritenuta | No | Applica la ritenuta d'acconto (default false). | |
| tipo_ritenuta | No | Tipo ritenuta se con_ritenuta=true (autonomo 20% | agente 11,5%). | |
| tipo_operazione | No | Tipo operazione (default b2b). intraUE/extraUE azzerano l'IVA (non imponibile). | |
| rivalsa_inps_pct | No | Aliquota % della rivalsa INPS gestione separata addebitata in fattura (default 0). Per legge 4 (art. 1 c. 212 L. 662/1996). Entra in ENTRAMBE le basi. | |
| contributo_integrativo_pct | No | Aliquota % del contributo integrativo della cassa professionale (default 0 = nessuna cassa). Tipicamente 4; 5 per i geometri; 2 per ENPAP/ENPAV — leggila dal regolamento della cassa: il tool non la deduce da ATECO. Entra nella base IVA ma NON in quella della ritenuta. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description matches annotations (readOnly, idempotent, non-destructive) and adds rich behavioral details: handling of base_iva/base_ritenuta, inclusion rules for INPS and contributo integrativo, and deterministic nature. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences pack essential information but are slightly dense. Front-loaded with purpose (Calcola l'IVA). Every sentence earns its place; could be restructured for quicker scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, 100% schema coverage, and no output schema, the description explains the core logic and edge cases well. Lacks explicit output format description, but the tool is deterministic and calculation-focused.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by explaining how parameters interact (e.g., contributo integrativo enters IVA base but not ritenuta base). This clarifies the calculation logic beyond schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it calculates Italian VAT (Calcola IVA) with specific rates and optional withholding. Distinguishes from sibling tools like calc_forfettario or calc_reverse_charge by focusing on IVA calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for IVA calculation, mentions it's free and deterministic, and explains the dual-base logic. Lacks explicit when-not-to-use but implies alternatives through sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_reverse_chargeReverse charge (inversione contabile)ARead-onlyIdempotentInspect
Calcola l'IVA che il CESSIONARIO deve autoliquidare in regime di inversione contabile e restituisce gli obblighi delle due parti con la norma applicabile. Distingue i tre casi che si confondono più spesso: reverse charge INTRACOMUNITARIO (cedente UE non-IT — art. 46 DL 331/93 per i beni, art. 17 c. 2 DPR 633/72 per i servizi), reverse charge INTERNO (cedente italiano — art. 17 c. 6, che NON è generalizzato: vale solo in settori tassativi come subappalti edili, rottami, pulizia edifici, elettronica) e paese non-UE (errore esplicito, non un ramo implicito). Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| imponibile | Yes | Imponibile della fattura in EUR. | |
| aliquota_iva | No | Aliquota IVA da autoliquidare (default 22). | |
| paese_cedente | Yes | Codice ISO2 del paese del CEDENTE: uno Stato membro UE (es. DE, FR, ES; 'EL' o 'GR' per la Grecia; 'XI' per l'Irlanda del Nord) per il reverse charge intracomunitario, oppure 'IT' per quello interno. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context: free (€0), deterministic, no login required, and detailed case distinctions with legal citations. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but packs essential information: main function, case distinctions, legal articles, cost, and determinism. It is efficiently written but could benefit from bullet points for legibility. It is not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (three reverse charge cases with legal references, no output schema), the description is complete. It explains what the tool does, when to use each case, and additional properties (free, deterministic, no login). No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% description coverage for all 3 parameters, but the description adds significant meaning: explains 'imponibile' as taxable amount in EUR, clarifies 'paese_cedente' with specific ISO2 examples and each case's legal basis, and notes the default for 'aliquota_iva' (22). This goes well beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it calculates VAT under reverse charge regime, distinguishes three specific cases (intra-community, internal, and non-EU error), and returns obligations with legal references. This is highly specific and distinguishes from sibling tools like calc_iva or calc_split_payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly details the three confusing cases and provides legal article references, giving clear context for when to use the tool. It does not explicitly state when not to use it or name alternative tools, but the context is sufficient for an agent to determine appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calc_split_paymentSplit payment (scissione dei pagamenti)ARead-onlyIdempotentInspect
Calcola la scissione dei pagamenti per le forniture alla Pubblica Amministrazione (art. 17-ter DPR 633/72): il fornitore fattura imponibile + IVA ma incassa dalla PA il SOLO imponibile, mentre l'IVA la versa la PA direttamente all'Erario. Restituisce i due importi separati, l'impatto di liquidità per il fornitore e le istruzioni FatturaPA (EsigibilitaIVA=S; NON si usano i codici Natura N6, che sono solo del reverse charge). Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| imponibile | Yes | Imponibile della fornitura alla PA in EUR. | |
| aliquota_iva | No | Aliquota IVA esposta in fattura (default 22). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by stating it's free, deterministic, requires no login, and explains the cash flow impact for the supplier. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise for the complexity, front-loaded with the concept, and efficiently packs output details and usage notes in one sentence. Slightly long but justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description fully describes return values (separate amounts, liquidity impact, FatturaPA instructions). It covers regulatory context, usage constraints, and behavioral traits completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning: imponibile is the taxable amount, aliquota_iva defaults to 22 and lists allowed values, and it clarifies the output (two separate amounts, liquidity impact, FatturaPA instructions).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: calculating split payment for Italian public administration supplies (art. 17-ter DPR 633/72). It explains the mechanism, output, and distinguishes from reverse charge (sibling calc_reverse_charge exists).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use (for PA supplies) and provides specific instructions (EsigibilitaIVA=S, not using Natura N6). It implicitly tells when not to use (not for reverse charge).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compose_f24F24 Precompilato (righe Erario / INPS / IMU)ARead-onlyIdempotentInspect
Compone le RIGHE del modello F24 (sezione Erario, INPS, IMU) con i codici tributo e le causali ufficiali, a partire dagli importi già calcolati: imposta sostitutiva e contributi del regime forfettario (codici 1790/1791/1792, causali INPS PXX/AF/AP/CF/CP) oppure IMU (3912/3918/3914/3916, con lo split gruppo D 3925 Stato / 3930 Comune e il codice ente catastale del Comune) oppure l'IMPOSTA DI BOLLO sulle fatture elettroniche di un trimestre (codici 2521/2522/2523/2524, scadenze 31/05 · 30/09 · 30/11 · 28/02, con la regola di differimento sotto 5.000 €). Restituisce righe strutturate (sezione, codice, anno, importo, scadenza indicativa) + una resa testuale. COMPONIBILE: l'input tipico sono gli output di calc_forfettario (imposta_sostitutiva.importo, contributi_inps), calc_imu (imu_dovuta, acconto_giugno, saldo_dicembre) e parse_fatturapa (quante fatture hanno bollo_analisi.dovuto = true). NON genera il modello ministeriale F24 — né PDF né facsimile ufficiale: è una compilazione INDICATIVA che non sostituisce il commercialista né la verifica su Agenzia delle Entrate. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| imu | No | Richiesto quando kind='imu'. Campi dall'output di calc_imu. | |
| kind | Yes | Dominio da comporre: 'forfettario' (Erario + INPS), 'imu' (sezione IMU e altri tributi locali) oppure 'bollo' (imposta di bollo sulle fatture elettroniche di un trimestre). | |
| bollo | No | Richiesto quando kind='bollo'. Chiude la catena parse → bollo → F24: conta quante fatture del trimestre risultano soggette a bollo secondo `parse_fatturapa` (campo `bollo_analisi.dovuto` di ciascuna fattura) e componi la riga di versamento. | |
| forfettario | No | Richiesto quando kind='forfettario'. Campi dall'output di calc_forfettario. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses multiple behavioral traits: determinism, no login required, free usage ('Gratis (€0)'), and the return format ('righe strutturate ... + una resa testuale'). It also clarifies the non-official nature of the output, which is important context the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Despite being long, the description is dense and well-structured: it starts with the core purpose, then covers the three modes with their codes and deadlines, the return type, the expected input chain, and finally the caveats. Every sentence adds valuable information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's three-mode complexity and the absence of an output schema, the description covers all modes concretely (codes, deadlines, split rules), states the output structure (structured rows + textual rendering), and identifies the exact upstream tools that produce the inputs. It also sets expectations about what it does not do, making the description complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed per-field mappings to calc_* outputs, so the baseline is 3. The description adds high-level rules such as IMU split and bollo deferral, but most of the parameter-specific meanings are already in the schema, so the added semantic value is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Compone le RIGHE del modello F24' (composes the rows of the F24 model), and enumerates the exact domains (Erario, INPS, IMU, bollo) and their codes. It clearly distinguishes itself from sibling calculators by stating it works 'a partire dagli importi già calcolati' (from already-calculated amounts).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context by naming the typical input chain: 'l'input tipico sono gli output di calc_forfettario ... calc_imu ... parse_fatturapa'. It also provides an explicit exclusion: 'NON genera il modello ministeriale F24' and notes the result is an indicative compilation that does not substitute professional advice, offering clear boundaries for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_codice_fiscaleGenera Codice FiscaleARead-onlyIdempotentInspect
Genera un Codice Fiscale italiano da dati anagrafici (cognome, nome, data di nascita, sesso, e comune/stato estero di nascita — oppure direttamente il codice Belfiore). Restituisce il CF "base" (la variante omocodica in caso di collisione è assegnata dall'Agenzia). Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| nome | Yes | Nome. | |
| sesso | Yes | Sesso: M o F. | |
| comune | No | Comune (o stato estero) di nascita. In alternativa usa codice_belfiore. | |
| cognome | Yes | Cognome. | |
| provincia | No | Sigla provincia (es. PI) per disambiguare comuni omonimi. | |
| data_nascita | Yes | Data di nascita in formato GG/MM/AAAA (es. 10/12/1985). | |
| codice_belfiore | No | Codice catastale/Belfiore del luogo di nascita (alternativa precisa al comune). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, showing safety. The description adds useful context: it's free, deterministic, no login needed, and the generated CF is the base variant. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3-4 sentences), well-structured, and front-loaded with the core purpose. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers input requirements, behavior, limitations (base CF only), and operational details (free, deterministic, no login). It is complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning by listing key parameters and noting that comune and codice_belfiore are alternatives, and specifying the date format. This goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates an Italian Codice Fiscale from personal data, specifying the required fields and noting that the omocodic variant is handled by the agency. It is distinct from sibling tools which are mostly financial calculations and validations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use (to generate CF from anagrafic data) and implies that validation is a different tool (validate_codice_fiscale). However, it does not explicitly state when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intrastat_composeINTRASTAT: composizione e validazione delle sezioniARead-onlyIdempotentInspect
Compone le SEZIONI dell'elenco riepilogativo INTRASTAT a partire dalle righe di operazione, assegnando ciascuna riga alla sezione corretta (INTRA-1bis cessioni di beni, 1ter rettifiche, 1quater servizi resi, 1quinquies rettifiche, 1sexies call-off stock; INTRA-2bis acquisti di beni, 2ter, 2quater servizi ricevuti, 2quinquies) e VALIDANDOLE: Stato membro ammesso (l'Irlanda del Nord XI vale solo per i BENI; San Marino e Regno Unito sono fuori ambito), partita IVA della controparte (formato per Stato membro + checksum per quelle italiane), nomenclatura combinata a 8 cifre (o il codice semplificato 99500000), formato della natura della transazione e campi obbligatori per sezione. Restituisce le sezioni popolate, i totali, la scadenza e un prospetto testuale di controllo. ⚠️ NON genera il file TELEMATICO per il Servizio Telematico Doganale (Intr@Web / ADM): il tracciato record ufficiale non è riproducibile da fonte pubblica verificabile, quindi non è stato inventato. Quello che ottieni è struttura-dati + prospetto, da riportare sul canale ufficiale. Nessun default silenzioso: un dato obbligatorio mancante produce un errore esplicito, mai un riempimento arbitrario. Le partite IVA sono validate OFFLINE (formato e checksum): per la verifica VIES live della controparte usa verify_payee. Determina prima la periodicità con intrastat_periodicity. Indicativo, non sostituisce il commercialista o il doganalista. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| anno | Yes | Anno del periodo di riferimento (i modelli vigenti decorrono dal 2022). | |
| mese | Yes | Mese del periodo di riferimento (1–12). Con periodicità trimestrale individua il trimestre. | |
| righe | Yes | Righe di operazione da riepilogare. Massimo 25 sulla superficie anonima (l'API autenticata non ha questo limite). Righe di flussi/categorie diversi possono coesistere: ognuna finisce nella sua sezione. | |
| periodicita | No | Periodicità dell'elenco — determinala con `intrastat_periodicity`. Con 'nessun_obbligo' la chiamata viene RIFIUTATA con una spiegazione: sotto soglia l'elenco non va presentato. | mensile |
| partita_iva_dichiarante | No | Partita IVA italiana del soggetto obbligato (11 cifre, opzionale). Se fornita viene validata col checksum. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, and non-destructive, but the description adds substantial behavioral context: it does not generate the telematic file (because it is not publicly reproducible), it never fills missing data silently (explicit errors), it validates VAT offline, and it is deterministic with no login required. This exceeds the baseline set by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but front-loaded with the core purpose and validation scope, followed by important limitations, alternatives, and disclaimers. It is long, but for a complex tool with many validation rules, every sentence carries necessary information. It could be slightly more structured with bullet points, but it remains highly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description specifies exactly what the tool returns (populated sections, totals, deadline, control report), enumerates the validation rules and exclusions (e.g., XI only for goods, SM/GB rejected), and clearly states the major caveat about not generating the telematic file. Combined with the exhaustive input schema, the agent receives a complete operational picture even without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with detailed explanations of every parameter, including enums, patterns, and cross-field constraints. The tool description adds only high-level guidance like using intrastat_periodicity first and does not provide any field-specific semantics beyond what the schema already offers, so it does not meaningfully enhance the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: composing and validating INTRASTAT sections from operation rows, assigning each row to the correct section, and returning populated sections, totals, and a control report. It distinguishes itself from sibling tools by explicitly naming intrastat_periodicity and verify_payee for related but different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to determine periodicity first with intrastat_periodicity and to use verify_payee for live VIES, while this tool only validates offline. It also states that the tool does NOT generate the telematic file and that the official channel must be used, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intrastat_periodicityINTRASTAT: periodicità e scadenza di presentazioneARead-onlyIdempotentInspect
Determina se un soggetto deve presentare l'elenco riepilogativo INTRASTAT e con quale periodicità (mensile / trimestrale / nessun obbligo), a partire dagli ammontari dei quattro trimestri precedenti, e calcola la SCADENZA del periodo (giorno 25 del mese successivo, con slittamento se cade di sabato, domenica o festività nazionale italiana). Ogni flusso ha soglia e criterio propri, e li restituisce insieme alla FONTE normativa: cessioni di beni e servizi resi € 50.000 con criterio di SUPERAMENTO (>) → mensile se superata, altrimenti trimestrale; acquisti di servizi € 100.000 e acquisti di beni € 2.000.000 (soglia innalzata da € 350.000 dal periodo di riferimento 01/2026, Det. ADM 84415 del 03/02/2026) con criterio UGUALE O SUPERIORE (>=) → mensile se raggiunta, altrimenti NESSUN obbligo (per gli acquisti la periodicità trimestrale è stata abrogata). L'asimmetria > / >= è voluta e rispecchia le fonti. Indicativo: non sostituisce il commercialista o il doganalista. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| anno | Yes | Anno del periodo di RIFERIMENTO (non dell'invio). I modelli vigenti decorrono dal 2022. Determina quale soglia INTRA-2bis si applica (2.000.000 dal 2026). | |
| mese | Yes | Mese del periodo di riferimento (1–12). Se la periodicità risulta trimestrale, il trimestre viene dedotto da questo mese. | |
| flusso | Yes | 'cessioni' = operazioni attive, modelli INTRA-1 (beni ceduti / servizi resi); 'acquisti' = operazioni passive, modelli INTRA-2 (beni acquistati / servizi ricevuti). | |
| categoria | Yes | Categoria delle operazioni. Soglia e sezione del modello dipendono da questa. | |
| ammontari_trimestri_precedenti | Yes | Ammontari in EURO dei quattro trimestri PRECEDENTI per quel flusso+categoria, ordinati dal più recente al più remoto (es. [62000, 41000, 38000, 35000]). Ammessi da 1 a 4 valori: chi ha iniziato da poco ne ha meno, e la risposta lo segnala nelle note. La soglia si valuta sul MASSIMO, non sulla somma. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description fully discloses behavioral traits: deterministic, free, no login, deadline calculation with holiday shift, asymmetry of thresholds (>, >=). Annotations already declare readOnlyHint and idempotentHint, and the description adds valuable context without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose but is quite long and dense with regulatory details. While every sentence adds value, it could be more concise. Still well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 params, thresholds, date calculation), the description is very complete. However, there is no output schema, and the description only hints at return values (normative source, deadline) without full structure. A bit more clarity on output would elevate completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds substantial meaning: explains the ordering and interpretation of ammontari_trimestri_precedenti, the threshold logic, and the specific deadlines. It compensates for the lack of output schema with detailed behavioral information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool determines INTRASTAT submission periodicity and deadline based on previous quarters' amounts. It distinguishes itself from siblings like intrastat_compose and intrastat_reference by its specific role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use the tool (e.g., for checking periodicity) and notes it is indicative and not a substitute for professionals. However, it does not explicitly compare to sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intrastat_referenceINTRASTAT: tabelle di riferimento e soglie vigentiARead-onlyIdempotentInspect
Restituisce, senza alcun input, le tabelle di riferimento INTRASTAT: gli Stati membri ammessi con i loro codici, il caso dell'Irlanda del Nord (XI, solo beni) e i paesi fuori ambito (San Marino dal 01/10/2021, Regno Unito dal 01/01/2021), tutte le sezioni dei modelli con la loro descrizione, e OGNI soglia vigente con importo, criterio di confronto (> oppure >=), effetto e FONTE normativa puntuale — inclusa la soglia acquisti di beni innalzata a € 2.000.000 dal periodo 01/2026 (Det. ADM 84415 del 03/02/2026). Include anche il termine di presentazione e l'elenco ESPLICITO di ciò che questi strumenti NON producono (il file telematico ADM, le descrizioni dei codici natura della transazione, la verifica VIES live). Usalo per validare gli input prima di intrastat_compose, per popolare un form, o per citare la fonte di una soglia invece di ricordarla a memoria. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds value with 'Gratis (€0), deterministico, nessun login richiesto' and lists exclusions. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but every sentence adds specific detail. It is front-loaded with the main purpose and structured logically. A minor trim could improve conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and zero parameters, the description fully compensates by listing all return content and providing usage context. It also mentions sibling tool intrastat_compose for validation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters and 100% coverage trivially. Description adds no parameter info because none exist. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Restituisce, senza alcun input, le tabelle di riferimento INTRASTAT' clearly identifying the verb and resource. It details specific outputs (member states, thresholds, etc.) and distinguishes from sibling tools by noting it requires no input and provides reference data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance: 'Usalo per validare gli input prima di intrastat_compose, per popolare un form, o per citare la fonte di una soglia invece di ricordarla a memoria.' Also lists what it does NOT produce, helping the agent decide when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_atecoCerca codice ATECOARead-onlyIdempotentInspect
Cerca e valida un codice ATECO 2007 ISTAT e restituisce la descrizione dell'attività. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Il codice ATECO (solo cifre e punti, es. 62.01). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by declaring it's free and requires no login. Annotations already indicate readOnly, idempotent, non-destructive. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, informative sentences with no wasted words. Each sentence provides essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with one parameter and no output schema, the description is sufficient. It covers purpose, cost, determinism, and authentication requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter. The description adds minimal extra meaning (e.g., example format) beyond the schema constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool looks up and validates an ATECO 2007 ISTAT code and returns the activity description. It implicitly distinguishes from sibling 'search_ateco' which likely does a broader search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions it's free, deterministic, and requires no login, which gives context for when to use it. However, it does not explicitly state when not to use it or compare to alternatives like 'search_ateco'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_capCerca CAPARead-onlyIdempotentInspect
Restituisce l'area/provincia INDICATIVA di un CAP italiano, derivata dal prefisso a 2 cifre (NON il comune). Approssimativo: può essere impreciso per le grandi città e per le province istituite dopo il 2004 (MB, FM, SU, VB). Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| cap | Yes | Il CAP a 5 cifre (es. 20121). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds value beyond annotations by stating it is free, deterministic, no login required, and approximates based on the 2-digit prefix. It does not specify the exact return format or error behavior, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact paragraph of three sentences. It front-loads the main purpose, includes critical caveats, and has no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup with one parameter and no output schema, the description covers the purpose, limitations, and nature of the result. It lacks details on error handling for invalid CAPs, but given the tool's simplicity, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the parameter (5-digit CAP example). The description does not add new semantics to the parameter beyond what is in the schema; it only provides context about the 2-digit prefix derivation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the indicative area/province for an Italian CAP, derived from the 2-digit prefix. It uniquely identifies the tool's function among siblings, all of which are unrelated tax/commercial tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by explicitly noting the approximation and limitations (imprecise for large cities, post-2004 provinces). However, it does not explicitly say when to use or when to avoid, nor mention alternatives, but the siblings are unrelated so no direct alternative is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nis2_ambitoNIS2: ambito di applicazione e categoria del soggettoARead-onlyIdempotentInspect
Dice se un soggetto rientra nel campo di applicazione del D.Lgs. 138/2024 (NIS2) e se è soggetto ESSENZIALE o IMPORTANTE, citando ARTICOLO E COMMA per ogni passo del ragionamento. Quando manca un dato che cambierebbe la risposta restituisce esito: "indeterminato" e la DOMANDA da porre, invece di una risposta inventata. Le regole su cui si sbaglia più spesso, tutte applicate qui: (1) la soglia di INGRESSO è quella della PICCOLA impresa, non della media — si è dentro con occupati >= 50 OPPURE (fatturato > 10 M€ E bilancio > 10 M€) — quindi l'ambito è molto più largo di come viene raccontato; (2) per superare un massimale servono gli occupati sopra soglia OPPURE ENTRAMBI i valori finanziari sopra soglia: 30 dipendenti con 12 M€ di fatturato e 8 M€ di bilancio è ancora PICCOLA, quindi FUORI; (3) l'art. 3 §4 della raccomandazione 2003/361/CE è DISAPPLICATO (art. 3 c. 3): una partecipazione pubblica pari o superiore al 25% non fa perdere lo stato di PMI; (4) un soggetto dell'allegato II non è MAI essenziale per dimensione — l'art. 6 c. 1 lett. a) cita solo l'allegato I — nemmeno con migliaia di dipendenti. Non registra nulla presso l'ACN: è il pre-volo della dichiarazione, la cui valutazione preliminare è svolta automaticamente dalla piattaforma ACN (art. 10 c. 5 della determinazione). Indicativo, non è un parere legale. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| occupati | No | Numero di occupati (unità lavorative-anno). | |
| bilancio_eur | No | Totale di bilancio annuo in euro. | |
| tipologia_id | Yes | Id della tipologia dall'elenco ufficiale — ottienilo con `nis2_tipologie`. Es. 'I.1.a.1' (impresa elettrica), 'III.a.2' (Ministeri). NON è un codice ATECO. | |
| fatturato_eur | No | Fatturato annuo in euro. | |
| dati_consolidati | No | true se i valori dimensionali forniti sono GIÀ consolidati di gruppo. | |
| impresa_autonoma | No | false se il soggetto ha imprese collegate o associate: l'art. 3 c. 4 impone allora il consolidamento ex art. 6 §2 della raccomandazione. Omettilo se non lo sai — lo strumento chiede. Un superamento già visibile sui dati individuali resta valido (il consolidamento può solo aumentare i valori); un NON superamento no. | |
| individuato_da_acn | No | true se l'Autorità nazionale competente NIS ha notificato l'individuazione (art. 3 c. 13). Per l'allegato IV è LA condizione dell'ambito: senza, non è auto-valutabile e lo strumento lo dichiara invece di indovinare. | |
| soggetto_critico_cer | No | true se il soggetto è identificato come soggetto critico ai sensi del decreto che recepisce la direttiva (UE) 2022/2557 (CER): rientra ed è ESSENZIALE a prescindere dalla dimensione (art. 3 c. 5 lett. a; art. 6 c. 1 lett. b). | |
| criteri_impresa_collegata | No | Lettere dell'art. 3 c. 10 soddisfatte quando il soggetto è impresa collegata a un soggetto essenziale o importante: a) influenza dominante sulle decisioni relative alle misure di gestione del rischio; b) detiene o gestisce i sistemi da cui dipende la fornitura del servizio; c) ne effettua le operazioni di sicurezza informatica; d) gli fornisce servizi TIC o di sicurezza. Anche una sola lettera lo fa rientrare a prescindere dalla dimensione. | |
| prestatore_fiduciario_qualificato | No | Solo per i prestatori di servizi fiduciari: i QUALIFICATI sono essenziali a prescindere dalla dimensione (art. 6 c. 1 lett. d), i non qualificati no. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by explaining the tool is deterministic, free, requires no login, and does not record data. It also discloses that it returns 'indeterminato' when data is missing, which is not in annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is quite lengthy (multiple paragraphs) and includes detailed explanations of common mistakes. While informative, it could be more concise. However, the front-loading of the core function is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 10 parameters and no output schema, the description covers edge cases, common errors, and the conditions for each parameter. It is nearly complete for an AI agent to understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds significant context beyond the schema, such as how to obtain tipologia_id from nis2_tipologie, consolidation rules for impresa_autonoma, and interpretation of criterii_impresa_collegata. This enriches the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool determines if a subject falls under NIS2 scope and whether it is ESSENZIALE or IMPORTANTE, citing articles. It also distinguishes from siblings like nis2_tipologie by mentioning that tool for tipologia_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it is a preliminary evaluation tool, not a legal opinion. It explains when it returns indeterminate and asks for missing data. However, it does not explicitly state when to avoid using this tool compared to alternatives like nis2_reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nis2_referenceNIS2: soglie, regole e fontiARead-onlyIdempotentInspect
Restituisce, senza alcun input, le soglie dimensionali NIS2 con la formula esatta di superamento e la fonte (raccomandazione 2003/361/CE, allegato, art. 2 §1 e §2, riprodotto testualmente nelle note all'art. 6 in Gazzetta Ufficiale), la regola di ogni comma rilevante dell'art. 3 e dell'art. 6, i quattro criteri dell'impresa collegata, la finestra di registrazione sulla piattaforma ACN (dal 1° gennaio al 28 febbraio di OGNI anno: è ricorrente, non una scadenza singola) e l'elenco ESPLICITO di ciò che questo dominio NON copre. Include il caso dei settori 3 e 4 dell'allegato I (bancario e infrastrutture dei mercati finanziari), per i quali l'art. 3 c. 14 sostituisce l'art. 17 e i Capi IV e V con il regolamento (UE) 2022/2554 (DORA). Usalo per citare la fonte di una soglia invece di ricordarla a memoria. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral details: takes no input, deterministic, free, no login required. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but each sentence adds specific value, listing contents in a structured manner. It could be slightly more concise, but there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description comprehensively details what the tool returns, including thresholds, formulas, sources, and exclusions. It is fully adequate for a reference tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema coverage 100%). With 0 parameters, the baseline is 4. The description does not need to add parameter info, and it correctly avoids misleading statements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns NIS2 thresholds, exact formula, source, relevant articles, criteria, registration window, and exclusions. It uses a specific verb 'Restituisce' and distinguishes itself from sibling tools like nis2_ambito and nis2_tipologie by focusing on reference data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using the tool to cite thresholds instead of relying on memory. While it doesn't explicitly state when not to use it, the context clearly positions it as a reference tool, which is sufficient differentiation among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nis2_tipologieNIS2: elenco ufficiale delle tipologie di soggettoARead-onlyIdempotentInspect
Elenco ufficiale delle tipologie di soggetto degli allegati I–IV del D.Lgs. 4 settembre 2024 n. 138 (recepimento NIS2), verbatim dal testo di Gazzetta Ufficiale, con ricerca testuale. Serve a trovare il tipologia_id da passare a nis2_ambito. ⚠️ NON esiste alcuna mappa codice ATECO → tipologia, e questo strumento non ne usa una: la determinazione ACN sulla piattaforma digitale (art. 10 c. 2) tiene i codici ATECO e le tipologie di soggetto SEPARATI nella stessa dichiarazione, e l'ambito si determina sulla TIPOLOGIA, definita per rinvio a una norma UE. Dedurre l'ambito NIS2 da un codice ATECO significa applicare una regola che la fonte non contiene. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Ricerca testuale su testo della tipologia, settore e sottosettore (accenti e maiuscole ignorati; tutti i termini devono comparire). Es. 'cloud', 'energia elettrica', 'rifiuti'. Vuoto = tutto il catalogo. | |
| limit | No | Numero massimo di risultati (default 200). | |
| allegato | No | Filtra per allegato. I = settori ad alta criticità (51 tipologie); II = altri settori critici (15); III = pubbliche amministrazioni (15); IV = ulteriori tipologie, che rientrano solo se individuate dall'ACN (4). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds valuable behavioral details: free, deterministic, no login, search behavior (accent-insensitive, all terms must appear), and the critical caveat about no ATECO mapping. Adds meaningful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose, containing multiple warnings and explanatory sentences. While logical, it could be more concise by omitting redundant cautions. Front-loads purpose well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description implies the response includes `tipologia_id`. However, it does not specify the result structure (e.g., list of objects with fields). Adequate but could be more explicit about return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions. The description adds minor extra value: examples for `q`, default for `limit`, and counts per `allegato`. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is the official list of subject types from NIS2 annexes, with search capability. It explicitly positions itself as the tool to obtain `tipologia_id` for use with `nis2_ambito`, distinguishing its role among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance (find tipologia_id for nis2_ambito) and a clear when-not-to-use warning (no ATECO mapping exists). Does not list alternatives but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_fatturapaParser FatturaPA / SDIARead-onlyIdempotentInspect
Estrae dati strutturati (cedente, cessionario, righe, imposte) da un XML FatturaPA/SDI. Solo parsing deterministico — nessuna verifica VIES. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| xml_content | Yes | Il contenuto XML della fattura elettronica (FatturaPA/SDI). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds valuable non-obvious behavior: deterministic, free, no login required. This goes beyond what annotations convey. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose and outputs, then additional differentiators and constraints. Every sentence adds value; no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, no output schema), the description covers purpose, constraints, and cost/auth. It misses potential error cases or return format, but given context, it's largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for xml_content. The description reinforces that the parameter is the XML content but adds no additional format or constraints. Baseline 3 is appropriate as description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it extracts structured data (cedente, cessionario, righe, imposte) from FatturaPA/SDI XML. It explicitly distinguishes from the sibling tool parse_verify_fatturapa by noting 'no VIES verification', making the tool's purpose and boundaries unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies when to use this tool (deterministic parsing only) and explicitly contrasts with VIES verification, guiding the agent away from using it for verification tasks. It also mentions cost and auth constraints (free, no login). Lacks explicit 'when not to use' for other scenarios but sufficient for context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_verify_fatturapaFatturaPA: parse + verifica anti-frode del fornitoreARead-onlyIdempotentInspect
Estrae i dati strutturati da un XML FatturaPA/SDI E, nella stessa chiamata, verifica anti-frode la parte indicata (default: il CEDENTE, cioè il fornitore che incassa il bonifico). I dati verificati NON sono inferiti da un LLM: P.IVA, Codice Fiscale, ragione sociale e IBAN di pagamento sono estratti deterministicamente dall'XML, poi passati ai controlli: IBAN (checksum MOD-97 + banca dal codice ABI), P.IVA e CF (checksum) e — quando il servizio UE è raggiungibile — la ragione sociale reale via VIES live, confrontata con quella dichiarata in fattura. Restituisce il parse completo più supplier_verification con verdetto (ok / attenzione / alto_rischio) e red flag puntuali; se la fattura riporta più IBAN distinti lo segnala e abbassa il verdetto. È la difesa contro la truffa del cambio-IBAN sulle fatture passive. Come verify_payee fa I/O esterno (una sola interrogazione VIES per chiamata, non una per riga): se VIES è giù o il budget condiviso è esaurito il verdetto degrada ONESTAMENTE ad "attenzione", mai a un falso "ok". Gratis (€0), nessun login. NON sostituisce la verifica out-of-band (telefonata al fornitore su un numero già noto).
| Name | Required | Description | Default |
|---|---|---|---|
| party | No | Parte da verificare: 'cedente' = fornitore/chi riceve il pagamento (default, il caso anti-frode); 'cessionario' = cliente. L'IBAN viene raccolto solo per il cedente, perché è lui che incassa. | cedente |
| xml_content | Yes | Il contenuto XML della fattura elettronica (FatturaPA/SDI). Il .p7m va scompattato prima: qui si accetta XML testuale. | |
| expected_country | No | Paese atteso del fornitore in ISO2. Se omesso vale il paese dichiarato dalla fattura stessa (sede del cedente), e solo in sua mancanza 'IT'. Un IBAN estero su un fornitore atteso italiano è il campanello #1 della frode. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description goes well beyond this by disclosing: extraction is deterministic ('NON sono inferiti da un LLM'), external VIES call behavior with shared budget ('una sola interrogazione VIES per chiamata'), honest degradation to 'attenzione' when VIES is down or budget exhausted, and no login/free. It also explains the checks performed (IBAN MOD-97, P.IVA/CF checksum, VIES comparison). No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with the primary purpose and then systematically covers extraction, checks, return format, external I/O, cost, and a caveat. Every sentence contributes operational information (red flags, verdict values, budget constraints, out-of-band warning). It is appropriately structured for a complex tool, though slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description sufficiently covers return values ('Restituisce il parse completo più supplier_verification con verdetto (ok / attenzione / alto_rischio) e red flag puntuali'), input preprocessing (.p7m), failure modes, shared external I/O budget, and free/no-login access. This is complete for a tool with parsing and verification complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds meaningful context beyond the schema: it explains expected_country's fraud-flag role ('Un IBAN estero su un fornitore atteso italiano è il campanello #1 della frode'), clarifies that the default party 'cedente' is the supplier who receives payment, and notes that .p7m must be unpacked before passing xml_content. This elevates the value above the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Estrae i dati strutturati da un XML FatturaPA/SDI E, nella stessa chiamata, verifica anti-frode la parte indicata' — clearly defining a combined parse-and-verify action. It distinguishes itself from siblings like parse_fatturapa (parse-only) and verify_payee by framing itself as 'la difesa contro la truffa del cambio-IBAN sulle fatture passive'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('È la difesa contro la truffa del cambio-IBAN sulle fatture passive') and when not to rely on it exclusively ('NON sostituisce la verifica out-of-band (telefonata al fornitore su un numero già noto)'). It references verify_payee for comparison on external I/O but does not explicitly define alternatives like parse_fatturapa for parse-only needs, so it's clear but not fully exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_atecoCerca ATECO per attivitàARead-onlyIdempotentInspect
Ricerca full-text sui codici ATECO 2007/2022 ISTAT partendo dalla DESCRIZIONE dell'attività ("fotografo", "sviluppo software", "commercio abbigliamento") invece che dal codice. Case/accent-insensitive, con stemming e alias colloquiali per-mestiere; accetta anche un prefisso di codice. Usa questo quando il codice NON è noto — lookup_ateco serve al caso opposto (codice noto → descrizione). Risultati ordinati per pertinenza. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Attività da cercare, in italiano (es. 'fotografo', 'idraulico', 'consulenza informatica'). | |
| limit | No | Numero massimo di risultati (default 20). | |
| section | No | Filtra per sezione ATECO (lettera A–U, es. J = servizi di informazione e comunicazione, M = attività professionali). Opzionale. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint, idempotentHint, etc. Description adds critical context: stemmed search, alias support, deterministic, free, no login required. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no fluff. Front-loaded with purpose and key features. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter search tool with no output schema, the description covers behavior, constraints (auth, cost), ordering, and alternatives. Nothing missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds that the search is 'case/accent-insensitive, con stemming e alias per-mestiere', which enhances meaning for the 'q' parameter beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Ricerca full-text sui codici ATECO' using the description, and contrasts with sibling 'lookup_ateco'. Verb 'cerca' and resource 'codici ATECO' are clear, distinguishing from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly says when to use: 'quando il codice NON è noto' and points to 'lookup_ateco' for the opposite. Also details case-insensitivity, stemming, and alias handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_codice_fiscaleValida Codice FiscaleARead-onlyIdempotentInspect
Valida un Codice Fiscale italiano (formato + carattere di controllo, con gestione omocodia). Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| codice_fiscale | Yes | Il Codice Fiscale da validare (es. RSSMRA85T10A562S). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds valuable behavioral context: 'deterministico' reinforces idempotency, 'nessun login richiesto' clarifies auth requirements, and 'Gratis' indicates cost. These details go beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of a single informative sentence. Every word adds value: the action, resource specifics, key traits (deterministic, no login, free). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks any explanation of the return value or output format. For a validation tool, agents need to know whether it returns a boolean, error messages, or validated data. Without an output schema, the description should compensate but does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema includes a 100% descriptive parameter description. The tool description adds no extra information about the parameter beyond what the schema already provides, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Valida' and the resource 'Codice Fiscale italiano', adding specifics like format, check digit, and homocody management. This distinguishes it from sibling tools like 'generate_codice_fiscale'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives (e.g., validate_partita_iva, validate_iban). However, the name and description strongly imply its usage for Italian tax code validation, providing some implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_ibanValida IBANARead-onlyIdempotentInspect
Valida un IBAN (checksum MOD-97) e, per gli IBAN italiani, identifica la banca dal codice ABI. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | Yes | L'IBAN da validare (es. IT60X0542811101000000123456). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. The description adds behavioral context: it is free (possibly cost implication), deterministic (same input always same output), and requires no authentication. This goes beyond annotations by clarifying the operation's cost, determinism, and accessibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences containing only essential information. It front-loads the core function and then adds contextual details without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input schema and no output schema, the description could have specified the return value (e.g., validation result plus bank details). It mentions identifying the bank but does not describe the output format. This gap moderately impacts completeness for an agent that needs to understand what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the 'iban' parameter with max length and example. The description does not add further parameter details beyond the schema's information, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Valida' and the resource 'IBAN', specifies the MOD-97 checksum method, and adds the unique feature of identifying the bank for Italian IBANs. It effectively distinguishes this tool from sibling validation tools (e.g., validate_codice_fiscale) by naming a specific resource and operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context such as 'Gratis, deterministico, nessun login richiesto' but does not explicitly state when to use this tool versus the sibling validation tools. No 'when not to use' or alternative references are given. The guidance is implied by the resource name, but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_partita_ivaValida Partita IVAARead-onlyIdempotentInspect
Valida una Partita IVA italiana (11 cifre + checksum Luhn). Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| partita_iva | Yes | La Partita IVA da validare (11 cifre, es. 12345678903). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and idempotent behavior; description adds useful transparency about cost, determinism, and lack of authentication requirements, though it does not describe error handling or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence covering tool purpose and key attributes with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple validation tool with no output schema, the description is fairly complete, covering input format and behavioral traits, though it could mention the output (e.g., boolean success or error message).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear parameter description including example. The description adds no additional parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Valida una Partita IVA italiana' with specific format details (11 cifre + checksum Luhn), distinguishing it from sibling tools like validate_codice_fiscale or validate_iban.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context (free, deterministic, no login) but does not explicitly state when to use this tool versus alternatives or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_pecValida PECARead-onlyIdempotentInspect
Valida un indirizzo PEC italiano: formato + dominio confrontato con l'elenco dei provider certificati AGID (Aruba, InfoCert, Namirial, Poste, ecc.), con livello di confidenza. Gratis (€0), deterministico, nessun login richiesto.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | L'indirizzo PEC da validare (es. mario.rossi@pec.it). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds valuable context: cost (free), determinism, no login required, and that output includes a confidence level. This goes beyond annotations and fully informs the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently covers purpose, method, cost, determinism, and authentication. Every part adds value; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple validation tool with one parameter and strong annotations, the description is complete. It explains the input, output (confidence level), behavioral traits, and constraints. No missing essential information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'email' parameter. The description adds an example and explains the validation logic (format + domain against AGID list, confidence level), providing value beyond the schema's brief description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates an Italian PEC address by checking format and domain against AGID certified providers, returning a confidence level. It distinguishes itself from sibling validation tools (e.g., validate_codice_fiscale, validate_iban) by specifying the resource (PEC address) and the method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for validating PEC addresses but does not explicitly state when to use this tool over alternatives. Since no sibling tool performs PEC validation, the lack of explicit alternatives is acceptable, but guidelines like prerequisites or when not to use are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_payeeVerifica Fornitore (anti-frode pre-pagamento)ARead-onlyIdempotentInspect
Verifica anti-frode di un beneficiario PRIMA di pagare una fattura (contro la truffa del cambio-IBAN / Business Email Compromise). Controlli: IBAN (checksum MOD-97 + banca dal codice ABI), Partita IVA e Codice Fiscale (checksum), e — quando il servizio UE è raggiungibile — la ragione sociale reale via VIES live con match sul nome atteso. Restituisce un verdetto (ok / attenzione / alto_rischio) + i red flag puntuali. A differenza degli altri strumenti fa I/O esterno (VIES): se VIES è giù o il budget di verifica è temporaneamente esaurito, il verdetto degrada ONESTAMENTE ad "attenzione" (mai un falso "ok"). Gratis (€0), nessun login. NON sostituisce la verifica out-of-band (telefonata al fornitore su un numero già noto).
| Name | Required | Description | Default |
|---|---|---|---|
| iban | No | IBAN del beneficiario (es. IT60X0542811101000000123456). | |
| ateco | No | Codice ATECO dichiarato del fornitore (solo cifre e punti, opzionale). | |
| vat_number | No | Partita IVA con o senza prefisso paese (es. IT12345678901). | |
| expected_name | No | Ragione sociale attesa del fornitore, confrontata con quella ufficiale VIES. | |
| codice_fiscale | No | Codice Fiscale (persona fisica / ditta individuale). | |
| expected_country | No | Paese atteso del fornitore in ISO2 (default IT). Un IBAN estero è il campanello #1 della frode. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, idempotent, and non-destructive. The description adds crucial behavioral context: external VIES I/O, honest degradation to 'attenzione' when VIES is down or budget exhausted, the never-false-ok guarantee, free/no-login status, and the non-substitution warning. This richly complements the annotation hints without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact yet information-dense, covering purpose, checks, return verdict, external dependency, degradation behavior, cost, access, and a critical caveat in a few sentences. Every sentence earns its place with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description clearly states what the tool returns (verdict ok/attenzione/alto_rischio + red flags) and covers failure modes, limitations, and placement among alternatives. It is complete for a tool of this complexity—an agent knows how it behaves, when to use it, and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers each parameter with descriptions (100% coverage), so baseline is 3. The tool description adds extra semantic context about verification logic, such as IBAN MOD-97 and ABI checks, VIES live name matching, and expected_country defaulting to IT. It does not exhaustively tie every parameter to its checks, but it meaningfully enriches the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Verifica anti-frode di un beneficiario PRIMA di pagare una fattura', explicitly distinguishing it from the sibling validation tools by targeting BEC/IBAN-change fraud. It clearly names the resource (beneficiary) and the timing (before payment), going well beyond a generic verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly specifies when to use the tool ('PRIMA di pagare una fattura'), contrasts it with other tools ('A differenza degli altri strumenti fa I/O esterno (VIES)'), and explicitly states what it does NOT replace (out-of-band verification via phone). This gives an agent practical decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- FlicenseAqualityDmaintenanceEuropean business compliance suite for AI agents — 28 tools covering tax ID validation (PT, ES, FR, DE, IT, UK, NL), IBAN verification, EU VAT rates, invoice requirements, e-invoicing rules, payment terms, labor calendar helpers, VAT breakdown calculations and invoice schema validation for 18+ European countries.28
- FlicenseAqualityDmaintenanceEnables AI assistants to help compile the Italian Modello 730 income tax return by providing IRPEF calculations, deduction tools, and tax rule guidance.1222
- AlicenseAqualityCmaintenanceStructured business intelligence for AI agents. 5.5M verified entities across 34 countries, 40.3M BORME mercantile acts, EU VAT validation, GLEIF, healthcare registries. 20 tools.61MIT
- AlicenseBqualityCmaintenanceLocal-first MCP server that assists users with preparing and reviewing Italian tax declarations (Dichiarazioni) inside a controlled, user-authenticated Agenzia delle Entrate browser session, with a hard approval boundary preventing any external legal or financial action without explicit local approval.7Apache 2.0