Frihet MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRIHET_API_KEY | Yes | Your Frihet API key (starts with 'fri_'). You can get it from app.frihet.io under Settings > API. | |
| FRIHET_API_URL | No | The base URL for the Frihet API. Useful if you self-host or want to point to a staging environment. | https://api.frihet.io/v1 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_business_contextA | Get 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_monthly_summaryA | Get 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_quarterly_taxesA | Get 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. |
| duplicate_invoiceA | Duplicate 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. |
| list_invoicesB | List 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. |
| get_invoiceA | Get 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. |
| create_invoiceA | Create 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 / 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. |
| update_invoiceA | Update 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. |
| delete_invoiceA | Permanently delete an invoice by its ID. This action cannot be undone. / Elimina permanentemente una factura por su ID. Esta accion no se puede deshacer. |
| search_invoicesA | Search 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. |
| send_invoiceA | Send an invoice to the client via email. Optionally override the recipient email address. The invoice must exist and should not already be cancelled. / Envia una factura al cliente por email. Opcionalmente se puede cambiar el email destinatario. |
| mark_invoice_paidA | Mark 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. |
| get_invoice_pdfB | Get the PDF for an invoice. Returns a URL to download the PDF or binary info. / Obtiene el PDF de una factura. Devuelve una URL de descarga o informacion del binario. |
| get_invoice_einvoiceA | Download the e-invoice XML for an invoice. Returns EN16931-compliant XML in the auto-detected format (UBL, CII, XRechnung, Factur-X, FatturaPA, PEPPOL). Only available after the invoice has been saved/sent. / Descarga el XML de factura electronica para una factura. Devuelve XML conforme a EN16931 en el formato auto-detectado (UBL, CII, XRechnung, Factur-X, FatturaPA, PEPPOL). Solo disponible despues de guardar o enviar la factura. |
| create_credit_noteA | Create a credit note (factura rectificativa) for an existing invoice. This reverses all or part of an invoice for compliance. Spanish market: generates VeriFactu-compliant R1-R5 rectificativa. Other markets: standard credit note with negative amounts. / Crea una factura rectificativa para una factura existente. Mercado espanol: genera rectificativa R1-R5 conforme a VeriFactu. Otros mercados: nota de credito estandar con importes negativos. |
| apply_late_feeA | Apply late payment interest to an overdue invoice. Calculates interest based on EU Late Payment Directive (8% default) or auto-calculates from days overdue. Creates a debit note linked to the original invoice. / Aplica intereses de demora a una factura vencida. Calcula intereses segun la Directiva Europea de Morosidad (8% por defecto) o los calcula automaticamente a partir de los dias de retraso. Crea una nota de debito vinculada a la factura original. |
| list_expensesB | List 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. |
| get_expenseA | Get a single expense by its ID. / Obtiene un gasto por su ID. |
| create_expenseA | Record 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 / Registra un nuevo gasto. Requiere descripcion e importe. Util para seguimiento de costes, gastos deducibles y pagos a proveedores. |
| update_expenseA | Update 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. |
| delete_expenseA | Permanently delete an expense by its ID. This action cannot be undone. / Elimina permanentemente un gasto por su ID. Esta accion no se puede deshacer. |
| list_clientsA | List 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. |
| get_clientA | Get a single client by their ID. Returns full contact details. / Obtiene un cliente por su ID. Devuelve todos los datos de contacto. |
| create_clientA | Create 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. |
| update_clientA | Update 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. |
| delete_clientA | Permanently 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. |
| list_client_contactsA | List 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. |
| create_client_contactA | Add 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. |
| delete_client_contactA | Permanently delete a contact from a client. This action cannot be undone. / Elimina permanentemente un contacto de un cliente. Esta accion no se puede deshacer. |
| list_client_activitiesA | List 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. |
| log_client_activityA | Log a CRM activity against a client. Use to track calls, emails, meetings, or tasks. Example: clientId='abc123', type='call', title='Discussed Q2 proposal', description='Client interested in upgrade' / Registra una actividad CRM para un cliente. Usa para rastrear llamadas, emails, reuniones o tareas. |
| list_client_notesA | List all notes for a client with optional pagination. / Lista todas las notas de un cliente con paginacion opcional. |
| create_client_noteA | Add a note to a client. Notes are free-form text entries useful for keeping context. Example: clientId='abc123', content='Prefers invoices in English. Payment NET 30.' / Anade una nota a un cliente. Las notas son texto libre para mantener contexto. |
| delete_client_noteA | Permanently delete a note from a client. This action cannot be undone. / Elimina permanentemente una nota de un cliente. Esta accion no se puede deshacer. |
| list_productsA | List 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. |
| get_productA | Get a single product/service by its ID. / Obtiene un producto/servicio por su ID. |
| create_productA | Create 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. |
| update_productA | Update 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. |
| delete_productA | Permanently delete a product by its ID. This action cannot be undone. / Elimina permanentemente un producto por su ID. Esta accion no se puede deshacer. |
| list_quotesA | List 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. |
| get_quoteA | Get 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. |
| create_quoteA | Create 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. |
| update_quoteA | Update 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. |
| delete_quoteA | Permanently delete a quote by its ID. This action cannot be undone. / Elimina permanentemente un presupuesto por su ID. Esta accion no se puede deshacer. |
| send_quoteA | Send a quote/estimate to the client via email. Optionally override the recipient email address. The quote must exist and should not already be expired or rejected. / Envia un presupuesto al cliente por email. Opcionalmente se puede cambiar el email destinatario. |
| list_vendorsA | List 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. |
| get_vendorA | Get a single vendor/supplier by their ID. Returns full contact details. / Obtiene un proveedor por su ID. Devuelve todos los datos de contacto. |
| create_vendorA | Create 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. |
| update_vendorA | Update 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. |
| delete_vendorA | Permanently 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. |
| list_webhooksB | List 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. |
| get_webhookA | Get a single webhook configuration by its ID. / Obtiene la configuracion de un webhook por su ID. |
| create_webhookA | Register a new webhook endpoint. You must specify the URL to receive notifications and which events to subscribe to. Available events: invoice.created, invoice.updated, invoice.paid, invoice.deleted, expense.created, expense.updated, expense.deleted, client.created, client.updated, quote.created, quote.updated, quote.accepted. Example: 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. |
| update_webhookA | Update an existing webhook configuration using PATCH semantics. Only provided fields change. Example: id='abc123', active=false to disable a webhook. / Actualiza la configuracion de un webhook. Solo se modifican los campos proporcionados. |
| delete_webhookA | Permanently delete a webhook by its ID. Notifications will stop immediately. / Elimina permanentemente un webhook por su ID. Las notificaciones se detendran inmediatamente. |
| test_webhookA | Fire 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. |
| list_depositsA | List 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. |
| get_depositA | Get a single deposit by its ID. / Obtiene un deposito por su ID. |
| create_depositA | Record a new deposit from a client. Requires clientId and amount. Useful for tracking advance payments, retainers, and security deposits. Example: clientId='abc123', amount=500, currency='EUR', description='Project retainer' / Registra un nuevo deposito de un cliente. Requiere clientId e importe. Util para adelantos, retenciones y depositos de garantia. |
| update_depositA | Update an existing deposit using PATCH semantics. Only the provided fields will be changed. Example: id='abc123', amount=750, notes='Updated retainer amount' / Actualiza un deposito existente. Solo se modifican los campos proporcionados. |
| delete_depositA | Permanently delete a deposit by its ID. This action cannot be undone. / Elimina permanentemente un deposito por su ID. Esta accion no se puede deshacer. |
| apply_depositA | Apply a deposit to an invoice or mark it as used. Transitions the deposit status to 'applied'. Example: id='dep_abc123', invoiceId='inv_xyz' / Aplica un deposito a una factura o lo marca como utilizado. |
| refund_depositA | Refund a deposit back to the client. Transitions the deposit status to 'refunded'. Example: id='dep_abc123', reason='Project cancelled' / Devuelve un deposito al cliente. |
| send_einvoiceA | Dispatch 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 invoices (France, EU) • fatturapa — FatturaPA XML via SDI hub (Italy mandatory) • ubl — Generic UBL 2.1 XML (EU/global) • cii — Generic CII Cross Industry Invoice (EU/global) • peppol-bis-3 — PEPPOL BIS Billing 3.0 network (EU/Nordic/AU/SG) • facturae — Facturae 3.2.x (Spain B2G via FACe/AEAT mandatory) Dispatch modes: • email — attach XML/PDF and send via Resend to client email on file • chorus_pro — submit to French Chorus Pro portal (facturx-* only) • sdi — submit to Italian SDI hub (fatturapa only) • peppol — transmit via PEPPOL access point (peppol-bis-3 only) • download — generate and return a signed download URL only NOTE: Stub response — real CF endpoint https://api.frihet.io/v1/einvoice/send wired in transport Wave. / Envia una factura electronica al destinatario mediante el canal de transporte seleccionado. Devuelve de forma asincrona — consultar get_einvoice_status para seguimiento. |
| get_einvoice_statusA | Poll 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'. NOTE: Stub response — real CF endpoint https://api.frihet.io/v1/einvoice/status wired in transport Wave. / Consulta el estado de un flujo de envio de factura electronica. |
| validate_einvoice_xmlA | Validate 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. NOTE: Stub response — real CF endpoint https://api.frihet.io/v1/einvoice/validate wired in transport Wave. / Valida un documento XML de factura electronica contra el esquema y reglas schematron del formato especificado. |
| export_datevA | Export 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). NOTE: Stub response — real CF endpoint https://api.frihet.io/v1/datev/export wired in transport Wave. / Exporta datos contables en formato DATEV EXTF para importacion en DATEV o sistemas compatibles. |
| einvoice_exportA | Export an invoice as e-invoicing XML in a specific format. Supports Facturae (ES B2G), XRechnung-CII (DE), XRechnung-UBL (DE), Factur-X profiles (FR), FatturaPA (IT), PEPPOL-BIS-3 (EU network), UBL and CII (generic). For Facturae, set signed=true to get XAdES-enveloped XML for FACe/AEAT submission. Returns a signed download URL valid for 24 hours. / Exporta una factura como XML de facturacion electronica en el formato especificado. Para Facturae con signed=true devuelve XML firmado XAdES para envio a FACe/AEAT. |
| face_submitA | Submit a Facturae-formatted invoice to the Spanish FACe (Punto General de Entrada de Facturas Electrónicas) B2G portal. 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 — live FACe SOAP endpoint (default) / Envía una factura Facturae al portal FACe del Estado español. Requiere códigos DIR3 en el destinatario (órgano gestor, unidad tramitadora, oficina contable). Devuelve el número de registro para consulta de estado con face_status. |
| face_statusA | Poll 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. |
| ticketbai_submitA | Submit an invoice to the Basque Country TicketBAI e-invoicing system. 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ía una factura al sistema TicketBAI del País Vasco. El territorio se detecta automáticamente (Bizkaia→BATUZ/LROE, Gipuzkoa, Álava). Devuelve el identificador TBAI y URL del código QR para imprimir en la factura. |
| ticketbai_statusA | Poll 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 y estado de confirmación o rechazo. |
| ksef_submitA | 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 Cloud Function lands in PR #417. Until merged, all calls return a NotImplementedYet error with guidance on when it will be available. / NOTA: Este tool es un stub anticipatorio. La Cloud Function KSeF se activa con el PR #417. Hasta su merge, todas las llamadas devuelven un error NotImplementedYet con instrucciones. |
| list_reservationsA | List 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. |
| get_reservationA | Get 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. |
| create_reservationA | Create 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. |
| list_propertiesA | List 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. |
| sync_channelA | Trigger 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. |
| list_terminalsA | List 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. |
| get_saleA | Get 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. |
| list_salesA | List POS sales with optional filters by date range, terminal, or status. / Lista las ventas POS con filtros opcionales por fecha, terminal o estado. |
| refund_saleA | Refund 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. |
| list_kitchen_ticketsA | List 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. |
| get_kitchen_ticketA | Get 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. |
| update_kitchen_ticketA | Advance 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. |
| list_kitchen_stationsA | List 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_menu_itemsA | List 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. |
| kitchen_flow_summaryA | Slow-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. |
| list_bank_accountsA | List 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. |
| get_bank_accountA | Get 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. |
| list_transactionsA | List 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. |
| categorize_transactionA | Apply 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. |
| match_transaction_to_invoiceA | TRUST 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. |
| get_modelo_303_summaryA | Get 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_130_summaryA | Get 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_390_summaryA | Get 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_modelo_180_summaryA | Get IRPF annual informative summary for rental income withholdings (Modelo 180, Spain). Returns total retentions per tenant, property, and annual aggregate. Example: period='2025' / Obtiene el resumen anual de retenciones sobre alquileres para el Modelo 180. Devuelve retenciones totales por inquilino, inmueble y agregado anual. |
| get_modelo_347_summaryA | Get 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. |
| verifactu_statusA | Get 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. |
| verifactu_resubmitA | TRUST 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'. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| monthly-close | Guide through closing the month: review unpaid invoices, categorize uncategorized expenses, check tax obligations, and generate a financial summary. / Guía para el cierre mensual: revisar facturas impagadas, categorizar gastos, verificar obligaciones fiscales y generar resumen. |
| onboard-client | Set up a new client: create the client record, determine correct tax rates based on their location, and optionally create a welcome quote. / Dar de alta un nuevo cliente: crear ficha, determinar impuestos según ubicación y crear presupuesto de bienvenida. |
| quarterly-tax-prep | Prepare for quarterly tax filing: list all invoices and expenses for the quarter, calculate IVA/IGIC totals, identify deductible expenses, and generate a Modelo 303/130/420 preview. / Preparar la declaración trimestral: facturas, gastos, cálculo de IVA/IGIC, gastos deducibles y vista previa del modelo. |
| overdue-followup | Find all overdue invoices, draft follow-up messages for each client, and suggest payment reminders. / Buscar facturas vencidas, redactar mensajes de seguimiento y sugerir recordatorios de pago. |
| new-client-invoice | Create a new client and their first invoice in one workflow. Handles tax rate lookup based on client location, client record creation, and invoice generation. / Crear un nuevo cliente y su primera factura en un solo flujo. Determina impuestos, crea cliente y factura. |
| expense-report | Generate an expense report grouped by category for a given period. Shows totals, deductible amounts, top vendors, and flags uncategorized expenses. / Genera un informe de gastos agrupado por categoria para un periodo. Totales, deducibles, proveedores. |
| year-end-close | Annual closing review: summarize revenue, expenses, profit/loss for the entire year, check all quarters, flag pending invoices and uncategorized expenses, and generate a year-end checklist. / Cierre anual: resumen de ingresos, gastos, resultado del ejercicio, revisión trimestral y checklist de cierre. |
| cash-flow-forecast | Project cash flow for the coming months based on recurring income, recurring expenses, overdue receivables, and upcoming tax deadlines. Flags concentration and seasonality risks. / Proyección de flujo de caja: ingresos recurrentes, gastos fijos, cobros pendientes, plazos fiscales y alertas de riesgo. |
| invoice-aging-review | Accounts receivable aging analysis: group unpaid invoices by aging bucket (0-30, 31-60, 61-90, 90+ days), identify top debtors, and suggest collection actions. / Análisis de antigüedad de cuentas por cobrar: agrupar facturas impagadas por tramos, identificar mayores deudores y sugerir acciones de cobro. |
| expense-batch | Process a batch of expenses: help categorize each one, apply correct tax rates, flag items needing receipts. / Procesar lote de gastos: categorizar, aplicar impuestos correctos, marcar los que necesitan justificante. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| api-schema | OpenAPI schema summary: all endpoints, authentication method, rate limits, pagination, and error codes. / Resumen del esquema OpenAPI: endpoints, autenticación, límites, paginación y errores. |
| tax-rates | Current tax rates by Spanish fiscal zone: Peninsula IVA (21/10/4%), Canary Islands IGIC (7/3/0%), Ceuta IPSI, EU reverse charge, international exports, IRPF withholding, and special regimes. / Tipos impositivos por zona fiscal: IVA, IGIC, IPSI, intracomunitario, exportaciones, IRPF, regímenes especiales. |
| tax-calendar | Spanish quarterly tax calendar with filing deadlines for Modelo 303, 130, 390, 420 (IGIC), and annual returns. Includes VeriFactu e-invoicing timeline. / Calendario fiscal trimestral español con plazos de presentación de modelos y VeriFactu. |
| expense-categories | The 8 expense categories in Frihet with deductibility rules, IVA treatment, and amortization periods. Essential for correctly categorizing business expenses. / Las 8 categorías de gastos con reglas de deducibilidad, IVA y amortización. |
| invoice-statuses | Invoice status flow in Frihet: draft → sent → paid/overdue → cancelled. Includes transition rules, automation triggers, webhook events, and fiscal compliance notes. / Flujo de estados de factura: borrador → enviada → pagada/vencida → cancelada. |
| currencies | 40 supported currencies with ISO codes, symbols, decimal places, locale formatting examples, and associated countries. Use to validate currency inputs and format monetary values. / 40 divisas soportadas con códigos ISO, símbolos, decimales, formato local y países asociados. |
| countries | 61 supported countries with ISO codes, fiscal zones (peninsula, canarias, ceuta, melilla, eu, international), default tax rates, tax names, default currencies, and invoice prefixes. / 61 países soportados con zonas fiscales, tipos impositivos, divisas y prefijos de factura. |
| business-profile | Live business profile and context — company info, plan limits, recent activity, top clients, current month snapshot. Equivalent to calling get_business_context but as a resource. / Perfil y contexto del negocio en vivo — info de empresa, limites, actividad reciente, clientes principales. |
| monthly-snapshot | Live financial snapshot for the current month — revenue, expenses, profit, tax liability, invoice counts by status, expense breakdown by category. Updates on every read. / Resumen financiero del mes actual en vivo — ingresos, gastos, beneficio, impuestos. |
| overdue-invoices | Live list of all overdue invoices — invoices past their due date that haven't been paid. Includes client names, amounts, due dates, and days overdue. Critical for cash flow management. / Lista en vivo de facturas vencidas — facturas cuya fecha de vencimiento ha pasado sin cobrar. |
| plan-limits | Live plan limits and current usage — plan tier, invoices/month, AI messages/day, team members, integrations, API requests/minute, and real-time usage counters. / Límites del plan y uso actual en vivo — tier, facturas/mes, mensajes IA/día, miembros, integraciones, API req/min. |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Frihet-io/frihet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server