io.github.aringad/fattureincloud-mcp MCP Server
io.github.aringad/fattureincloud-mcp
AI-powered Italian e-invoicing with FattureInCloud—create, send to SDI, and manage invoices through Claude.
What is the io.github.aringad/fattureincloud-mcp MCP server?
The fattureincloud-mcp server connects Claude to FattureInCloud, Italy's leading SaaS for electronic invoicing and compliance with the Sistema di Interscambio (SDI). It exposes 23 tools to create, manage, and send invoices, credit notes, proformas, and supplier documents, plus client and cost-center management—all via natural language.
This MCP server bridges Claude and FattureInCloud, enabling AI-assisted invoice creation, SDI submission, client management, and financial reporting for Italian businesses. Use it to draft invoices, send them through the mandatory e-invoicing system, track payments, and analyze revenue by cost/revenue center—without leaving your AI assistant.
How to install io.github.aringad/fattureincloud-mcp
Copy-paste configuration for popular MCP clients.
FIC_ACCESS_TOKENrequiredsecretFatture in Cloud API access token
FIC_COMPANY_IDrequiredFatture in Cloud company ID
FIC_SENDER_EMAILEmail sender for courtesy copies
Tools & capabilities
Tools this server exposes to the agent.
list_invoices— List issued invoices, credit notes, or proformas by year and monthget_invoice— Retrieve full document details by IDget_pdf_url— Get PDF URL and web link for a documentlist_clients— List clients with optional filteringget_company_info— Retrieve connected company informationcreate_client— Create a new clientupdate_client— Update an existing clientcreate_invoice— Create a draft invoice with optional revenue center assignmentcreate_credit_note— Create a draft credit note with optional revenue center assignmentcreate_proforma— Create a draft proforma with optional revenue center assignmentconvert_proforma_to_invoice— Convert a proforma into a draft electronic invoiceupdate_document— Partial update of a draft documentduplicate_invoice— Duplicate an invoice with a new datedelete_invoice— Delete a draft documentsend_to_sdi— Send invoice or credit note to the Italian SDI e-invoicing systemget_invoice_status— Check e-invoice status for a documentsend_email— Send a courtesy copy by emaillist_received_documents— List supplier documents with cost center informationget_received_document— Retrieve full details of a received supplier documentcreate_received_document— Create a passive document or expense with optional cost center assignment
Use cases
- Create and send compliant Italian e-invoices to the SDI system directly from Claude
- Draft invoices for clients, assign them to revenue centers, and manage payment terms conversationally
- Analyze revenue by cost/revenue center and month to track project profitability
- Manage supplier expenses and received documents with cost-center tracking
- Duplicate recurring invoices and update client information without leaving your AI assistant
io.github.aringad/fattureincloud-mcp MCP server FAQ
It's an MCP server that connects Claude to FattureInCloud, Italy's leading e-invoicing SaaS. It exposes 23 tools to create, manage, and send invoices, credit notes, proformas, and supplier documents through natural language, with full compliance to the Italian SDI (Sistema di Interscambio) e-invoicing mandate.
The server itself is free and open-source (MIT license). You need a FattureInCloud subscription (paid SaaS) and a personal API token to use it.
Download the latest `.mcpb` file from the GitHub Releases page and drag it onto Claude Desktop, or use Settings → Extensions → Install from file. You'll be prompted to enter your FattureInCloud API token, company ID, and optional sender email.
Install via PyPI (`pip install fattureincloud-mcp`), then add the server to your MCP client's configuration file (e.g., `claude_desktop_config.json`) with environment variables for `FIC_ACCESS_TOKEN`, `FIC_COMPANY_ID`, and optionally `FIC_SENDER_EMAIL`.
You need a FattureInCloud personal API access token (starts with `a/`, created in Settings → API and Integrations) and your numeric company ID (visible in the URL after `/c/` when logged in). Optionally, provide a sender email for courtesy copies.
No—the FattureInCloud API requires a payment account that cannot be reliably retrieved. Use the FattureInCloud web panel to mark payments as paid.
README (reference)
Source of truth, from the repository.
fattureincloud-mcp
<!-- mcp-name: io.github.aringad/fattureincloud-mcp -->by Mediaform s.c.r.l. — Genova, Italy
MCP server that connects Claude (Desktop, Code, or any MCP client) to FattureInCloud, the leading Italian SaaS for electronic invoicing. Manage invoices, credit notes, proformas, clients, suppliers, cost/revenue centers, and supplier expenses through natural language. Italy mandates B2B/B2C e-invoicing through the Sistema di Interscambio (SDI) — this server brings AI-assisted billing to that compliance-driven workflow.
⚠️ Unofficial integration. Not affiliated with, endorsed by, or sponsored by TeamSystem S.p.A., owner of the FattureInCloud trademark. The trademark is used here for descriptive purposes only.
Features (23 tools)
| Tool | Description |
|---|---|
list_invoices | List issued invoices / credit notes / proformas by year / month |
get_invoice | Full document detail by ID |
get_pdf_url | PDF URL and web link for a document |
list_clients | List clients with optional filter |
get_company_info | Connected company info |
create_client | Create a new client |
update_client | Update an existing client |
create_invoice | Create a draft invoice (optional revenue_center) |
create_credit_note | Create a draft credit note (optional revenue_center) |
create_proforma | Create a draft proforma (optional revenue_center) |
convert_proforma_to_invoice | Convert a proforma into a draft electronic invoice (optional revenue_center) |
update_document | Partial update of a draft document (optional revenue_center) |
duplicate_invoice | Duplicate an invoice with a new date (optional revenue_center) |
delete_invoice | Delete a draft document |
send_to_sdi | Send invoice / credit note to the Italian e-invoice system (SDI) |
get_invoice_status | E-invoice status for a document |
send_email | Send a courtesy copy by email |
list_received_documents | List supplier documents (exposes cost_center when present) |
get_received_document | Full detail of a received document by ID |
create_received_document | Create a passive document / expense (optional cost_center) |
list_cost_centers | List configured cost / revenue centers |
get_situation | Yearly dashboard: net revenue, collected, outstanding, costs, margin |
check_numeration | Verify invoice numbering continuity |
Marking payments as "paid" is intentionally not exposed: the FattureInCloud API requires a payment account that cannot be reliably retrieved through the SDK. Use the FattureInCloud web panel for that operation.
Installation
Option 1 — Claude Desktop (MCPB bundle, recommended)
- Download the latest
fattureincloud.mcpbfrom the GitHub Releases page. - Drag the
.mcpbfile onto Claude Desktop, or use Settings → Extensions → Install from file. - When prompted, fill in your FattureInCloud API token, company ID, and (optional) sender email.
That's it — no Python setup, no virtualenv.
Option 2 — Manual install via PyPI
For Claude Code users or any MCP client that reads claude_desktop_config.json-style configuration:
pip install fattureincloud-mcp
Then add to your MCP client configuration (for Claude Desktop, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"fattureincloud": {
"command": "python",
"args": ["-m", "fattureincloud_mcp"],
"env": {
"FIC_ACCESS_TOKEN": "a/xxxxx.yyyyy.zzzzz",
"FIC_COMPANY_ID": "123456",
"FIC_SENDER_EMAIL": "billing@yourcompany.com"
}
}
}
}
Restart your MCP client after editing the config.
Configuration
| Env var | Required | Description |
|---|---|---|
FIC_ACCESS_TOKEN | yes | Personal API access token (starts with a/) |
FIC_COMPANY_ID | yes | Numeric company ID, visible in the URL when logged into FattureInCloud |
FIC_SENDER_EMAIL | required for send_email | Sender mailbox for courtesy copies |
FIC_CACHE_DIR | no | Override cache directory (default ~/.fattureincloud-mcp/cache) |
FIC_CACHE_DISABLED | no | Set to 1 to disable the local cache |
How to get the FattureInCloud credentials: log into FattureInCloud, go to Settings → API and Integrations, create a Manual Token with the permissions you need. The COMPANY_ID is in the URL after /c/ once you select a company.
Usage examples
Example 1 — Create an invoice for a known client
"Find client 'Acme Srl' and create a draft invoice for €1,500 + VAT for consulting services in November 2026, payable in 30 days, on revenue center 'Project Alpha'."
Claude will:
- Call
list_clients(cached) and pick the matching client - Call
list_cost_centers(cached) to validateProject Alphaexists - Call
create_invoicewithclient_id, items, dates, payment terms, andrevenue_center="Project Alpha" - Return the draft number and ask whether to send it to SDI
Example 2 — Cost-center analysis
"How much did I bill on the 'Project Alpha' revenue center in 2025? Break down by month."
Claude will:
- Call
list_cost_centersto confirm the label - Call
list_invoicesfor year 2025 (the result includesrevenue_centerper invoice when set) - Filter by
revenue_center == "Project Alpha"and aggregate by month
Example 3 — Recurring invoices replay
"Duplicate every invoice issued to 'Recurring Customer Co' in October 2025, set the new dates in November, keep 30-day payment terms."
Claude will:
- Call
list_invoiceswithquery="Recurring Customer Co"andmonth=10,year=2025 - For each result, call
duplicate_invoicewithnew_dateset in November - Return the list of new draft invoices and ask before sending
Caching
To minimize redundant calls to the FattureInCloud API, this server caches client lookups and the cost-centers list locally as JSON files (default location ~/.fattureincloud-mcp/cache/, scoped per company_id, 24-hour TTL). The cache is transparent: tool signatures don't change.
# Force refresh:
rm -rf ~/.fattureincloud-mcp/cache
# Disable temporarily:
export FIC_CACHE_DISABLED=1
Cost / Revenue Centers
FattureInCloud uses one shared registry for cost centers (on supplier documents) and revenue centers (on issued documents). With this server you can:
list_cost_centers— read the registryrevenue_center="<label>"— assign oncreate_invoice,create_credit_note,create_proforma,convert_proforma_to_invoice,update_document,duplicate_invoicecost_center="<label>"— assign oncreate_received_document
The label must already exist; centers are managed from FattureInCloud's web UI (Settings → Cost Centers). Passing an unknown label returns the list of valid labels in the error message.
Privacy & Data Handling
- API calls go directly from your machine to FattureInCloud's servers (
api-v2.fattureincloud.it). No data is routed through Mediaform or any third-party server. - The local cache is plaintext JSON in your home directory. You control it.
- Credentials live only in your
.env(gitignored), shell, or MCP clientuser_config. They are never logged or transmitted to anyone other than FattureInCloud. - Full Privacy Policy: https://media-form.it/privacy-policy.html
- See also
docs/PRIVACY.mdfor a mirrored copy of the policy.
Known issues
- Invoice duplication may fail for some clients. A specific client configuration triggers a failure path that hasn't been reproduced yet. Workaround: duplicate manually from the FattureInCloud web panel. Tracked in
docs/KNOWN_ISSUES.md— please report a reproducible case via GitHub issues.
Contributing
Issues and pull requests welcome at https://github.com/aringad/fattureincloud-mcp.
For any code change:
- Fork and branch from
main(feat/...,fix/...,docs/...). - Run
pytest tests/— all 39 tests must stay green. - New code targeting cost-center / cache / new tools should ship with tests (target ≥80% coverage on new modules).
- Conventional commits style (
feat:,fix:,docs:,chore:,test:). - Open a PR. The maintainer reviews changes against the FattureInCloud API contract.
Security
For vulnerability disclosure see SECURITY.md. Preferred channel: GitHub Security Advisories.
License
MIT — see LICENSE.
Trademark
"FattureInCloud" is a trademark of TeamSystem S.p.A. This is an independent, community-built integration. It is not affiliated with, endorsed by, or sponsored by TeamSystem S.p.A. The trademark is used solely for descriptive purposes (to indicate the third-party service this software interoperates with).
Author / Support
- Maintainer: Mediaform s.c.r.l. — Genova, Italy
- Issues: https://github.com/aringad/fattureincloud-mcp/issues
- Email: assistenza@mediaform.it
Related MCP servers

io.github.aringad/google-workspace-mcp
Google Workspace Admin via MCP. Manage users, groups, aliases, org units.

Zmanim MCP Server
MCP server providing Jewish prayer times (zmanim) calculations for any location worldwide.

io.github.aristiun/aribot
Threat modeling, code/cloud/pipeline scanning, shadow-AI discovery, compliance checks and fixes.
Scan your codebase for EU AI Act + GDPR compliance in 10 seconds. Detects 16 AI frameworks, maps to legal articles, generates audit-ready reports.

Detect fabrication and hallucination in any LLM output. 30+ models supported.

Arm MCP Server
AI-powered Arm architecture development, code migration, and optimization tools
