Frihet ERP
AI-native ERP MCP: ES/EU fiscal compliance (VeriFactu/TicketBAI/Facturae), invoicing, tax, banking
Connector by frihet.ioOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, VS Code, Codex, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/frihet-io-erp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://mcp.frihet.io/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: finance-accounting, payments-billing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
Runs code on install
Its package runs an install script (such as npm postinstall or setup.py code) as soon as you install it, before any tool is called. Read the script first.
- Tools
- 80 read · 60 write · 19 delete
- Secrets
- None asked for
- Install scripts
- Runs code on install
- Runs as
- Node.js package
Tools by what they do 159
Read from the source code; the running server may list different tools.
Read 80 · Look things up without changing anything.
anomaly_listdescribe_toolexport_datevface_statusfrihet_aiem_calculatefrihet_bank_rules_listfrihet_gl_entry_audit_logfrihet_modelo_200_summaryfrihet_modelo_202_summaryfrihet_modelo_415_summaryfrihet_modelo_418_summaryfrihet_modelo_425_summary
Show 68 more tools
frihet_portal_domain_verifyfrihet_tax_id_vies_lookupgestoria_aging_consolidatedgestoria_messages_listget_bank_accountget_business_contextget_clientget_depositget_einvoice_statusget_expenseget_invoiceget_invoice_einvoiceget_invoice_pdfget_kitchen_ticketget_modelo_130_summaryget_modelo_180_summaryget_modelo_303_summaryget_modelo_347_summaryget_modelo_390_summaryget_monthly_summaryget_productget_quarterly_taxesget_quoteget_recurring_invoiceget_reservationget_saleget_time_entryget_time_summaryget_vendorget_webhookglobal_searchkitchen_flow_summaryleave_listlist_bank_accountslist_client_activitieslist_client_contactslist_client_noteslist_clientslist_depositslist_expenseslist_invoiceslist_kitchen_stationslist_kitchen_ticketslist_menu_itemslist_productslist_propertieslist_quoteslist_recurring_invoiceslist_reservationslist_saleslist_team_memberslist_terminalslist_time_entrieslist_tool_groupslist_transactionslist_vendorslist_webhooksovertime_reportpayroll_checklistpayroll_exportperiod_close_statuspermissions_matrixpermissions_mesearch_invoicessearch_toolsticketbai_statusvalidate_einvoice_xmlverifactu_status
Write 60 · Create, change, send or run things.
apply_depositapply_late_feeattendance_clock_inattendance_clock_outcategorize_transactioncreate_clientcreate_client_contactcreate_client_notecreate_credit_notecreate_depositcreate_expensecreate_invoice
Show 48 more tools
create_productcreate_quotecreate_recurring_invoicecreate_reservationcreate_time_entrycreate_vendorcreate_webhookduplicate_invoiceeinvoice_exportface_submitfrihet_bank_rule_createfrihet_gl_entry_approvefrihet_gl_entry_rejectfrihet_portal_domain_addfrihet_portal_onboard_link_generategestoria_message_sendgestoria_template_bulk_sendgestoria_template_createinvite_team_memberksef_submitleave_approveleave_cancelleave_rejectleave_request_createlog_client_activitymark_invoice_paidmatch_transaction_to_invoicepause_recurring_invoiceresume_recurring_invoicesend_einvoicesend_invoicesend_quotesync_channeltest_webhookticketbai_submitupdate_clientupdate_depositupdate_expenseupdate_invoiceupdate_kitchen_ticketupdate_productupdate_quoteupdate_recurring_invoiceupdate_team_member_roleupdate_time_entryupdate_vendorupdate_webhookverifactu_resubmit
Delete 19 · Delete, drop, revoke or wipe things.
delete_clientdelete_client_contactdelete_client_notedelete_depositdelete_expensedelete_invoicedelete_productdelete_quotedelete_recurring_invoicedelete_time_entrydelete_vendordelete_webhook
Show 7 more tools
frihet_portal_domain_removeperiod_closeperiod_reopenrefund_depositrefund_saleremove_team_memberrun_recurring_now
Network hosts it talks to 1
mcp.frihet.io· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (159)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
anomaly_listList Anomaliesread-onlyList HR / operational / financial anomalies detected by the system. Filter by type (daily_exceeded, weekly_exceeded, annual_approaching, annual_exceeded, missing_break), severity (warning/critical), or period. Anomalies are COMPUTE-ON-READ over the live attendance records (Art.34/35 ET overtime engine) — there is no stored anomalies collection. Useful for daily HR review and compliance audits. / Lista anomalias detectadas (RRHH/operativas/financieras) con filtros opcionales.
apply_depositApply DepositApply a deposit to an invoice or mark it as used. Transitions the deposit status to 'applied'. ERP requires invoiceId + invoiceNumber + amount on the body; id is the deposit ID. Example: id='dep_abc123', invoiceId='inv_xyz', invoiceNumber='F-2026-007', amount=150 / Aplica un deposito a una factura o lo marca como utilizado. Requiere invoiceId, invoiceNumber y amount.
apply_late_feeApply Late FeeApply late payment interest flags to an overdue invoice. Calculates interest based on EU Late Payment Directive (8% default) or auto-calculates from days overdue, and flips the `hasLateFee` / `lateFeeAmount` / `lateFeeDaysOverdue` fields on the invoice. The endpoint does NOT create a debit note — if a separate rectifying invoice is required, issue it explicitly with create_invoice or create_credit_note. / Aplica los indicadores de intereses de demora a una factura vencida. Calcula intereses segun la Directiva Europea de Morosidad (8% por defecto) o a partir de los dias de retraso, y actualiza …
attendance_clock_inClock In (Attendance)Record an employee clock-in. Optionally captures mood (employee well-being tracking) and location (remote/office/site). Returns an attendance entry with status='open'. Pair with attendance_clock_out to close the entry. / Registra una entrada de fichaje. Captura opcionalmente estado de animo y ubicacion.
attendance_clock_outClock Out (Attendance)Close an open attendance entry. Stamps clockOutAt and computes durationMinutes. Idempotent: clocking out an already-closed entry is a no-op. / Cierra una entrada de fichaje abierta. Calcula la duracion en minutos.
categorize_transactionCategorize TransactionApply a category to a bank transaction for manual classification. Categories map to expense categories for tax deduction tracking. Example: id='tx_abc', category='supplies', notes='Office paper Q1' / Asigna una categoria a un movimiento bancario. Las categorias se mapean a categorias de gastos para el control de deducciones fiscales.
create_clientCreate ClientCreate a new client/customer. Requires at minimum a name. Clients are used when creating invoices and quotes. Example: name='Acme Corp', email='billing@acme.com', taxId='B12345678', address={street:'Main St 1', city:'Madrid', country:'ES'} / Crea un nuevo cliente. Requiere como minimo un nombre. Los clientes se usan al crear facturas y presupuestos.
create_client_contactCreate Client ContactAdd a new contact person to a client. Requires a name at minimum. Example: clientId='abc123', name='Ana Garcia', email='ana@acme.com', role='CTO', isPrimary=true / Anade un nuevo contacto a un cliente. Requiere al menos un nombre.
create_client_noteCreate Client NoteAdd a note to a client. Notes are free-form text entries useful for keeping context. Do not include passwords, credentials, payment-card data, health data, or official/government identifiers. Example: clientId='abc123', content='Prefers invoices in English. Payment NET 30.' / Anade una nota a un cliente. No incluyas contrasenas, credenciales, datos de tarjetas, datos de salud ni identificadores oficiales.
create_credit_noteCreate Credit NoteCreate a full credit note (factura rectificativa) for an existing invoice, as a DRAFT. It does NOT issue: the draft carries no fiscal number, no hash and is not sent to VeriFactu — issue it from the app when you are ready. Always rectifies by differences (TipoRectificativa = I). Spanish market: R-type is derived from `reason` (error -> R1, anything else -> R4). Partial credits are not supported. Requires the `pro` plan. / Crea una factura rectificativa completa como BORRADOR. No emite: sin numero fiscal, sin hash, sin envio a VeriFactu. Siempre rectifica por diferencias (tipo I). El tipo R se …
create_depositCreate DepositRecord a deposit in Frihet's bookkeeping; no money is transferred. Requires clientId, clientName, amount, date and description. The API initializes status='active'; status and notes are not writable. Example: clientId='abc123', clientName='Example Client', amount=500, date='2026-10-21', description='Project retainer' / Registra un depósito contable sin transferir dinero. Requiere clientId, clientName, amount, date y description. La API inicia el estado 'active'; status y notes no son campos editables.
create_expenseCreate ExpenseRecord a new expense. Requires a description and amount. Useful for tracking business costs, deductible expenses, and vendor payments. Example: description='Office supplies', amount=49.99, category='office', vendor='Amazon', taxDeductible=true, paidDate='2026-03-15' / Registra un nuevo gasto. Requiere descripcion e importe. Util para seguimiento de costes, gastos deducibles y pagos a proveedores.
create_invoiceCreate InvoiceCreate a new invoice. Requires client name and at least one line item. The invoice number is auto-generated. Defaults to draft status and today's date. Example: clientName='Acme Corp', items=[{description:'Consulting', quantity:10, unitPrice:150}], taxRate=21, irpfRate=15 / Crea una nueva factura. Requiere nombre del cliente y al menos un concepto. El numero se genera automaticamente. Por defecto estado borrador y fecha de hoy. Soporta retencion IRPF (autonomos ES), recargo de equivalencia, serie, anticipo y descuento global.
create_productCreate ProductCreate a new product or service in the catalog. Requires a name and unit price. Products can be referenced when creating invoices and quotes for faster data entry. Example: name='Web Design', unitPrice=1500, taxRate=21, description='Full website redesign' / Crea un nuevo producto o servicio en el catalogo. Requiere nombre y precio unitario. Los productos se pueden usar al crear facturas y presupuestos para entrada rapida de datos.
create_quoteCreate QuoteCreate a new quote/estimate for a client. Requires client name and at least one line item. Quotes can later be converted to invoices. Defaults to draft status. Example: clientName='Acme Corp', items=[{description:'Design', quantity:1, unitPrice:3000}], validUntil='2026-04-30' / Crea un nuevo presupuesto. Requiere nombre del cliente y al menos un concepto. Los presupuestos se pueden convertir en facturas despues.
Show 144 more tools
create_recurring_invoiceCreate Recurring InvoiceCreate a new recurring invoice template. Specify frequency (daily/weekly/monthly/quarterly/yearly), recipient client, line items, and optional start date. The first invoice instance is generated on the next scheduled run date. Example: clientId='cli_abc', frequency='monthly', templateName='Servicio mensual', lineItems=[{description:'SaaS', quantity:1, unitPrice:299}] / Crea una nueva plantilla de factura recurrente. Especifica frecuencia, cliente destinatario, lineas y fecha de inicio opcional. La primera instancia se genera en la proxima fecha programada.
create_reservationCreate ReservationCreate a new reservation manually (not via channel sync). Requires property ID, check-in/check-out dates, and guest count. Optionally provide a guest ID or inline guest data to create a new guest. / Crea una nueva reserva manualmente. Requiere propiedad, fechas y numero de huespedes.
create_time_entryCreate Time EntryLog a time entry for a project. Requires projectId, hours (decimal), and date. Mark as billable=true to include in client invoicing. Example: projectId='proj_abc', hours=2.5, description='Frontend review', billable=true, date='2026-05-10' / Registra una entrada de tiempo para un proyecto. Requiere projectId, horas (decimal) y fecha. Marca billable=true para incluirlo en la facturacion al cliente.
create_vendorCreate VendorCreate a new vendor/supplier. Requires at minimum a name. Vendors are used when tracking expenses and purchase orders. Example: name='Office Supplies Ltd', email='billing@office.com', taxId='B87654321', address={street:'Gran Via 1', city:'Madrid', country:'ES'} / Crea un nuevo proveedor. Requiere como minimo un nombre. Los proveedores se usan al registrar gastos y pedidos de compra.
create_webhookCreate WebhookRegister a named webhook endpoint. You must specify the name, URL, and events to receive notifications and which events to subscribe to. Available events: invoice.created, invoice.updated, invoice.paid, expense.created, expense.updated, client.created, client.updated, quote.created, quote.updated, quote.accepted. Example: name='Invoice events', url='https://example.com/webhook', events=['invoice.created','invoice.paid'], secret='my-secret' / Registra un nuevo endpoint de webhook. Especifica la URL y los eventos a suscribir.
delete_clientDelete Clientcan change or delete dataPermanently delete a client by their ID. This action cannot be undone. Warning: this may affect existing invoices and quotes referencing this client. / Elimina permanentemente un cliente por su ID. Esta accion no se puede deshacer. Advertencia: puede afectar a facturas y presupuestos existentes.
delete_client_contactDelete Client Contactcan change or delete dataPermanently delete a contact from a client. This action cannot be undone. / Elimina permanentemente un contacto de un cliente. Esta accion no se puede deshacer.
delete_client_noteDelete Client Notecan change or delete dataPermanently delete a note from a client. This action cannot be undone. / Elimina permanentemente una nota de un cliente. Esta accion no se puede deshacer.
delete_depositDelete Depositcan change or delete dataPermanently delete a deposit by its ID. This action cannot be undone. / Elimina permanentemente un deposito por su ID. Esta accion no se puede deshacer.
delete_expenseDelete Expensecan change or delete dataPermanently delete an expense by its ID. This action cannot be undone. / Elimina permanentemente un gasto por su ID. Esta accion no se puede deshacer.
delete_invoiceDelete Invoicecan change or delete dataDelete an invoice by its ID. Requires confirm=true. Only a DRAFT invoice is removed permanently. A sent/paid/overdue invoice is NOT destroyed: the backend CANCELS it (status=cancelled) so the VeriFactu hash chain stays intact, and the document remains readable via get_invoice. The result reports which happened in `outcome` ("deleted" or "cancelled"). / Elimina una factura por su ID. Requiere confirm=true. Solo una factura en BORRADOR se elimina de forma permanente. Una factura emitida/pagada NO se destruye: se CANCELA (status=cancelled) para preservar la cadena de hash VeriFactu y sigue consul…
delete_productDelete Productcan change or delete dataPermanently delete a product by its ID. This action cannot be undone. / Elimina permanentemente un producto por su ID. Esta accion no se puede deshacer.
delete_quoteDelete Quotecan change or delete dataDelete a quote by its ID. Requires confirm=true. Only a clean DRAFT with no delivery, response, attachment, or conversion evidence is removed permanently; a protected draft is refused and left unchanged. A sent/accepted/rejected/expired quote is NOT destroyed: the backend CANCELS it (status=cancelled) — the same non-destructive path invoices take — and it stays readable via get_quote. The result reports which happened in `outcome` ("deleted" or "cancelled"). / Elimina un presupuesto por su ID. Requiere confirm=true. Solo un BORRADOR limpio sin evidencia de entrega, respuesta, adjuntos o conver…
delete_recurring_invoiceDelete Recurring Invoicecan change or delete dataPermanently delete a recurring invoice template. This does NOT delete previously generated invoices — only the template and future scheduled runs. Requires confirm=true to prevent accidental deletion. / Elimina permanentemente una plantilla de factura recurrente. No elimina facturas ya generadas — solo la plantilla y las ejecuciones futuras. Requiere confirm=true para evitar eliminaciones accidentales.
delete_time_entryDelete Time Entrycan change or delete dataSoft-delete a time entry by ID. Requires confirm=true to prevent accidental deletion. Deleted entries are excluded from billing reports but retained for audit. / Elimina (soft-delete) una entrada de tiempo por su ID. Requiere confirm=true para evitar eliminaciones accidentales. Las entradas eliminadas se excluyen de informes de facturacion pero se retienen en auditoria.
delete_vendorDelete Vendorcan change or delete dataPermanently delete a vendor by their ID. This action cannot be undone. Warning: this may affect existing expenses referencing this vendor. / Elimina permanentemente un proveedor por su ID. Esta accion no se puede deshacer. Advertencia: puede afectar a gastos existentes que referencien este proveedor.
delete_webhookDelete Webhookcan change or delete dataPermanently delete a webhook by its ID. Notifications will stop immediately. / Elimina permanentemente un webhook por su ID. Las notificaciones se detendran inmediatamente.
describe_toolDescribe toolread-onlyReturn the full original description, group, read-only flag and input field names for a specific Frihet ERP tool by its exact name (as returned by search_tools). Use this to load a tool's full depth on demand before calling it. [openWorldHint: false — reads the in-process tool catalog only.] / Devuelve la descripción completa de una herramienta por su nombre exacto.
duplicate_invoiceDuplicate InvoiceDuplicate an existing invoice for a new period. Copies all line items, client data, tax rate, and notes. Strips the original ID, document number, status, and timestamps. The new invoice starts as 'draft' with today's date (or the provided date). Perfect for recurring invoices — duplicate last month's invoice and adjust if needed. / Duplica una factura existente para un nuevo periodo. Copia conceptos, cliente, impuestos y notas. La nueva factura empieza como 'borrador' con fecha de hoy.
einvoice_exportExport E-Invoice XMLExport an invoice as inline e-invoicing XML in a specific format. Supports Facturae (ES B2G), XRechnung-CII (DE), XRechnung-UBL (DE), Factur-X EN16931 (FR), FatturaPA (IT), PEPPOL-BIS-3 (EU network), FA-2-KSeF (PL), UBL and CII (generic). Factur-X Extended, Basic and Minimum are not exposed by this endpoint and are refused rather than collapsed to a different profile. For Facturae, set signed=true to get XAdES-enveloped XML for FACe/AEAT submission. Returns the generated XML inline with its MIME type and filename. / Exporta una factura como XML de facturacion electronica en el formato especi…
export_datevExport DATEVread-onlyExport accounting data in DATEV EXTF format for import into DATEV Kanzlei-Rechnungswesen or compatible systems. Returns a signed download URL valid for 24 hours. Supported EXTF formats: • extf-buchungsstapel — Journal entries (Buchungsstapel) — most common, use for P&L/tax • extf-debitoren — Accounts receivable master data (Debitoren-/Kreditorenstamm AR) • extf-kreditoren — Accounts payable master data (Debitoren-/Kreditorenstamm AP) Output encoding is always CP1252 per DATEV EXTF specification. Date range: both periodStart and periodEnd must be ISO 8601 dates (YYYY-MM-DD). If the D…
face_statusGet FACe Submission Statusread-onlyPoll the status of a FACe (Spain B2G) invoice submission. Returns the current FACe portal state code, description, and the registro number. Common FACe status codes: • 1200 — Registrada / Registered (submission received) • 1300 — En proceso de contabilización / In accounting (being processed) • 1400 — Contabilizada / Accounted (approved, awaiting payment) • 2400 — Anulada / Cancelled • 3100 — Rechazada / Rejected (check rejectionReason) / Consulta el estado de un envío a FACe. Devuelve el código de estado, descripción y número de registro.
face_submitSubmit to FACe (Spain B2G)Requires confirm=true as a local client/agent interlock before submitting a Facturae invoice to Spain's FACe B2G portal. This flag is not server-verifiable human attestation and is never forwarded to the API. The invoice must have a recipient with DIR3 administrative unit codes (órgano gestor, unidad tramitadora, oficina contable). Returns a submission reference (registro) that can be used with face_status to poll the portal. Modes: • mock — local simulation only, no network call (safe for dev/test) • sandbox — FACe pre-production endpoint (requires sandbox credentials) • production — …
frihet_aiem_calculateCalculate AIEM (Arbitrio Importación Canarias)read-onlyNOT DEPLOYED: AIEM (Arbitrio sobre Importaciones y Entrega de Mercancias, Canary Islands) calculation has no Frihet backend yet; calling this tool returns a NOT_DEPLOYED error and never a rate or amount. / NO DESPLEGADO: el calculo del AIEM (Canarias) aun no tiene backend en Frihet; devuelve un error NOT_DEPLOYED y nunca un tipo ni una cuota.
frihet_bank_rule_createCreate Bank Categorization RuleCreate a new bank auto-categorization rule. Rules apply automatically to matching incoming transactions. The ERP new-engine vocabulary: `bankConditions` (AND logic) + a single `action` (`categorize_expense` | `match_invoice` | `match_client` | `ignore` | `create_expense` | `flag_review`) and its `actionConfig` payload. Required actionConfig per action: categorize_expense→{category}, match_client→{clientId}, create_expense→{expenseDefaults:{vendor,category,…}}, flag_review→{flag}; match_invoice and ignore require no config. Example: name='Mercadona groceries', bankConditions=[{field:'descriptio…
frihet_bank_rules_listList Bank Categorization Rulesread-onlyList all bank auto-categorization rules for the workspace. Rules automatically categorize transactions matching conditions (description, amount, counterparty). Returns rule name, conditions, actions (category/tag/client assign), and active status. / Lista las reglas de categorizacion automatica de transacciones bancarias del workspace. Devuelve nombre, condiciones, acciones (categoria/etiqueta/cliente) y estado activo.
frihet_gl_entry_approveApprove GL EntryApprove a General Ledger journal entry pending review. Sets entry status to 'approved' and records the approver + timestamp in the audit trail. Requires gestor/admin role. This is a TRUST AREA action — double-check entry ID before calling. Example: entryId='gl_2026_q1_042'. / Aprueba un asiento contable pendiente de revision. Requiere rol gestor/admin. Accion de area de confianza.
frihet_gl_entry_audit_logGet GL Entry Audit Logread-onlyRetrieve the full audit trail for a General Ledger entry — all state transitions (created, submitted, approved, rejected), who acted, and when. Use this to investigate approval history or compliance audits. Example: entryId='gl_2026_q1_042'. / Obtiene el historial de auditoría completo de un asiento contable. Muestra todas las transiciones de estado, quien actuo y cuando.
frihet_gl_entry_rejectReject GL EntryReject a General Ledger journal entry pending review with a required note. Sets entry status to 'rejected' and records the rejector + note in the audit trail. Requires gestor/admin role. This is a TRUST AREA action. Example: entryId='gl_2026_q1_042', note='Importe incorrecto, revisar factura F-2026-042'. / Rechaza un asiento contable pendiente con una nota obligatoria. Requiere rol gestor/admin.
frihet_modelo_200_summaryGet Modelo 200 Summary (Corporate Tax — Annual IS)read-onlyNOT DEPLOYED: Modelo 200 (annual corporate income tax return, Impuesto sobre Sociedades) has no Frihet backend yet; calling this tool returns a NOT_DEPLOYED error and never data. / NO DESPLEGADO: el Modelo 200 (declaracion anual del Impuesto sobre Sociedades) aun no tiene backend en Frihet; devuelve un error NOT_DEPLOYED y nunca datos.
frihet_modelo_202_summaryGet Modelo 202 Summary (Corporate Tax — Installment Payments)read-onlyNOT DEPLOYED: Modelo 202 (Impuesto sobre Sociedades installment payments, 1P/2P/3P) has no Frihet backend yet; calling this tool returns a NOT_DEPLOYED error and never data. / NO DESPLEGADO: el Modelo 202 (pagos fraccionados del Impuesto sobre Sociedades) aun no tiene backend en Frihet; devuelve un error NOT_DEPLOYED y nunca datos.
frihet_modelo_415_summaryGet Modelo 415 Summary (IGIC Annual Operations >€3,005)read-onlyNOT DEPLOYED: IGIC Modelo 415 (annual declaration of operations with third parties exceeding €3,005, Canary Islands) has no Frihet backend yet; calling this tool returns a NOT_DEPLOYED error and never data. / NO DESPLEGADO: el Modelo 415 IGIC (operaciones con terceros > €3.005) aun no tiene backend en Frihet; devuelve un error NOT_DEPLOYED y nunca datos.
frihet_modelo_418_summaryGet Modelo 418 Summary (IGIC Monthly, Group of Entities)read-onlyNOT DEPLOYED: IGIC Modelo 418 is the monthly individual self-assessment filed by each entity (dominant and dependent) under the special regime for groups of entities (regimen especial del grupo de entidades, Agencia Tributaria Canaria). It has no Frihet backend yet; calling this tool returns a NOT_DEPLOYED error and never data. / NO DESPLEGADO: el Modelo 418 IGIC es la autoliquidacion mensual individual de cada entidad del regimen especial del grupo de entidades (ATC). Aun no tiene backend en Frihet; devuelve un error NOT_DEPLOYED y nunca datos.
frihet_modelo_425_summaryGet Modelo 425 Summary (IGIC Annual Recap)read-onlyNOT DEPLOYED: IGIC Modelo 425 (annual IGIC recap, Canary Islands) has no Frihet backend yet; calling this tool returns a NOT_DEPLOYED error and never data. / NO DESPLEGADO: el Modelo 425 IGIC (resumen anual) aun no tiene backend en Frihet; devuelve un error NOT_DEPLOYED y nunca datos.
frihet_portal_domain_addAdd Custom Portal DomainAdd a custom domain to the Frihet client portal for white-label branding. Returns DNS records (CNAME) that must be configured at the registrar before verification. Example: domain='portal.miempresa.com'. / Agrega un dominio personalizado al portal de clientes Frihet para marca blanca. Devuelve los registros DNS (CNAME) que deben configurarse en el registrador antes de verificar.
frihet_portal_domain_removeRemove Custom Portal Domaincan change or delete dataRemove a custom domain from the Frihet client portal. The portal will revert to the default Frihet subdomain. Example: domain='portal.miempresa.com'. / Elimina un dominio personalizado del portal de clientes Frihet. El portal volverá al subdominio predeterminado de Frihet.
frihet_portal_domain_verifyVerify Custom Portal Domainread-onlyVerify DNS propagation for a custom portal domain added via frihet_portal_domain_add. Returns verification status (pending/verified/failed) and any DNS errors. DNS propagation can take up to 48 hours — retry if status is 'pending'. Example: domain='portal.miempresa.com'. / Verifica la propagacion DNS de un dominio de portal personalizado. Devuelve estado (pending/verified/failed). La propagacion puede tardar hasta 48h.
frihet_portal_onboard_link_generateGenerate Portal Self-Onboard LinkGenerate a time-limited, single-use self-onboard invitation link for a prospective client. The client follows the link to register their company details (CIF, address, contact) without requiring manual data entry by the gestor. Requires gestor/admin role. Example: email='cliente@empresa.com', expiresInHours=72. / Genera un enlace de auto-registro para un cliente potencial. El cliente completa sus datos sin que el gestor tenga que introducirlos manualmente. Requiere rol gestor/admin.
frihet_tax_id_vies_lookupLookup Tax ID via VIES (EU VAT Validation)read-onlyValidate an EU VAT number (CIF intracomunitario) via the VIES (VAT Information Exchange System). Returns company name, address, and validity status from the official EU registry. Essential for intra-EU invoicing compliance — always validate before adding a EU client. Example: vatNumber='ES12345678A', countryCode='ES'. / Valida un numero de IVA intracomunitario (CIF) via el sistema VIES de la UE. Devuelve nombre, direccion y validez desde el registro oficial europeo.
gestoria_aging_consolidatedConsolidated AR Aging (Gestoria)read-onlyGet a cross-client AR aging report for a gestor — totals bucketed by current / 30-60 / 60-90 / 90+ days overdue, a per-workspace breakdown, and the top overdue invoices. The ERP requires POST /v1/gestoria/aging with a body listing the workspaces to include (defaults to the authenticated gestor when `workspaceIds` is omitted). Useful for dunning prioritisation and end-of-month chase lists. / Obtiene un informe de antiguedad de saldos cruzando los clientes del gestor — totales por tramo (al dia / 30-60 / 60-90 / 90+ dias), desglose por espacio y top vencidas. Util para priorizar reclamaciones y …
gestoria_message_sendSend Gestoria MessageSend a message in a contextual thread between a gestor (accountant) and a client. Threads attach to a document request, a filing item, or a fiscal obligation — context is preserved so both sides see what the message is about. Useful for chasing a missing document, replying to a client's question, or annotating a presentation. Example: workspaceId='ws_abc', parentType='documentRequest', parentId='dr_q3_iva', body='Falta el extracto bancario de septiembre'. / Envia un mensaje en un hilo contextual entre gestor y cliente. Los hilos se anclan a una solicitud de documento, presentacion o obligacion…
gestoria_messages_listList Gestoria Messagesread-onlyList messages in a contextual gestor/cliente thread, newest first. Use `before` (message ID or ISO timestamp) to paginate backwards through history. Returns up to `limit` messages plus a `hasMore` flag so the agent knows when to stop. / Lista los mensajes de un hilo gestor/cliente, mas recientes primero. Usa `before` (ID o fecha) para paginar hacia atras. Devuelve hasta `limit` mensajes con flag `hasMore`.
gestoria_template_bulk_sendBulk Send Gestoria TemplateSend the same document request template to up to 500 client workspaces in one call. Each spawned request triggers the per-client notification handler (email + in-app). Honours `allowGestoriaCommunications=false` on the client user doc (opt-out). Uses `periodOverrides` to plug runtime values (quarter/year/month) into template variables. Returns a per-client outcome with success count, failures, and total wall-clock duration. Trust Area: RGPD — recipients must already have granted accountant access. Example: templateId='tpl_iva_q', clientWorkspaceIds=['ws_a','ws_b','ws_c'], periodOverrides={quar…
gestoria_template_createCreate Gestoria TemplateCreate a reusable document request template that the gestor can bulk-send to many client workspaces. Template body supports plain-text variable interpolation (e.g. `{{quarter}}`, `{{year}}`). `dueDateOffsetDays` sets when the request is due relative to the bulk-send date. `attachmentRequired=true` enforces clients to upload a file before marking complete. Example: name='IVA trimestral', title='Documentacion IVA {{quarter}}/{{year}}', description='Adjunta extractos bancarios y facturas emitidas del {{quarter}}', dueDateOffsetDays=14, attachmentRequired=true. / Crea una plantilla de solicitud de…
get_bank_accountGet Bank Accountread-onlyGet a single connected bank account by ID. Returns alias, IBAN (last 4 digits), currency, current balance, and last sync timestamp. / Obtiene una cuenta bancaria conectada por su ID. Devuelve alias, IBAN (ultimos 4 digitos), divisa, saldo actual y ultima sincronizacion.
get_business_contextGet Business Contextread-onlyGet complete business context — profile, defaults, plan limits, recent activity, top clients, and current month summary. Call this FIRST in any session to understand the user's business. Returns everything an AI agent needs to provide personalized help without multiple round-trips. / Obtiene el contexto completo del negocio — perfil, limites del plan, actividad reciente, principales clientes y resumen del mes actual. Llama a esto PRIMERO en cualquier sesion.
get_clientGet Clientread-onlyGet a single client by their ID. Returns full contact details. / Obtiene un cliente por su ID. Devuelve todos los datos de contacto.
get_depositGet Depositread-onlyGet a single deposit by its ID. / Obtiene un deposito por su ID.
get_einvoice_statusGet E-Invoice Statusread-onlyPoll the status of an e-invoice dispatch workflow. Returns current step, ack ID (network confirmation), and download URLs once complete. Poll every 5–10 seconds until status is 'succeeded', 'failed', or 'cancelled'. If the status backend is not deployed for this workspace, returns an honest 'unavailable' response — never a fabricated status. / Consulta el estado de un flujo de envio de factura electronica.
get_expenseGet Expenseread-onlyGet a single expense by its ID. / Obtiene un gasto por su ID.
get_invoiceGet Invoiceread-onlyGet a single invoice by its ID. Returns the full invoice including line items, totals, and status. / Obtiene una factura por su ID. Devuelve la factura completa con conceptos, totales y estado.
get_invoice_einvoiceGet Invoice E-Invoice Artifactread-onlyDownload the stored e-invoice artifact for an invoice. XML formats return strict UTF-8 text in `xml`; Factur-X returns `application/pdf` bytes encoded in `base64`. Both include `id`, `contentType`, and `sizeBytes`. XML larger than 5 MiB or PDF larger than 25 MiB is rejected with `413 payload_too_large`. Only available after the invoice has been saved/sent. / Descarga el artefacto de factura electronica guardado. Los formatos XML devuelven texto UTF-8 estricto en `xml`; Factur-X devuelve bytes `application/pdf` codificados en `base64`. Ambos incluyen `id`, `contentType` y `sizeBytes`. XML mayor…
get_invoice_pdfGet Invoice PDFread-onlyGet the PDF for an invoice. The body is served as raw `application/pdf` bytes, base64-encoded in `base64` with `sizeBytes` and `contentType`. PDFs larger than 25 MiB are rejected with `413 payload_too_large`. / Obtiene el PDF de una factura. El cuerpo se sirve como bytes `application/pdf` en bruto, codificados en base64 en `base64`, con `sizeBytes` y `contentType`. PDFs mayores de 25 MiB se rechazan con `413 payload_too_large`.
get_kitchen_ticketGet Kitchen Ticketread-onlyGet a single kitchen ticket by ID. Returns full ticket details including all items, their individual statuses, station assignment, and table reference. / Obtiene un ticket de cocina por ID. Devuelve todos los detalles: items, estados individuales, estacion asignada y referencia de mesa.
get_modelo_130_summaryGet Modelo 130 Summary (IRPF Estimated Payment)read-onlyGet IRPF estimated payment summary for Modelo 130 filing (freelancers/self-employed in Spain). Returns quarterly net income, deductible expenses, previous payments, and amount due. Example: period='2026-Q1' / Obtiene el resumen del pago fraccionado IRPF para el Modelo 130 (autonomos). Devuelve rendimiento neto, gastos deducibles, pagos previos y cuota a ingresar.
get_modelo_180_summaryGet Modelo 180 Summary (IRPF Rentals Annual)read-onlyNOT DEPLOYED: Modelo 180 (annual informative return of IRPF withholdings on rental income, Spain) has no Frihet backend yet; calling this tool returns a NOT_DEPLOYED error and never data. / NO DESPLEGADO: el Modelo 180 (resumen anual de retenciones sobre alquileres) aun no tiene backend en Frihet; esta herramienta devuelve un error NOT_DEPLOYED y nunca datos.
get_modelo_303_summaryGet Modelo 303 Summary (IVA Quarterly)read-onlyGet IVA (VAT) quarterly summary for Modelo 303 filing in Spain. Returns aggregated totals by tax rate, deductible IVA, net amount due, and filing deadline. Example: period='2026-Q1' / Obtiene el resumen trimestral del IVA para el Modelo 303 en Espana. Devuelve totales por tipo impositivo, IVA deducible, cuota a ingresar y plazo.
get_modelo_347_summaryGet Modelo 347 Summary (Operations >€3,005 Annual Recap)read-onlyGet annual informative summary of operations exceeding €3,005 per counterparty (Modelo 347, Spain). Returns per-party totals for clients and vendors above the threshold. Example: period='2025' / Obtiene el resumen anual de operaciones con terceros superiores a 3.005€ (Modelo 347). Devuelve totales por cliente/proveedor que superen el umbral.
get_modelo_390_summaryGet Modelo 390 Summary (IVA Annual Recap)read-onlyGet IVA annual summary for Modelo 390 filing in Spain. Returns full-year totals by rate, total deductible IVA, and annual balance. Example: period='2025' / Obtiene el resumen anual del IVA para el Modelo 390. Devuelve totales anuales por tipo, IVA deducible total y resultado anual.
get_monthly_summaryGet Monthly Summaryread-onlyGet complete monthly financial summary — revenue, expenses, profit, tax liability, invoice stats, expense breakdown by category. Defaults to current month. Use this to answer questions about financial performance, cash flow, or monthly P&L. / Resumen financiero mensual completo — ingresos, gastos, beneficio, impuestos, estadisticas de facturas, desglose de gastos por categoria. Por defecto el mes actual.
get_productGet Productread-onlyGet a single product/service by its ID. / Obtiene un producto/servicio por su ID.
get_quarterly_taxesGet Quarterly Taxesread-onlyGet quarterly tax preparation data — Modelo 303 (IVA/IGIC), Modelo 130 (IRPF income tax advance), revenue/expense totals, tax collected vs deductible. Defaults to current quarter. Essential for filing quarterly tax returns with AEAT or ATC (Canary Islands). / Datos de preparacion de impuestos trimestrales — Modelo 303, Modelo 130, totales de ingresos/gastos, impuesto repercutido vs soportado. Por defecto trimestre actual.
get_quoteGet Quoteread-onlyGet a single quote/estimate by its ID. Returns the full quote with line items and totals. / Obtiene un presupuesto por su ID. Devuelve el presupuesto completo con conceptos y totales.
get_recurring_invoiceGet Recurring Invoiceread-onlyGet full details of a recurring invoice template by ID. Returns template name, frequency, next run date, recipient, line items, and active/paused status. / Obtiene los detalles completos de una plantilla de factura recurrente por ID. Devuelve nombre, frecuencia, proxima ejecucion, destinatario, lineas y estado.
get_reservationGet Reservationread-onlyGet a single reservation by ID. Returns full booking details: guest, property, dates, channel, payment status, and notes. / Obtiene una reserva por ID. Devuelve todos los detalles de la reserva.
get_saleGet POS Saleread-onlyGet a single POS sale by ID. Returns full sale details: terminal, items, payment method, amounts, and status. / Obtiene una venta POS por ID. Devuelve todos los detalles: terminal, articulos, metodo de pago, importes y estado.
get_time_entryGet Time Entryread-onlyGet full details of a single time tracking entry by ID. Returns project, user, hours, description, billable flag, date and status. / Obtiene los detalles completos de una entrada de tiempo por su ID. Devuelve proyecto, usuario, horas, descripcion, facturabilidad, fecha y estado.
get_time_summaryGet Time Summaryread-onlyGet aggregated time tracking summary for a workspace or specific team member. Returns total hours, billable hours, non-billable hours, and estimated cost for the period. Filter by date range and optionally by user ID for per-member breakdowns. / Obtiene el resumen agregado de seguimiento de tiempo para el espacio de trabajo o un miembro. Devuelve horas totales, facturables, no facturables y coste estimado del periodo. Filtra por rango de fechas y opcionalmente por usuario para desglose por miembro.
get_vendorGet Vendorread-onlyGet a single vendor/supplier by their ID. Returns full contact details. / Obtiene un proveedor por su ID. Devuelve todos los datos de contacto.
get_webhookGet Webhookread-onlyGet a single webhook configuration by its ID. / Obtiene la configuracion de un webhook por su ID.
global_searchGlobal Searchread-onlySearch across invoices, expenses, vendors, clients, and products in one call. Use this to resolve an entity name/email/number when you do not yet know the resource type. Returns per-hit {type, id, name, ...} so the caller can dispatch to the right list/get tool. Read-only and workspace-scoped. Example: q='acme', types=['clients','invoices'], limit=10 / Busca en facturas, gastos, proveedores, clientes y productos en una sola llamada. Util para resolver un nombre/correo/numero cuando no se sabe aun el tipo de recurso.
invite_team_memberInvite Team MemberInvite a new member to the workspace by email address. An invitation email is sent — the member must accept before gaining access. Assignable roles: admin, editor, accountant, viewer. Exact access follows the workspace's current role policy. Owner is excluded from invitations and must be transferred via a dedicated flow. Example: email='ana@example.com', role='accountant' / Invita a un nuevo miembro al espacio de trabajo por correo electronico. Se envia un email de invitacion — el miembro debe aceptar antes de acceder. Roles asignables: admin, editor, accountant, viewer. El acceso exacto depen…
kitchen_flow_summaryKitchen Flow Summaryread-onlySlow-station detection: aggregates open kitchen tickets per station and flags the bottleneck (station with the highest open-ticket count). Returns per-station openTickets count, oldest wait time in seconds, and an isBottleneck flag. Call this first to diagnose kitchen throughput issues before drilling into individual tickets. / Deteccion de cuello de botella: agrega tickets abiertos por estacion y marca la mas saturada. Devuelve openTickets, tiempo de espera mas antiguo y flag isBottleneck por estacion. Llamar primero para diagnosticar problemas de rendimiento de cocina.
ksef_submitSubmit to KSeF (Poland)Submit an invoice to the Polish KSeF (Krajowy System e-Faktur) national e-invoicing system. Poland requires e-invoicing for B2B transactions (mandatory phase rolling out 2025). Modes: • mock — local simulation (no network call, safe for dev/test) • sandbox — KSeF test environment (demo.ksef.mf.gov.pl) • production — live KSeF endpoint (ksef.mf.gov.pl) NOTE: This tool is a forward-compatible stub. The KSeF transport is infra-ready in Frihet-ERP but not yet exposed as a live public endpoint (production gated on KSeF cert issuance). Until activated, all calls return a NotImplementedYet …
leave_approveApprove Leave RequestTRUST AREA — HR DECISION. Approve a pending leave request. Logs decision with timestamp and approver. Idempotent: re-approving an already approved leave is a no-op. / AREA DE CONFIANZA — DECISION RRHH. Aprueba una solicitud de permiso pendiente. Registra la decision.
leave_cancelCancel Leave RequestCancel a leave request. Typically used by the requesting employee before approval, or by HR after approval (which may trigger schedule rollback). / Cancela una solicitud de permiso (por el empleado o RRHH).
leave_listList Leave Requestsread-onlyList leave/PTO requests with optional filters. Filter by employee, status (pending/approved/rejected/cancelled), or period (date range). Useful for HR dashboards, calendar views, balance tracking. / Lista solicitudes de permisos con filtros opcionales (empleado, estado, periodo).
leave_rejectReject Leave RequestTRUST AREA — HR DECISION. Reject a pending leave request with a required reason. Reason is mandatory for transparency and labor-law compliance. / AREA DE CONFIANZA — DECISION RRHH. Rechaza una solicitud con motivo obligatorio.
leave_request_createCreate Leave RequestCreate a new leave/PTO request for an employee. Types: 'vacation', 'sick', 'personal', 'parental', 'bereavement', 'other'. Dates must be ISO 8601 (YYYY-MM-DD). Status starts as 'pending' awaiting manager approval. / Crea una nueva solicitud de vacaciones/permiso. Estado inicial 'pending' pendiente aprobacion.
list_bank_accountsList Bank Accountsread-onlyList all connected bank accounts for the workspace. Returns alias, IBAN (last 4 digits only for security), currency, balance, and last sync timestamp. / Lista todas las cuentas bancarias conectadas al espacio de trabajo. Devuelve alias, IBAN (solo ultimos 4 digitos por seguridad), divisa, saldo y ultima sincronizacion.
list_client_activitiesList Client Activitiesread-onlyList all CRM activities for a client with optional pagination. Returns calls, emails, meetings, and tasks logged against the client. / Lista todas las actividades CRM de un cliente con paginacion opcional.
list_client_contactsList Client Contactsread-onlyList all contacts for a client with optional pagination. Returns name, email, phone, role, and primary flag. / Lista todos los contactos de un cliente con paginacion opcional.
list_client_notesList Client Notesread-onlyList all notes for a client with optional pagination. / Lista todas las notas de un cliente con paginacion opcional.
list_clientsList Clientsread-onlyList all clients/customers with optional pagination. Returns contact info, tax IDs, and addresses. / Lista todos los clientes con paginacion opcional. Devuelve informacion de contacto, NIF/CIF y direcciones.
list_depositsList Depositsread-onlyList all deposits with optional pagination and date range filters. Returns deposits sorted by date (newest first). Example: from='2026-01-01', to='2026-03-31', clientId='abc', limit=50 / Lista todos los depositos con paginacion y filtros de fecha opcionales.
list_expensesList Expensesread-onlyList all expenses with optional pagination and date range filters. Returns expenses sorted by date (newest first). Example: from='2026-01-01', to='2026-03-31', limit=50 / Lista todos los gastos con paginacion y filtros de fecha opcionales.
list_invoicesList Invoicesread-onlyList all invoices with optional pagination and filters. Returns a paginated list sorted by issue date (newest first). Supports filtering by status (draft/sent/paid/overdue/cancelled) and date range. Example: status='paid', from='2026-01-01', to='2026-03-31', limit=20 / Lista facturas con paginacion y filtros opcionales. Soporta filtrado por estado y rango de fechas.
list_kitchen_stationsList Kitchen Stationsread-onlyList all kitchen stations. Returns station id, name, and active status. Use kitchen_flow_summary to see per-station ticket load and bottlenecks. / Lista todas las estaciones de cocina. Devuelve id, nombre y estado activo. Usa kitchen_flow_summary para ver carga por estacion y cuellos de botella.
list_kitchen_ticketsList Kitchen Ticketsread-onlyList all kitchen order tickets for the live order board, with optional filters by status or station. Returns ticket id, station, status, table ref, and items. / Lista todos los tickets de cocina del panel en vivo, con filtros opcionales por estado o estacion. Devuelve id, estacion, estado, mesa e items.
list_menu_itemsList Menu Itemsread-onlyList the kitchen menu catalog. Supports free-text search and active/inactive filter. Returns item id, name, description, price, category, and active status. / Lista el catálogo de menu de cocina. Admite búsqueda de texto y filtro activo/inactivo. Devuelve id, nombre, descripcion, precio, categoria y estado activo.
list_productsList Productsread-onlyList all products/services with optional pagination. Products are reusable items that can be added to invoices and quotes. / Lista todos los productos/servicios con paginacion opcional. Los productos son conceptos reutilizables para facturas y presupuestos.
list_propertiesList Propertiesread-onlyList all rental properties for the workspace. Returns name, address, capacity, owner info, and license number. / Lista todas las propiedades de alquiler vacacional. Devuelve nombre, direccion, capacidad, datos del propietario y numero de licencia.
list_quotesList Quotesread-onlyList all quotes/estimates with optional pagination and filters. Quotes are proposals sent to clients before they become invoices. Supports filtering by status (draft/sent/accepted/rejected/expired) and date range. Example: status='sent', from='2026-01-01', limit=20 / Lista todos los presupuestos con paginacion y filtros opcionales. Soporta filtrado por estado y rango de fechas.
list_recurring_invoicesList Recurring Invoicesread-onlyList all recurring invoice templates. Returns template name, frequency, next scheduled run date, recipient, line items, and active/paused status. / Lista todas las plantillas de facturas recurrentes. Devuelve nombre de la plantilla, frecuencia, proxima fecha de ejecucion, destinatario, lineas y estado.
list_reservationsList Reservationsread-onlyList all reservations for the workspace, with optional filters by property, status, or date range. Returns guest, dates, channel, and total. / Lista todas las reservas del espacio de trabajo, con filtros opcionales por propiedad, estado o rango de fechas.
list_salesList POS Salesread-onlyList POS sales with optional filters by date range, terminal, or status. / Lista las ventas POS con filtros opcionales por fecha, terminal o estado.
list_team_membersList Team Membersread-onlyList active workspace team members and pending invitations. The workspace owner is NOT a member row and is excluded. Each row carries member ID, name, email, role, and status (active/pending/expired/invalid; role is null on invalid invitations). Useful for reviewing team access and outstanding invitations. / Lista miembros activos del equipo e invitaciones pendientes. El propietario del espacio NO aparece como miembro y queda excluido. Cada fila lleva ID, nombre, email, rol y estado (active/pending/expired/invalid; rol null en invitaciones invalidas). Util para revisar el acceso del equipo y l…
list_terminalsList POS Terminalsread-onlyList all configured POS terminals (Stripe Terminal readers) for the workspace. Returns terminal label, device type, location, and connection status. / Lista todos los terminales de punto de venta (lectores Stripe Terminal). Devuelve etiqueta, tipo de dispositivo, ubicacion y estado de conexion.
list_time_entriesList Time Entriesread-onlyList time tracking entries with optional filters. Filter by user, project, date range, or billable status. Useful for generating timesheets, billing reports, and project cost analysis. / Lista entradas de tiempo con filtros opcionales. Filtra por usuario, proyecto, rango de fechas o facturabilidad. Util para partes de trabajo, informes de facturacion y analisis de costes por proyecto.
list_tool_groupsList tool groupsread-onlyDescription is built at runtime.
list_transactionsList Bank Transactionsread-onlyList bank transactions with optional filters. Filter by account, date range, status (pending/posted/excluded), or category. Useful for reconciliation, expense matching, and cash flow analysis. / Lista movimientos bancarios con filtros opcionales. Filtra por cuenta, rango de fechas, estado (pendiente/contabilizado/excluido) o categoria. Util para conciliacion, asignacion de gastos y analisis de flujo de caja.
list_vendorsList Vendorsread-onlyList all vendors/suppliers with optional pagination and search. Returns contact info, tax IDs, and addresses. / Lista todos los proveedores con paginacion y busqueda opcional. Devuelve informacion de contacto, NIF/CIF y direcciones.
list_webhooksList Webhooksread-onlyList all configured webhooks. Webhooks send HTTP POST notifications when events occur in Frihet. / Lista todos los webhooks configurados. Los webhooks envian notificaciones HTTP POST cuando ocurren eventos en Frihet.
log_client_activityLog Client ActivityLog a CRM activity against a client. Use to track calls, emails, meetings, or tasks. Do not include passwords, credentials, payment-card data, health data, or official/government identifiers in free-text fields. Example: clientId='abc123', type='call', title='Discussed Q2 proposal', description='Client interested in upgrade' / Registra una actividad CRM para un cliente. No incluyas contrasenas, credenciales, datos de tarjetas, datos de salud ni identificadores oficiales en los campos de texto libre.
mark_invoice_paidMark Invoice PaidMark an invoice as paid. Optionally specify the payment date. Defaults to today if no date is provided. / Marca una factura como pagada. Opcionalmente especifica la fecha de pago.
match_transaction_to_invoiceMatch Transaction to InvoiceTRUST AREA — RECONCILIATION. Link a bank transaction to an invoice or expense document. This affects fiscal reconciliation records. Requires confirm=true to proceed. Idempotent: re-matching to same document is a no-op. Example: transactionId='tx_abc', documentId='inv_xyz', documentType='invoice', confirm=true / AREA DE CONFIANZA — CONCILIACION. Vincula un movimiento bancario a una factura o gasto. Afecta registros de conciliacion fiscal. Requiere confirm=true para ejecutar.
overtime_reportOvertime Reportread-onlyRead the ERP overtime computation for a calendar month or year: daily and weekly overtime, worked/regular/overtime minutes, overtime hours, and compliance alerts computed from records in the selected period. Optionally filter the attendance records by employee. Period format: 'YYYY-MM' or 'YYYY'. / Lee desgloses diarios y semanales, y minutos/horas agregados calculados con los registros del periodo seleccionado, con alertas.
pause_recurring_invoicePause Recurring InvoicePause an active recurring invoice template. No new invoices are generated while paused. The template is preserved — use resume_recurring_invoice to restart. / Pausa una plantilla de factura recurrente activa. No se generan nuevas facturas mientras esta pausada. Usa resume_recurring_invoice para reanudarla.
payroll_checklistPayroll Readiness Checklistread-onlyList payable employees (active or on leave) for a month, whether each has a payroll profile, whether its required fields are ready, which fields are missing, and monthly review state. Suspended and offboarded employees are excluded. Use before payroll_export. / Lista empleados pagables y la preparacion real de su perfil de nomina.
payroll_exportPayroll Export-Ready Dataread-onlyRead the normalized payroll-ready employee dataset for a month. The ERP accepts 'a3', 'contasol', 'sage', or 'siltra' as a destination label and echoes it; the response is JSON and is identical across formats apart from that label. No CSV, XML, PDF, or provider-specific file is generated. Frihet does not calculate payroll. / Lee los datos normalizados listos para nomina; no genera un archivo especifico del proveedor.
period_closeClose Accounting Periodcan change or delete dataTRUST AREA — FISCAL CLOSE. NOT IMPLEMENTED SERVER-SIDE TODAY: the backend answers HTTP 501 NOT_IMPLEMENTED to POST /v1/periods/close, so calling this tool closes nothing. No invoices, expenses, journal entries or bank reconciliations are frozen, and there is no idempotent no-op to rely on. Close the period in the Frihet app instead. The call is still gated behind confirm=true and will surface the 501 as an error. Use period_close_status (implemented) to read the current period state. / AREA DE CONFIANZA — CIERRE FISCAL. HOY NO IMPLEMENTADO EN EL SERVIDOR: el backend responde HTTP 501 a POST /v…
period_close_statusPeriod Close Statusread-onlyGet the open or closed state of the current fiscal year, including its fiscal-year start, inclusive date range, and nullable closing details. Pass a four-digit fiscal-year label to read it explicitly. / Devuelve el estado abierto o cerrado del ejercicio fiscal actual o indicado.
period_reopenReopen Accounting Periodcan change or delete dataTRUST AREA — FISCAL REOPEN. NOT IMPLEMENTED SERVER-SIDE TODAY: the backend answers HTTP 501 NOT_IMPLEMENTED to POST /v1/periods/{id}/reopen, so calling this tool reopens nothing and writes no audit entry. Reopen the period in the Frihet app instead. The call is still gated behind confirm=true plus a reason, and will surface the 501 as an error. / AREA DE CONFIANZA — REAPERTURA FISCAL. HOY NO IMPLEMENTADO EN EL SERVIDOR: el backend responde HTTP 501, asi que no se reabre nada ni se registra auditoria. Hazlo en la app de Frihet.
permissions_matrixPermissions Matrixread-onlyReturn the backend's documented RBAC-model snapshot by role, resource, and action. It is not derived from Firestore rules and is not a runtime authorization guarantee; a backend 403 is authoritative. / Devuelve el modelo RBAC documentado, no una garantia exhaustiva de autorizacion.
permissions_meMy Permissionsread-onlyReturn the caller's backwards-compatible RBAC-model fields separately from actual API-key scopes, unrestricted-key semantics, known e-invoice scope denial, and surfaces not reported here. This is non-exhaustive; use the exact backend 403 as authority. / Separa el modelo RBAC de los scopes reales de la API key; no es una autorizacion exhaustiva.
refund_depositRecord Deposit Refundcan change or delete dataRecord a full or partial deposit refund in Frihet's bookkeeping; no money is transferred. Requires confirm=true. Omit amount to record a refund of the remaining balance. Only a full refund sets status='refunded'. A new call can record another partial refund; after an uncertain result, check get_deposit before retrying. Example: id='dep_abc123', amount=50, confirm=true / Registra una devolución total o parcial del depósito sin transferir dinero. Requiere confirm=true. Omite amount para registrar la devolución del saldo restante. Solo la devolución total marca el estado 'refunded'. Una nueva lla…
refund_saleRefund POS Salecan change or delete dataRefund a POS sale in full or partially. This action is irreversible — the customer will receive a refund to their original payment method. You MUST pass confirm=true to proceed. Optionally specify amountCents for a partial refund (defaults to full refund). / Reembolsa una venta POS total o parcialmente. Accion irreversible. Debes pasar confirm=true. Pasa amountCents para reembolso parcial.
remove_team_memberRemove Team Membercan change or delete dataRemove a member from the workspace. The member immediately loses access. Their created records (invoices, expenses) are preserved. Cannot remove the workspace owner — transfer ownership first. Requires confirm=true to prevent accidental removal. / Elimina un miembro del espacio de trabajo. El miembro pierde acceso inmediatamente. Sus registros creados (facturas, gastos) se conservan. No se puede eliminar al propietario — transfiere la propiedad primero. Requiere confirm=true para evitar eliminaciones accidentales.
resume_recurring_invoiceResume Recurring InvoiceResume a paused recurring invoice template. The next invoice will be generated on the next scheduled cycle date after resumption. / Reanuda una plantilla de factura recurrente pausada. La proxima factura se generara en el siguiente ciclo programado tras la reanudacion.
run_recurring_nowRun Recurring Invoice Nowcan change or delete dataGenerate an invoice from a recurring template and update its run count and last-run date. Requires confirm=true. draftOnly defaults to true. With draftOnly=false, the invoice is created with status='sent' and may trigger fiscal numbering and automatic tax submission. Both modes may deliver configured invoice-created webhooks and notify workspace admins/accountants; this endpoint does not email the invoice to the client. Each new call can create another invoice; check the template and invoices after an uncertain result before retrying. Example: templateId='rec_abc123', confirm=true / Genera una…
search_invoicesSearch Invoicesread-onlySearch and filter invoices. Supports filtering by status and date range. The query parameter searches across client names and invoice content. Example: query='Acme', status='paid', from='2026-01-01', to='2026-03-31' / Busca y filtra facturas. Soporta filtrado por estado y rango de fechas. El parametro query busca en nombres de clientes y contenido de facturas.
search_toolsSearch toolsread-onlyFind Frihet ERP tools by free-text query (matches tool name, title, summary and group). Returns matching tools with their group, one-line summary, read-only flag and input field names — progressive disclosure so you load only what you need. Optionally filter by group. Then call describe_tool(name) for a tool's full description and call it by its real name. [openWorldHint: false — reads the in-process tool catalog only.] / Busca herramientas por texto libre. Devuelve coincidencias con grupo, resumen y campos.
send_einvoiceSend E-InvoiceDispatch an e-invoice to the recipient via the selected transport channel. Returns immediately with a workflowRunId — use get_einvoice_status to poll until completion. Supported formats (11 total): • xrechnung-cii — XRechnung CII syntax (Germany B2G mandatory) • xrechnung-ubl — XRechnung UBL 2.1 syntax (Germany B2G alternative) • facturx-en16931 — Factur-X EN16931 PDF/A-3 (France, EU) • facturx-extended — Factur-X Extended with trade/logistics fields (France, EU) • facturx-basic — Factur-X Basic reduced field set (France, EU) • facturx-minimum — Factur-X Minimum for summary invoi…
send_invoiceSend InvoiceSend an invoice to the client via email. Requires confirm=true. Optionally override the recipient email address. The invoice must exist and should not already be cancelled. Sending reaches a third party and cannot be recalled. / Envia una factura al cliente por email. Requiere confirm=true. Opcionalmente se puede cambiar el email destinatario. El envio llega a un tercero y no se puede anular.
send_quoteSend QuoteSend a quote/estimate to the client via email. Requires confirm=true. Optionally override the recipient email address. The quote must exist and should not already be expired or rejected. Sending reaches a third party and cannot be recalled. / Envia un presupuesto al cliente por email. Requiere confirm=true. Opcionalmente se puede cambiar el email destinatario. El envio llega a un tercero y no se puede anular.
sync_channelSync ChannelTrigger a manual sync of a booking channel (Airbnb, Booking.com, etc.). Pulls new reservations and/or pushes calendar updates. Returns sync status and counts. / Dispara sincronizacion manual de un canal de reservas. Importa reservas nuevas y/o envia actualizaciones de calendario.
test_webhookTest WebhookFire a synthetic test event to the webhook endpoint and return the delivery result. Useful to verify endpoint reachability, signature validation, and TLS configuration. Optionally specify the eventType to simulate (default: 'webhook.test'). Example: id='wh_abc', eventType='invoice.paid' / Envia un evento de prueba sintetico al endpoint del webhook. Util para verificar accesibilidad, validacion de firma y configuracion TLS.
ticketbai_statusGet TicketBAI Submission Statusread-onlyPoll the hacienda acknowledgement status for a TicketBAI submission. Returns the TBAI identifier, territory, and hacienda's confirmation or rejection state. Common status values: • submitted — sent, awaiting hacienda response (check again in 30-60s) • accepted — hacienda confirmed the submission (AEAT/foral treasury received) • rejected — hacienda rejected (check rejectionReason for correction guidance) • error — internal processing error (see error field) / Consulta el estado de acuse de recibo de la hacienda foral para un envío TicketBAI. Devuelve el identificador TBAI, territorio…
ticketbai_submitSubmit TicketBAI (Basque Country)Requires confirm=true as a local client/agent interlock before submitting an invoice to TicketBAI. This flag is not server-verifiable human attestation and is never forwarded to the API. Territory is auto-detected from the workspace address (Bizkaia → BATUZ/LROE, Gipuzkoa → Gipuzkoa TicketBAI, Araba → Araba TicketBAI). Returns the submission TicketBAI ID (TBAI identifier) and QR code URL for printing on the invoice. Use sandbox=true for test submissions against the hacienda test endpoints. Production submissions require a valid TicketBAI certificate configured in workspace settings. / Enví…
update_clientUpdate ClientUpdate an existing client using PATCH semantics. Only the provided fields will be changed. Example: id='abc123', email='new@acme.com', phone='+34600123456' / Actualiza un cliente existente. Solo se modifican los campos proporcionados.
update_depositUpdate DepositUpdate an existing deposit using PATCH semantics. Only the provided fields will be changed. At least one writable field is required; status and notes are not writable. Example: id='abc123', reference='RECEIPT-42' / Actualiza un depósito existente. Requiere al menos un campo editable; status y notes no se pueden guardar.
update_expenseUpdate ExpenseUpdate an existing expense using PATCH semantics. Only the provided fields will be changed. Example: id='abc123', amount=75.00, category='travel' / Actualiza un gasto existente. Solo se modifican los campos proporcionados.
update_invoiceUpdate InvoiceUpdate an existing invoice using PATCH semantics. Only the provided fields will be changed. Example: id='abc123', status='paid' to mark an invoice as paid. / Actualiza una factura existente. Solo se modifican los campos proporcionados.
update_kitchen_ticketUpdate Kitchen TicketAdvance a kitchen ticket through the workflow — update its status (e.g. queued → preparing → ready → served) or reassign it to a different station. / Avanza un ticket de cocina en el flujo: actualiza estado (queued → preparing → ready → served) o reasigna a otra estacion.
update_productUpdate ProductUpdate an existing product using PATCH semantics. Only the provided fields will be changed. Example: id='abc123', unitPrice=2000, taxRate=21 / Actualiza un producto existente. Solo se modifican los campos proporcionados.
update_quoteUpdate QuoteUpdate an existing quote using PATCH semantics. Only the provided fields will be changed. Example: id='abc123', status='accepted' to mark a quote as accepted. / Actualiza un presupuesto existente. Solo se modifican los campos proporcionados.
update_recurring_invoiceUpdate Recurring InvoiceUpdate an existing recurring invoice template using PATCH semantics. Only provided fields are changed. Changing lineItems or taxRate affects future generated invoices only, not already-created ones. / Actualiza una plantilla de factura recurrente existente. Solo se modifican los campos proporcionados. Cambiar lineas o tipo impositivo afecta solo a futuras facturas generadas.
update_team_member_roleUpdate Team Member RoleChange the role of an existing team member. Only workspace admins or owners can change roles. Cannot change the owner's role — use a dedicated ownership transfer flow. Allowed roles: admin, editor, accountant, viewer. Example: memberId='mbr_abc123', role='accountant' / Cambia el rol de un miembro existente del espacio de trabajo. Solo administradores o propietarios pueden cambiar roles. No se puede cambiar el rol del propietario — usa el flujo de transferencia de propiedad. Roles permitidos: admin, editor, accountant, viewer.
update_time_entryUpdate Time EntryUpdate an existing time entry using PATCH semantics. Only provided fields are changed. Example: id='te_abc123', hours=3.0, description='Frontend review + testing' / Actualiza una entrada de tiempo existente. Solo se modifican los campos proporcionados.
update_vendorUpdate VendorUpdate an existing vendor using PATCH semantics. Only the provided fields will be changed. Example: id='abc123', email='new@supplier.com', phone='+34600123456' / Actualiza un proveedor existente. Solo se modifican los campos proporcionados.
update_webhookUpdate WebhookUpdate an existing webhook configuration using PATCH semantics. Only provided fields change. Example: id='abc123', status='paused' to pause a webhook. / Actualiza la configuracion de un webhook. Solo se modifican los campos proporcionados.
validate_einvoice_xmlValidate E-Invoice XMLread-onlyValidate an e-invoice XML document against the specified format's schema and schematron rules. Returns a list of errors with severity, XPath location, message, and rule ID. Runs KOSIT validator (XRechnung), Mustang (EN16931), XSD, or Schematron depending on format. Use before dispatch to catch errors early without incurring network transmission costs. A valid=true response means the document passes all schema + business rule checks. If the validation backend is not deployed for this workspace, returns an honest 'unavailable' response — never a fabricated valid=true. / Valida un documento X…
verifactu_resubmitRe-submit VeriFactu SubmissionTRUST AREA — COMPLIANCE. Re-submit a failed or rejected VeriFactu submission to AEAT. Idempotent: uses the same hash chain; AEAT deduplicates by hash. Creates an audit trail entry for every resubmission attempt. Requires confirm=true. Only use on invoices with status='failed'. / AREA DE CONFIANZA — COMPLIANCE. Reenvio de una factura VeriFactu fallida a AEAT. Idempotente: misma cadena hash. Registra entrada de auditoria en cada intento. Requiere confirm=true. Solo para facturas con status='failed'.
verifactu_statusGet VeriFactu Submission Statusread-onlyGet the VeriFactu (AEAT Spanish e-invoice chain) submission status for a specific invoice. Returns last submission timestamp, hash, AEAT response code, and QR verification URL. / Obtiene el estado de envio VeriFactu (AEAT) para una factura especifica. Devuelve timestamp del ultimo envio, hash, respuesta AEAT y URL del codigo QR.
Compare and alternatives
Featured in
Signals
- Stars
- 12
- Forks
- 3
- Open issues
- 14
- Weekly downloads
- 161
- Last commit
- Oct 22, 2026 (6 days ago)
- Last release
- Aug 30, 2026 (1 month ago)
- Last package publish
- Aug 30, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.frihet/erp- Version
- 1.17.0
- Auth
- Auth not stated
- Packages
- npm @frihet/mcp-server
- License
- MIT
- Repository
- github.com/Frihet-io/frihet-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Frihet ERP MCP server. Agent Mart. https://agentmart.dev/connectors/frihet-io-erp (last updated 2026-10-24)