Fatture in Cloud MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIC_TOOLSETS | No | Facoltativa: carica solo alcuni gruppi di tool, es. documents,automation,reports,taxes,bank. I tool sono 123: con meno gruppi il modello sceglie meglio e consuma meno contesto. | |
| FIC_COMPANY_ID | No | Facoltativa: se il token vede una sola azienda viene scelta da sola, altrimenti ogni tool accetta company_id. | |
| FIC_ACCESS_TOKEN | Yes | Obbligatoria. Token personale generato da Fatture in Cloud (Impostazioni → App e API, applicazione privata con autenticazione «Token personale»). | |
| FIC_MCP_DATA_DIR | No | Dove salvare le ricorrenze, default ~/.config/fattureincloud-mcp | |
| FIC_QUOTA_RESERVE | No | Facoltativa: richieste orarie da lasciare libere (default 25). L'API concede 1.000 richieste all'ora e 40.000 al mese, condivise tra le app private; il server legge i contatori a ogni risposta e si ferma prima di esaurirli. | |
| ENABLE_BANKING_APP_ID | No | Facoltativa (collegamento diretto PSD2): application ID dell'applicazione di produzione creata su enablebanking.com/cp. | |
| ENABLE_BANKING_KEY_PATH | No | Facoltativa (collegamento diretto PSD2): percorso della chiave privata .pem generata da Enable Banking, es. ~/.config/fattureincloud-mcp/enablebanking.pem | |
| ENABLE_BANKING_REDIRECT_URL | No | Facoltativa (collegamento diretto PSD2): redirect URL dell'applicazione, es. https://localhost:8765/callback |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Server per Fatture in Cloud (fatturazione italiana). Regole: le azioni verso l'esterno (invio SdI, email) sono irreversibili, quindi prima mostra all'utente cosa verrà inviato e usa dry_run quando disponibile. Una fattura elettronica inviata si corregge solo con nota di credito. Per ripetere fatture usa duplicate_document o le ricorrenze (schedule_*), non ricostruirle a mano.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_companiesA | Aziende accessibili con il token, con il loro id (da usare in company_id se ne gestisci più di una). |
| api_quotaA | Richieste API rimaste nell'ora e nel mese (limiti di Fatture in Cloud condivisi tra le app private). Usalo prima di operazioni in blocco. |
| get_company_infoB | Dati dell'azienda (anagrafica, piano, impostazioni) e, se richiesto, l'uso del piano per categoria. |
| lookupB | Tabelle di supporto: aliquote IVA (con id da usare nelle righe), metodi di pagamento, conti di saldo, centri di ricavo/costo, categorie, modelli grafici, valute, lingue, paesi, unità di misura, causali DDT. |
| list_sent_emailsB | Storico delle email inviate da Fatture in Cloud, con destinatari e stato di consegna. |
| api_requestA | Chiamata diretta all'API v2 per tutto ciò che non ha un tool dedicato (impostazioni, listini, webhook, documenti in attesa...). |
| list_issued_documentsB | Elenca documento emesso (fattura, nota di credito, proforma, preventivo, ordine, DDT...). Risposta paginata con page, last_page, total. |
| get_issued_documentB | Dettaglio completo di un documento emesso (fattura, nota di credito, proforma, preventivo, ordine, DDT...). |
| create_issued_documentA | Crea un documento emesso (fattura, nota di credito, proforma, preventivo, ordine, DDT...). |
| update_issued_documentA | Modifica un documento emesso (fattura, nota di credito, proforma, preventivo, ordine, DDT...): passa solo i campi da cambiare. Ometti |
| delete_issued_documentA | Elimina un documento emesso (fattura, nota di credito, proforma, preventivo, ordine, DDT...). I documenti finiscono nel cestino e si recuperano con recover_document. |
| list_clientsC | Elenca cliente. Risposta paginata con page, last_page, total. |
| get_clientC | Dettaglio completo di un cliente. |
| create_clientA | Crea un cliente. |
| update_clientA | Modifica un cliente: passa solo i campi da cambiare. Per la fattura elettronica servono vat_number o tax_code, address_* e ei_code (codice SDI) o certified_email (PEC). |
| delete_clientC | Elimina un cliente. |
| list_suppliersC | Elenca fornitore. Risposta paginata con page, last_page, total. |
| get_supplierC | Dettaglio completo di un fornitore. |
| create_supplierC | Crea un fornitore. |
| update_supplierA | Modifica un fornitore: passa solo i campi da cambiare. |
| delete_supplierC | Elimina un fornitore. |
| list_productsB | Elenca prodotto o servizio a listino. Risposta paginata con page, last_page, total. |
| get_productC | Dettaglio completo di un prodotto o servizio a listino. |
| create_productC | Crea un prodotto o servizio a listino. |
| update_productB | Modifica un prodotto o servizio a listino: passa solo i campi da cambiare. |
| delete_productC | Elimina un prodotto o servizio a listino. |
| list_received_documentsB | Elenca documento ricevuto (spesa, nota di credito passiva, DDT passivo). Risposta paginata con page, last_page, total. |
| get_received_documentB | Dettaglio completo di un documento ricevuto (spesa, nota di credito passiva, DDT passivo). |
| create_received_documentB | Crea un documento ricevuto (spesa, nota di credito passiva, DDT passivo). |
| update_received_documentA | Modifica un documento ricevuto (spesa, nota di credito passiva, DDT passivo): passa solo i campi da cambiare. L'API richiede |
| delete_received_documentA | Elimina un documento ricevuto (spesa, nota di credito passiva, DDT passivo). I documenti finiscono nel cestino e si recuperano con recover_document. |
| list_receiptsB | Elenca corrispettivo (scontrino / ricevuta giornaliera). Risposta paginata con page, last_page, total. |
| get_receiptB | Dettaglio completo di un corrispettivo (scontrino / ricevuta giornaliera). |
| create_receiptC | Crea un corrispettivo (scontrino / ricevuta giornaliera). |
| update_receiptB | Modifica un corrispettivo (scontrino / ricevuta giornaliera): passa solo i campi da cambiare. |
| delete_receiptC | Elimina un corrispettivo (scontrino / ricevuta giornaliera). |
| list_f24B | Elenca modello F24. Risposta paginata con page, last_page, total. |
| get_f24C | Dettaglio completo di un modello F24. |
| create_f24C | Crea un modello F24. |
| update_f24B | Modifica un modello F24: passa solo i campi da cambiare. |
| delete_f24C | Elimina un modello F24. |
| list_archive_documentsB | Elenca documento d'archivio. Risposta paginata con page, last_page, total. |
| get_archive_documentC | Dettaglio completo di un documento d'archivio. |
| create_archive_documentC | Crea un documento d'archivio. |
| update_archive_documentB | Modifica un documento d'archivio: passa solo i campi da cambiare. |
| delete_archive_documentA | Elimina un documento d'archivio. I documenti finiscono nel cestino e si recuperano con recover_document. |
| list_payment_accountsB | Elenca conto di saldo (banca, cassa, carta) su cui registrare incassi e pagamenti. Risposta paginata con page, last_page, total. |
| get_payment_accountC | Dettaglio completo di un conto di saldo (banca, cassa, carta) su cui registrare incassi e pagamenti. |
| create_payment_accountA | Crea un conto di saldo (banca, cassa, carta) su cui registrare incassi e pagamenti. |
| update_payment_accountA | Modifica un conto di saldo (banca, cassa, carta) su cui registrare incassi e pagamenti: passa solo i campi da cambiare. Campi: name, type (standard/bank), iban, sia, cuc, virtual. |
| delete_payment_accountB | Elimina un conto di saldo (banca, cassa, carta) su cui registrare incassi e pagamenti. |
| list_payment_methodsB | Elenca metodo di pagamento mostrato in fattura (es. bonifico con IBAN). Risposta paginata con page, last_page, total. |
| get_payment_methodB | Dettaglio completo di un metodo di pagamento mostrato in fattura (es. bonifico con IBAN). |
| create_payment_methodB | Crea un metodo di pagamento mostrato in fattura (es. bonifico con IBAN). |
| update_payment_methodB | Modifica un metodo di pagamento mostrato in fattura (es. bonifico con IBAN): passa solo i campi da cambiare. Per la fattura elettronica imposta ei_payment_method (es. MP05 bonifico) e i dettagli (details: [{title, description}]). |
| delete_payment_methodC | Elimina un metodo di pagamento mostrato in fattura (es. bonifico con IBAN). |
| list_vat_typesB | Elenca aliquota IVA o natura di esenzione. Risposta paginata con page, last_page, total. |
| get_vat_typeC | Dettaglio completo di un aliquota IVA o natura di esenzione. |
| create_vat_typeB | Crea un aliquota IVA o natura di esenzione. |
| update_vat_typeA | Modifica un aliquota IVA o natura di esenzione: passa solo i campi da cambiare. Per operazioni senza IVA serve ei_type (natura, es. N2.2) e una descrizione/riferimento normativo. |
| delete_vat_typeC | Elimina un aliquota IVA o natura di esenzione. |
| list_cashbook_entriesC | Elenca movimento di prima nota (incassi e pagamenti). Risposta paginata con page, last_page, total. |
| get_cashbook_entryB | Dettaglio completo di un movimento di prima nota (incassi e pagamenti). |
| create_cashbook_entryC | Crea un movimento di prima nota (incassi e pagamenti). |
| update_cashbook_entryB | Modifica un movimento di prima nota (incassi e pagamenti): passa solo i campi da cambiare. |
| delete_cashbook_entryC | Elimina un movimento di prima nota (incassi e pagamenti). |
| get_new_document_defaultsB | Prossimi numeri liberi per sezionale, valori predefiniti, aliquote e modelli: utile prima di creare un documento. |
| duplicate_documentA | Copia un documento esistente (come «Duplica», ma completo): stesso cliente, righe, bollo, metodo e conto di pagamento; nuova data, numero successivo, scadenze spostate dello stesso intervallo. La copia NON viene inviata allo SdI né per email. Usa dry_run=true per vedere il documento prima di crearlo. |
| transform_documentB | Trasforma un documento in un altro tipo con il collegamento nativo di Fatture in Cloud: proforma → fattura, preventivo → ordine o fattura, ordine → DDT/fattura, DDT → fattura. |
| join_documentsC | Raggruppa più DDT, ordini, preventivi o rapportini in un unico documento (es. fattura riepilogativa di fine mese). |
| mark_paidA | Segna come saldate tutte le rate aperte di uno o più documenti. Se una rata non ha conto, usa payment_account_id o il primo conto configurato. |
| mark_unpaidA | Riapre le rate saldate di un documento (annulla mark_paid). |
| email_documentA | Invia il documento per email al cliente, con link e PDF. Mittente, destinatario, oggetto e testo di default sono quelli impostati in Fatture in Cloud. |
| verify_einvoiceA | Verifica formale dell'XML della fattura elettronica: campi obbligatori e formati. Non invia nulla. |
| send_einvoiceA | Verifica l'XML e invia la fattura elettronica allo SdI. IRREVERSIBILE: una fattura inviata si corregge solo con nota di credito. dry_run=true esegue tutti i controlli senza inviare. |
| get_einvoice_xmlA | Scarica l'XML FatturaPA di un documento. Con save_to lo salva su file (percorso o cartella), altrimenti lo restituisce. |
| einvoice_rejection_reasonB | Motivo dello scarto SdI di una fattura elettronica, con le indicazioni per correggerla. |
| get_document_pdfB | Link al PDF del documento (anche DDT e fattura accompagnatoria). Con save_to scarica il PDF su file o in una cartella. |
| upload_attachmentA | Carica un file locale come allegato e restituisce l'attachment_token. Poi collegalo con update_* passando { attachment_token }. |
| list_deleted_documentsA | Documenti emessi o ricevuti nel cestino, recuperabili con recover_document. |
| recover_documentC | Ripristina un documento dal cestino. |
| list_pending_received_documentsA | Fatture passive in attesa di registrazione (arrivate dallo SdI in «documenti ricevuti in attesa»): fornitore, data, numero, imponibile, IVA, totale, scadenza, disponibilità di XML e allegati, con i totali. Nel regime forfettario le fatture d'acquisto non hanno effetto fiscale (niente IVA detraibile né costi deducibili), ma si possono comunque archiviare. |
| get_pending_received_documentA | Dettaglio completo di una fattura passiva in attesa di registrazione, con link temporaneo all'allegato (attachment_url). |
| suggest_expense_categoriesA | Propone la categoria di spesa per le fatture passive in attesa (o per i documenti indicati): riusa la categoria già usata per lo stesso fornitore (P.IVA o nome) negli ultimi 24 mesi, altrimenti applica regole su nome e descrizione (utenze, telefono, software, carburante, consulenze, affitti...). Restituisce confidenza e motivo; non modifica nulla. |
| register_pending_received_documentsA | Registra le fatture passive in attesa come documenti ricevuti (spese), collegandole al documento in attesa (pending_id) così Fatture in Cloud mantiene XML e allegati. Le rate coprono sempre il totale lordo; con paid=true vengono segnate pagate. dry_run è TRUE per default: mostra le spese che verrebbero create, poi rilancia con dry_run=false. Nel regime forfettario le fatture d'acquisto non hanno effetto fiscale (niente IVA detraibile né costi deducibili), ma si possono comunque archiviare. |
| recurring_expenses_reportA | Spese ricorrenti dai documenti ricevuti degli ultimi N mesi: fornitori con almeno 3 fatture a cadenza regolare (mensile, bimestrale, trimestrale, semestrale, annuale), importo medio, ultima data, prossima attesa, totale annuo stimato. Segnala gli aumenti oltre la soglia rispetto alla media precedente e le fatture attese che non sono arrivate. |
| bulk_duplicateA | Copia molti documenti in una volta, es. tutte le fatture di settembre con data di oggi. dry_run è TRUE per default: controlla l'anteprima, poi rilancia con dry_run=false. |
| bulk_send_einvoiceA | Verifica e invia allo SdI molte fatture. dry_run è TRUE per default (solo verifica). Le fatture con XML non valido vengono saltate e segnalate. |
| bulk_emailA | Invia per email molti documenti, ognuno al proprio cliente, con i testi di default. dry_run è TRUE per default: mostra destinatari e oggetti. |
| schedule_createA | Crea una fattura ricorrente: a ogni scadenza copia |
| schedule_listA | Elenca le fatture ricorrenti con prossime date ed esito dell'ultima esecuzione. |
| schedule_getA | Dettaglio di una ricorrenza (id o nome), con storico e prossime N date. |
| schedule_updateB | Modifica una ricorrenza (solo i campi passati). Cambiare cadenza o date ricalcola la prossima esecuzione. |
| schedule_deleteB | Elimina una ricorrenza. I documenti già creati restano. |
| schedule_run_dueB | Esegue le ricorrenze in scadenza (next_run <= oggi), come il job pianificato. dry_run è TRUE per default. |
| schedule_run_nowB | Esegue subito una ricorrenza fuori calendario, senza spostare la prossima esecuzione. dry_run è TRUE per default. |
| receivables_reportB | Crediti da incassare: rate non saldate, scaduto per fasce (1-30, 31-60, 61-90, oltre 90 giorni) e totali per cliente. |
| revenue_summaryA | Fatturato e incassato dell'anno, per mese e per cliente. Per il regime forfettario mostra quanto manca alla soglia di 85.000 € (principio di cassa) e la proiezione a fine anno. |
| audit_documentsA | Controlli sui documenti dell'anno: fatture elettroniche create ma non inviate, scartate o rifiutate; bollo mancante su fatture senza IVA sopra 77,47 €; pagamenti scaduti; buchi, doppioni o date fuori ordine nella numerazione. |
| client_statementC | Estratto conto di un cliente: documenti, pagato, saldo aperto e scaduto. |
| tax_profile_getC | Profilo fiscale usato per stimare le tasse (coefficiente, aliquota, previdenza) e regime registrato in Fatture in Cloud. |
| tax_profile_setB | Imposta il profilo fiscale del forfettario: coefficiente di redditività (78% professionisti, 67% altre attività, 40% commercio, 86% costruzioni, 62% intermediari, secondo il codice ATECO: es. 62.x consulenza informatica = 67%, 70-75 e 85 = 78%), aliquota (15%, o 5% per i primi 5 anni), previdenza (gestione separata 26,07%, o 24% se hai già un'altra copertura; artigiani/commercianti; cassa), importi reali già versati per anno e pagamenti pianificati (rateizzazioni). I campi non passati restano invariati. |
| tax_estimateA | Stima imposta sostitutiva e contributi del forfettario: quanto pagare il 30 giugno (saldo + 1° acconto) e il 30 novembre (2° acconto), totale annuo di competenza, percentuale da accantonare. Usa gli incassi registrati in Fatture in Cloud e il profilo di tax_profile_set. Per l'anno in corso proietta gli incassi a fine anno (projection='linear') o usa solo quelli già avvenuti ('to_date'). |
| regime_simulatorA | Confronta forfettario, ordinario (ditta individuale) e SRL unipersonale: imposte, contributi e netto in tasca a parità di ricavi e costi, con la soglia di ricavi oltre cui il forfettario smette di convenire. Ricavi di default: proiezione dell'anno in corso dagli incassi in Fatture in Cloud; coefficiente, aliquota e INPS dal profilo fiscale. Mostra anche il forfettario al 15% (dopo i primi cinque anni). |
| cashflow_forecastA | Previsione di cassa mese per mese: incassi attesi dalle fatture aperte, fatture ricorrenti future, scadenze fiscali (30 giugno, 30 novembre) e spese fisse. Calcola quanto accantonare ogni mese per arrivare coperto a ogni scadenza e segnala i mesi con saldo negativo. |
| tax_deadlines_exportA | Porta le scadenze fiscali stimate (imposta sostitutiva e contributi, 30 giugno e 30 novembre) nel calendario e/o nello scadenziario F24 di Fatture in Cloud. ics_path crea un file .ics con promemoria 7 giorni e 1 giorno prima (importalo in Calendario, Google, Outlook). create_f24 crea o aggiorna gli F24 previsti, senza duplicarli; dry_run è TRUE per default. |
| accountant_packageA | Crea lo zip annuale per il commercialista: fatture.csv, incassi.csv, crediti_aperti.csv, spese.csv (formato italiano per Excel), PDF di tutte le fatture e note di credito, XML FatturaPA e riepilogo.md con ricavi, soglia del forfettario, stima delle tasse e controlli. |
| bank_formatsC | Banche e formati di estratto conto riconosciuti automaticamente nell'import. |
| bank_parse_statementB | Legge un estratto conto esportato dall'home banking (XLSX, XLS, CSV) e mostra banca riconosciuta, periodo, entrate e uscite. |
| bank_reconcileA | Riconciliazione bancaria: abbina gli accrediti dell'estratto conto (file o conto collegato) alle fatture aperte per importo, numero fattura in causale, P.IVA e nome del cliente, e segna come pagate le rate abbinate con la data dell'accredito. dry_run è TRUE per default: mostra le proposte con il livello di confidenza; rilancia con dry_run=false per registrare quelle ≥ min_confidence. |
| bank_list_banksB | Banche collegabili tramite Enable Banking (nome esatto da usare in bank_link_start). |
| bank_link_startA | Collega un conto corrente via Enable Banking (PSD2). Restituisce un link: aprilo, autorizza nella tua banca, poi copia l'indirizzo della pagina finale (anche se dà errore) e passalo a bank_link_finish. Il consenso dura fino a 180 giorni. |
| bank_link_finishC | Completa il collegamento: passa l'URL di ritorno (contiene ?code=...&state=...) oppure il solo code. |
| bank_accountsB | Conti collegati con Enable Banking e scadenza del consenso. |
| preview_totalsA | Calcola con Fatture in Cloud i totali di un documento senza crearlo: imponibile, rivalsa, IVA, ritenute, bollo, totale e somma delle rate. Usalo per controllare una fattura prima di emetterla. |
| create_credit_noteA | Crea la nota di credito di una fattura, totale o parziale, collegata alla fattura originale come richiede lo SdI (numero e data della fattura nei dati della fattura elettronica). È l'unico modo per correggere una fattura elettronica già inviata. dry_run è TRUE per default: mostra la nota e i suoi totali; non viene inviata allo SdI (usa poi send_einvoice). |
| lookup_cityA | Comuni italiani da CAP o nome: città, CAP e sigla della provincia corretti, necessari per le fatture elettroniche. |
| client_from_vatA | Prepara l'anagrafica di un cliente dalla partita IVA usando VIES (il registro europeo): ragione sociale e indirizzo, con città e provincia verificate. Il codice destinatario SDI non è pubblico: chiedilo al cliente o usa la sua PEC. Con create=true crea il cliente. |
| list_price_listsC | Listini prezzi configurati in Fatture in Cloud. |
| get_price_list_itemsC | Prezzi dei prodotti in un listino. |
| receipts_monthly_totalsB | Totali mensili dei corrispettivi (scontrini o ricevute) di un anno. |
| stamp_duty_reportA | Bollo virtuale sulle fatture elettroniche: documenti con bollo e importo da versare per trimestre (F24 codici 2521-2524), con le scadenze (31/5, 30/9, 30/11, 28/2). Rientra anche nelle scadenze di tax_deadlines_export e cashflow_forecast. |
| quadro_lmA | Valori del quadro LM (regime forfettario) della dichiarazione per un anno chiuso: ricavi, reddito, contributi dedotti, imposta, acconti e saldo, dagli incassi in Fatture in Cloud e dal profilo fiscale. Da controllare col commercialista. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| chiusura_mese | Controlla il mese: fatture da emettere o inviare, incassi, scaduti, bollo, ricorrenze. |
| nuova_ricorrenza | Guida alla creazione di una ricorrenza partendo dall'ultima fattura di un cliente. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 123 tools
The bulk of the surface follows a clean resource+action split (list/get/create/update/delete per entity), and the domain-specific tools have clearly differentiated purposes (audit_documents vs verify_einvoice vs preview_totals, send_einvoice vs bulk_send_einvoice, mark_paid vs bank_reconcile). A few pairs still blur: schedule_run_due vs schedule_run_now, duplicate_document vs bulk_duplicate, and the catch-all api_request overlapping every specialized tool. These are resolvable from descriptions but add selection risk at 123 tools.
There is a dominant, predictable verb_noun snake_case convention across all CRUD families (list_clients, create_issued_document, update_vat_type, delete_receipt), and domain clusters use consistent prefixes (bank_*, schedule_*, bulk_*, tax_profile_*). Deviations exist but are internally coherent: noun-first report names (revenue_summary, client_statement, cashflow_forecast), noun_verb order for tax_profile_get/set, and preposition-like names (client_from_vat, quadro_lm, lookup). Readable, but not a single uniform pattern.
123 tools is far beyond a comfortable agent-facing surface, even for a broad invoicing/accounting platform; the CRUD quintets for a dozen resources alone account for most of it. Several tools could be consolidated (e.g. generic list/get/create/update/delete parameterized by resource, or the many report tools grouped). Each tool has a real function, so it is not a 1, but the count materially burdens discovery and selection.
Coverage is unusually deep: full lifecycle for issued/received/archive documents, clients, suppliers, products, receipts, F24, cashbook, payment accounts/methods and VAT types, plus e-invoicing, reconciliation, tax estimation and reporting workflows with no obvious dead ends. Minor gaps remain for secondary resources (revenue/cost centers, payment terms, document templates, webhooks) that are only reachable via lookup or the api_request escape hatch. Strong but not exhaustive.