
Fattureincloud Mcp
io.github.aringadPublished by GitHub account aringadv1.2.0Updated Oct 24, 2026
Italian e-invoicing with Fatture in Cloud. Create, send to SDI, manage clients.
Overview
Unofficial MCP server connecting an assistant to Fatture in Cloud, letting it create, manage and send Italian electronic invoices, clients and expenses.
- What you can do
- List, read and inspect invoices, credit notes, proformas and received supplier documents, including PDF links and e-invoice status. Create and update clients, and create draft invoices, credit notes, proformas and passive expense documents. Convert proformas to invoices, partially update or duplicate drafts, and delete draft documents. Send invoices and credit notes to the Italian SDI e-invoicing system and email courtesy copies. Read cost/revenue centers, a yearly revenue and margin dashboard, and check invoice numbering continuity.
- When to use it
- Useful for Italian businesses or accountants already on Fatture in Cloud who want to draft, review and submit e-invoices, manage clients and expenses, or analyze billing by cost and revenue center through natural language.
- Requirements
- Runs locally as a Python package (pip install fattureincloud-mcp) or a Claude Desktop bundle. Needs a Fatture in Cloud manual API token in FIC_ACCESS_TOKEN and a numeric company ID in FIC_COMPANY_ID; FIC_SENDER_EMAIL is required for sending courtesy emails. Network access to the Fatture in Cloud API.
Installation
In SourceWeft
- Open Fattureincloud Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
fattureincloud-mcp
[PyPI] [License] [MCPB] [Listed in italia-mcp-servers]
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)
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:
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):
Restart your MCP client after editing the config.
Configuration
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.
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: [email protected]
Source: README.md at commit 847d6fe
Tools
0Version history
1- v1.2.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts