Skip to main content
Glama

TaxCompass — Italian tax tools

Server Details

Sourced Italian tax tools for AI agents: cited primary-source search + a deterministic tax engine.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 40 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: calculate one regime, compare all regimes, list sources, and search sources. The overlap between calculate and compare is resolved by explicit 'one regime' vs 'all regimes' framing.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: calculate_italian_tax, compare_italian_regimes, list_tax_sources, search_italian_tax_sources. The naming is predictable and readable.

Tool Count5/5

Four tools is well-scoped for a specialized Italian tax server: two for tax computation/comparison and two for source discovery/search. Each tool has a distinct role and none feel redundant.

Completeness5/5

The surface covers the full core workflow: compute a single regime, compare all regimes, discover available legal sources, and search those sources for citations. There are no obvious dead ends for the stated purpose.

Available Tools

4 tools
calculate_italian_taxA
Read-onlyIdempotent
Inspect

Compute exact Italian tax for one regime at a given annual revenue.

Deterministic calculation (not an estimate): substitute/income tax, INPS
social contributions, net income, and effective rate. `breakdown.eligible`
is False when the regime doesn't apply to the inputs (e.g. forfettario above
the €85k cap) — present that as "not eligible", not as a real option.

Args:
    revenue_eur: Gross annual revenue in EUR.
    regime: One of `forfettario_5`, `forfettario_15`, `ordinario`,
        `ordinario_impatriati`.
    coefficient: Forfettario coefficiente di redditività (0.40–0.86, set by
        the activity's ATECO group). Omit for the professional-services
        default (0.78). Ignored by non-forfettario regimes.
    cost_ratio: Deductible costs as a fraction of revenue (0–1), used by
        ordinario/impatriati. Ignored by forfettario.
ParametersJSON Schema
NameRequiredDescriptionDefault
regimeNoforfettario_15
cost_ratioNo
coefficientNo
revenue_eurYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
breakdownYesFull numeric breakdown (taxes, contributions, net, effective rate).
disclaimerYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already mark the tool as read-only and idempotent; the description adds valuable deterministic behavior, exactness, and the meaningful distinction between 'not eligible' and a real calculated option. It also explains which parameters are ignored per regime, giving the agent behavioral expectations beyond the schema.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and then moves into behavioral notes and parameter details. The structure is logical and every sentence adds information; the Args block is dense but directly needed because the schema provides no descriptions.

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

Completeness5/5

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

Given the output schema exists and the annotations cover safety, the description fills the remaining gaps: eligibility behavior, parameter constraints, defaults, and regime-specific applicability. An agent has everything needed to select and call this tool correctly without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries full responsibility for parameter meaning, and it succeeds. It explains revenue_eur as gross annual revenue, defines each regime value, documents coefficient ranges (0.40–0.86) and the default (0.78), and clarifies cost_ratio semantics plus which regimes ignore it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Compute'), a clear resource ('exact Italian tax for one regime'), and the key inputs ('annual revenue'). It explicitly narrows the tool's scope to a single regime, which clearly distinguishes it from sibling tools like compare_italian_regimes and list_tax_sources.

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

Usage Guidelines4/5

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

The description clearly frames this as a single-regime deterministic calculator, implying that cross-regime comparison belongs to the sibling compare_italian_regimes. It also instructs how to handle ineligible regimes ('present that as not eligible'), which guides correct output interpretation. It does not explicitly name the sibling alternative, but the context is strong.

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

compare_italian_regimesA
Read-onlyIdempotent
Inspect

Compare all Italian regimes side by side at one revenue level.

Runs forfettario (5% & 15%), ordinario, and ordinario + impatriati through
the deterministic engine and returns them sorted by net income (best first),
each with its full breakdown and eligibility.

Args:
    revenue_eur: Gross annual revenue in EUR.
    coefficient: Forfettario coefficiente di redditività (0.40–0.86); omit
        for the professional-services default (0.78).
    cost_ratio: Deductible costs as a fraction of revenue (0–1) for the
        ordinario regimes.
ParametersJSON Schema
NameRequiredDescriptionDefault
cost_ratioNo
coefficientNo
revenue_eurYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYesOne breakdown per regime, best net income first.
disclaimerYes
revenue_eurYesGross annual revenue (EUR) the regimes were evaluated at.

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description discloses that the engine is deterministic, results are sorted by net income best-first, and each regime returns a full breakdown with eligibility. This gives the agent a concrete model of what the tool will do and return.

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

Conciseness5/5

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

The description is compact and front-loaded: the first sentence captures the core purpose, followed by a short, well-organized Args list. Every sentence adds useful information with no redundancy.

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

Completeness5/5

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

The description covers the tool's purpose, the regimes involved, parameter semantics, and the output shape (sorted, with breakdowns and eligibility). With an output schema present and rich input documentation, nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the Args section fully compensates by explaining each parameter: revenue_eur as gross annual revenue, coefficient with its valid range and default, and cost_ratio as a deductible fraction of revenue. This adds meaning well beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and scope: compare all Italian regimes side by side at one revenue level, enumerating exactly which regimes are included. This clearly distinguishes it from a single-regime tool like calculate_italian_tax.

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

Usage Guidelines4/5

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

The opening sentence establishes the clear use case: side-by-side comparison of all regimes at a given revenue level. It does not explicitly name sibling alternatives or state when not to use it, but the comparison framing is unambiguous and provides sufficient guidance for an agent.

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

list_tax_sourcesA
Read-only
Inspect

List the primary sources the corpus can search, and what each covers.

Use this to discover the valid `sources` filter values for
`search_italian_tax_sources` and to understand the corpus's coverage.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
sourcesYes
disclaimerYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true. Description adds that it returns list of sources and their coverage, and that it helps discover valid filter values for a sibling tool, providing full behavioral context.

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

Conciseness5/5

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

Two sentences, no waste. First sentence states purpose, second explains usage. Front-loaded and efficient.

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

Completeness5/5

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

For a 0-parameter tool with output schema and helpful annotations, description fully covers purpose and context, including relationship to sibling tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0 parameters, so baseline is 4. Description adds nothing about parameters as there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists primary sources and what each covers, and explains its use for discovering valid filter values for search_italian_tax_sources. This distinguishes it from siblings (calculate, compare, search).

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

Usage Guidelines4/5

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

Explicitly guides to use for discovering valid sources filter values and understanding corpus coverage. Does not specify when not to use, but context is clear.

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

search_italian_tax_sourcesA
Read-only
Inspect

Search TaxCompass's primary-source corpus and return passages to cite.

Hybrid semantic + keyword retrieval over Italian tax & company-law primary
sources: Normattiva (statute), Agenzia delle Entrate (circolari & guidance),
INPS (social security), pinned tax-year tables (IRPEF brackets, INPS rates,
forfettario thresholds & coefficienti di redditività), the ATECO 2025 code
catalogue, and EU/treaty sources.

Each result carries a `chunk_id`, `source`, and (usually) a `url`. Cite the
`url` and quote the `text`; do not assert Italian tax facts the passages
don't support. Queries work in any language, but Italian keywords improve
recall against the (Italian) legal corpus.

Args:
    query: What to search for. Keyword-dense Italian phrasing works best.
    sources: Optional subset to restrict to (see `list_tax_sources` for keys).
        Omit to search everything. Unknown keys are ignored.
    k: Max passages to return (1–12).
ParametersJSON Schema
NameRequiredDescriptionDefault
kNo
queryYes
sourcesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of passages returned.
queryYesThe query that was run.
passagesYesRetrieved passages, most relevant first.
disclaimerYesUsage + citation guidance.
sources_searchedYesSource keys actually searched (after filtering).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true. The description adds that it uses hybrid semantic+keyword retrieval, returns chunk_id, source, url, and text, and warns against asserting unsupported facts. 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.

Conciseness4/5

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

Well-structured with a clear opening summary, followed by details on sources, output, and parameters. Front-loaded with purpose. While thorough, it is concise for the amount of information provided.

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

Completeness5/5

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

Given the tool's complexity, 0% schema coverage, and presence of output schema, the description is highly complete. It covers retrieval method, output fields, parameters, and citation instructions. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fully explains each parameter: query (keyword-dense Italian phrasing), sources (optional, refer to list_tax_sources), and k (max passages 1-12). Adds meaningful guidance beyond the schema's default values and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches TaxCompass's primary-source corpus and returns passages for citation. It lists specific sources (Normattiva, Agenzia delle Entrate, INPS, etc.) and distinguishes from siblings like calculate_italian_tax and compare_italian_regimes by focusing on retrieval and citation.

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

Usage Guidelines4/5

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

Provides guidance on query language (Italian keywords improve recall), when to use (to find citations), and how to use parameters. It also instructs the agent not to assert unsupported facts. Lacks explicit when-not-to-use, but the context is clear enough.

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

Tool Schema Changelog

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

  1. 2 tool updates
    • Changedcalculate_italian_tax1 field changed
      • addedOutput schema / $defs / Breakdown / properties / contributions_are_stand_in
        Added value: +{
        +  "default": false,
        +  "title": "Contributions Are Stand In",
        +  "type": "boolean"
        +}
    • Changedcompare_italian_regimes1 field changed
      • addedOutput schema / $defs / Breakdown / properties / contributions_are_stand_in
        Added value: +{
        +  "default": false,
        +  "title": "Contributions Are Stand In",
        +  "type": "boolean"
        +}
  2. 2 tool updates
    • Changedcalculate_italian_tax3 fields changed
      • addedOutput schema / $defs / Breakdown / properties / effective_rate / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / $defs / Breakdown / properties / effective_rate / default
        Previous value: -0New value: +null
      • removedOutput schema / $defs / Breakdown / properties / effective_rate / type
        Removed value: -"number"
    • Changedcompare_italian_regimes3 fields changed
      • addedOutput schema / $defs / Breakdown / properties / effective_rate / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedOutput schema / $defs / Breakdown / properties / effective_rate / default
        Previous value: -0New value: +null
      • removedOutput schema / $defs / Breakdown / properties / effective_rate / type
        Removed value: -"number"
  3. 4 tool updates
    • First observedcalculate_italian_tax
    • First observedcompare_italian_regimes
    • First observedlist_tax_sources
    • First observedsearch_italian_tax_sources

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to help compile the Italian Modello 730 income tax return by providing IRPEF calculations, deduction tools, and tax rule guidance.
    12
    23
    -
  • A
    license
    A
    quality
    A
    maintenance
    Open-source, accountant-verified tax computation skills for AI agents. 261+ skills across 172+ jurisdictions covering income tax, VAT/GST, payroll, corporate tax, crypto, and cross-border planning. Every skill is verified section-by-section by licensed CPAs and chartered accountants. 3 tools (list_skills, get_skill, get_skill_sections) and 1 prompt (skill-review).
    3
    407
    AGPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    Provides access to official Spanish fiscal data and tools based on AEAT and BOE sources, covering income tax, VAT, and regional deductions. It enables AI assistants to answer tax-related queries and verify filing deadlines using verified information.
    10
    8 npm
    13
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources