Skip to main content
Glama

Dichiarazione-MCP

Local-first MCP server for assisting a user with the preparation and review of Italian tax declarations through a controlled browser session.

Status: pre-alpha architecture and safety scaffold. This repository does not yet provide a production-ready tax service and must not be used to submit real declarations or payments.

Product goal

The server will let an LLM:

  • work inside a user-authenticated Agenzia delle Entrate browser session;

  • inspect and organize tax documents;

  • read, compare, and edit declaration drafts;

  • run deterministic validations and prepare a review package;

  • stop at a hard approval boundary before any external, legally relevant action.

The user performs or approves SPID authentication. Credentials, OTPs, session cookies, and browser storage are never exposed through MCP tools or model context.

Related MCP server: Networking MCP

Non-negotiable boundary

The agent may autonomously read and edit draft state. It may not, without a separate local approval bound to an exact immutable snapshot:

  • submit, cancel, or amend a declaration;

  • transmit or pay an F24;

  • change an IBAN or payment destination;

  • create, revoke, or alter a delegation;

  • send an application, response, or communication with legal effect;

  • perform any action that creates a protocol, receipt, debit, or irreversible external effect.

Planned architecture

LLM client
   │ MCP
   ▼
Local MCP server
   ├── capability policy and typed tools
   ├── document/tax workflow services
   ├── review and approval service
   ├── append-only redacted audit trail
   └── browser adapter (Playwright)
             │
             ▼
  user-controlled Chromium profile
             │
             ▼
     Agenzia delle Entrate portals

See docs/PRODUCT_SPEC.md, docs/ARCHITECTURE.md, and docs/SECURITY.md.

Safe synthetic mode

The repository includes an explicit, network-free synthetic composition for local development. It uses only in-memory data and stops after creating the immutable review package; it cannot issue an approval or perform an external effect.

uv sync --extra dev
uv run dichiarazione-mcp-synthetic-demo

The demo reads versioned normalized evidence, selects only opaque evidence IDs, performs a receipt-backed mutation, reverts it exactly once, reapplies the reviewed change, and stops at review_prepared. Its JSON summary includes the opaque mutation/reversion IDs and keeps external_effect_exposed equal to false. To run the same synthetic composition as a local stdio MCP server:

uv run dichiarazione-mcp --synthetic

The ordinary entry point remains fail-closed unless --synthetic is supplied:

uv run dichiarazione-mcp

In explicit synthetic mode, read_normalized_evidence exposes only the versioned bounded evidence contract: opaque IDs, allowlisted draft fields, canonical values, hashes, flags, and opaque provenance references. Raw documents, HTML, paths, source text, summaries/instructions, credentials, cookies, selectors, and browser artifacts are absent from its schema. The server derives the synthetic guarantee from its trusted composition and verifies the current draft's synthetic_data=true; it does not trust a client-supplied mode flag.

mutate_declaration_draft returns a typed {draft, receipt} result. The immutable receipt binds the opaque mutation ID, current session, masked identity/delegation, declaration reference, field, canonical before/after values, and adjacent versions. revert_declaration_mutation accepts that exact receipt plus the optimistic current version and consumes it once. Fabrication, tampering, replay, session or identity rotation, value/version drift, and provider mismatch fail closed. Any inconsistency observed only after a possible write or revert becomes the non-retriable draft_mutation_uncertain error with reconciliation_required=true; the server never retries automatically.

In fail-closed mode the same MCP tool surface exists, but dependency-backed operations—including normalized evidence—return a safe dependency_unavailable error. Neither mode contacts Poste, SPID, Agenzia delle Entrate, or any other network service.

Development model

Implementation is split among three developers, one AI engineer, and two independent reviewers. The Manager owns integration, commits, and pushes. Agents must not commit or push independently.

License

Apache-2.0. See LICENSE.

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • TaxSort — Tollbooth-monetized MCP server for personal tax transaction classification

  • A paid remote MCP for AI agent browser approval MCP, built to return verdicts, receipts, usage logs,

  • Hosted MCP server for Mini Accountant: invoices, expenses, customers, analytics, tax estimates.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/roccoangelella/Dichiarazione-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server