CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Frihet ERP

frihet-io/frihet-mcp
631 toolsSTDIO, HTTPregistry active
Summary

A full-featured interface to Frihet's business management platform, exposing 152 tools across invoicing, expenses, CRM, accounting, and payroll. You get structured CRUD operations over the REST API: create invoices with line items, log expenses, manage client records, track activities, generate quotes, and configure webhooks. Supports both local stdio via npx and a remote Cloudflare Workers endpoint with OAuth 2.0 or API key auth. Built for natural language workflows where you describe what you want and the AI creates, queries, or modifies business records. Handles everything from "show unpaid invoices over 1,000 EUR" to "create an invoice for 40 hours at 75 EUR/hour due March 1st" without leaving your IDE or chat interface.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

31 tools
list_invoicesList all invoices with optional pagination. Returns a paginated list of invoices sorted by creation date. / Lista todas las facturas con paginacion opcional. Devuelve una lista paginada de facturas ordenadas por fecha de creacion.2 params

List all invoices with optional pagination. Returns a paginated list of invoices sorted by creation date. / Lista todas las facturas con paginacion opcional. Devuelve una lista paginada de facturas ordenadas por fecha de creacion.

Parameters* required
limitinteger
offsetinteger
get_invoiceGet 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.1 params

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.

Parameters* required
idstring
create_invoiceCreate a new invoice. Requires client name and at least one line item. The invoice number is auto-generated. / Crea una nueva factura. Requiere nombre del cliente y al menos un concepto. El numero de factura se genera automaticamente.6 params

Create a new invoice. Requires client name and at least one line item. The invoice number is auto-generated. / Crea una nueva factura. Requiere nombre del cliente y al menos un concepto. El numero de factura se genera automaticamente.

Parameters* required
itemsarray
notesstring
statusstring
one of draft · sent · paid · overdue · cancelled
dueDatestring
taxRatenumber
clientNamestring
update_invoiceUpdate an existing invoice. Only the provided fields will be changed. / Actualiza una factura existente. Solo se modifican los campos proporcionados.7 params

Update an existing invoice. Only the provided fields will be changed. / Actualiza una factura existente. Solo se modifican los campos proporcionados.

Parameters* required
idstring
itemsarray
notesstring
statusstring
one of draft · sent · paid · overdue · cancelled
dueDatestring
taxRatenumber
clientNamestring
delete_invoicePermanently delete an invoice by its ID. This action cannot be undone. / Elimina permanentemente una factura por su ID. Esta accion no se puede deshacer.1 params

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.

Parameters* required
idstring
search_invoicesSearch invoices by client name. Useful for finding all invoices for a specific client. / Busca facturas por nombre de cliente. Util para encontrar todas las facturas de un cliente concreto.3 params

Search invoices by client name. Useful for finding all invoices for a specific client. / Busca facturas por nombre de cliente. Util para encontrar todas las facturas de un cliente concreto.

Parameters* required
limitinteger
offsetinteger
clientNamestring
list_expensesList all expenses with optional pagination. / Lista todos los gastos con paginacion opcional.2 params

List all expenses with optional pagination. / Lista todos los gastos con paginacion opcional.

Parameters* required
limitinteger
offsetinteger
get_expenseGet a single expense by its ID. / Obtiene un gasto por su ID.1 params

Get a single expense by its ID. / Obtiene un gasto por su ID.

Parameters* required
idstring
create_expenseRecord a new expense. Requires a description and amount. Useful for tracking business costs, deductible expenses, and vendor payments. / Registra un nuevo gasto. Requiere descripcion e importe. Util para seguimiento de costes, gastos deducibles y pagos a proveedores.6 params

Record a new expense. Requires a description and amount. Useful for tracking business costs, deductible expenses, and vendor payments. / Registra un nuevo gasto. Requiere descripcion e importe. Util para seguimiento de costes, gastos deducibles y pagos a proveedores.

Parameters* required
datestring
amountnumber
vendorstring
categorystring
descriptionstring
taxDeductibleboolean
update_expenseUpdate an existing expense. Only the provided fields will be changed. / Actualiza un gasto existente. Solo se modifican los campos proporcionados.7 params

Update an existing expense. Only the provided fields will be changed. / Actualiza un gasto existente. Solo se modifican los campos proporcionados.

Parameters* required
idstring
datestring
amountnumber
vendorstring
categorystring
descriptionstring
taxDeductibleboolean
delete_expensePermanently delete an expense by its ID. This action cannot be undone. / Elimina permanentemente un gasto por su ID. Esta accion no se puede deshacer.1 params

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.

Parameters* required
idstring
list_clientsList 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.2 params

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.

Parameters* required
limitinteger
offsetinteger
get_clientGet a single client by their ID. Returns full contact details. / Obtiene un cliente por su ID. Devuelve todos los datos de contacto.1 params

Get a single client by their ID. Returns full contact details. / Obtiene un cliente por su ID. Devuelve todos los datos de contacto.

Parameters* required
idstring
create_clientCreate a new client/customer. Requires at minimum a name. Clients are used when creating invoices and quotes. / Crea un nuevo cliente. Requiere como minimo un nombre. Los clientes se usan al crear facturas y presupuestos.5 params

Create a new client/customer. Requires at minimum a name. Clients are used when creating invoices and quotes. / Crea un nuevo cliente. Requiere como minimo un nombre. Los clientes se usan al crear facturas y presupuestos.

Parameters* required
namestring
emailstring
phonestring
taxIdstring
addressobject
update_clientUpdate an existing client. Only the provided fields will be changed. / Actualiza un cliente existente. Solo se modifican los campos proporcionados.6 params

Update an existing client. Only the provided fields will be changed. / Actualiza un cliente existente. Solo se modifican los campos proporcionados.

Parameters* required
idstring
namestring
emailstring
phonestring
taxIdstring
addressobject
delete_clientPermanently 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 presu...1 params

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 presu...

Parameters* required
idstring
list_productsList 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.2 params

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.

Parameters* required
limitinteger
offsetinteger
get_productGet a single product/service by its ID. / Obtiene un producto/servicio por su ID.1 params

Get a single product/service by its ID. / Obtiene un producto/servicio por su ID.

Parameters* required
idstring
create_productCreate a new product or service. Requires a name and unit price. Products can be referenced when creating invoices and quotes for faster data entry. / Crea un nuevo producto o servicio. Requiere nombre y precio unitario. Los productos se pueden usar al crear facturas y presupu...6 params

Create a new product or service. Requires a name and unit price. Products can be referenced when creating invoices and quotes for faster data entry. / Crea un nuevo producto o servicio. Requiere nombre y precio unitario. Los productos se pueden usar al crear facturas y presupu...

Parameters* required
skustring
namestring
unitstring
taxRatenumber
unitPricenumber
descriptionstring
update_productUpdate an existing product. Only the provided fields will be changed. / Actualiza un producto existente. Solo se modifican los campos proporcionados.7 params

Update an existing product. Only the provided fields will be changed. / Actualiza un producto existente. Solo se modifican los campos proporcionados.

Parameters* required
idstring
skustring
namestring
unitstring
taxRatenumber
unitPricenumber
descriptionstring
delete_productPermanently delete a product by its ID. This action cannot be undone. / Elimina permanentemente un producto por su ID. Esta accion no se puede deshacer.1 params

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.

Parameters* required
idstring
list_quotesList all quotes/estimates with optional pagination. Quotes are proposals sent to clients before they become invoices. / Lista todos los presupuestos con paginacion opcional. Los presupuestos son propuestas enviadas a clientes antes de facturar.2 params

List all quotes/estimates with optional pagination. Quotes are proposals sent to clients before they become invoices. / Lista todos los presupuestos con paginacion opcional. Los presupuestos son propuestas enviadas a clientes antes de facturar.

Parameters* required
limitinteger
offsetinteger
get_quoteGet 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.1 params

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.

Parameters* required
idstring
create_quoteCreate a new quote/estimate for a client. Requires client name and at least one line item. Quotes can later be converted to invoices. / Crea un nuevo presupuesto para un cliente. Requiere nombre del cliente y al menos un concepto. Los presupuestos se pueden convertir en factur...5 params

Create a new quote/estimate for a client. Requires client name and at least one line item. Quotes can later be converted to invoices. / Crea un nuevo presupuesto para un cliente. Requiere nombre del cliente y al menos un concepto. Los presupuestos se pueden convertir en factur...

Parameters* required
itemsarray
notesstring
statusstring
one of draft · sent · accepted · rejected · expired
clientNamestring
validUntilstring
update_quoteUpdate an existing quote. Only the provided fields will be changed. / Actualiza un presupuesto existente. Solo se modifican los campos proporcionados.6 params

Update an existing quote. Only the provided fields will be changed. / Actualiza un presupuesto existente. Solo se modifican los campos proporcionados.

Parameters* required
idstring
itemsarray
notesstring
statusstring
one of draft · sent · accepted · rejected · expired
clientNamestring
validUntilstring
delete_quotePermanently delete a quote by its ID. This action cannot be undone. / Elimina permanentemente un presupuesto por su ID. Esta accion no se puede deshacer.1 params

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.

Parameters* required
idstring
list_webhooksList 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.2 params

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.

Parameters* required
limitinteger
offsetinteger
get_webhookGet a single webhook configuration by its ID. / Obtiene la configuracion de un webhook por su ID.1 params

Get a single webhook configuration by its ID. / Obtiene la configuracion de un webhook por su ID.

Parameters* required
idstring
create_webhookRegister a new webhook endpoint. You must specify the URL to receive notifications and which events to subscribe to (e.g. 'invoice.created', 'invoice.paid', 'expense.created'). / Registra un nuevo endpoint de webhook. Debes especificar la URL y los eventos a los que suscribirt...4 params

Register a new webhook endpoint. You must specify the URL to receive notifications and which events to subscribe to (e.g. 'invoice.created', 'invoice.paid', 'expense.created'). / Registra un nuevo endpoint de webhook. Debes especificar la URL y los eventos a los que suscribirt...

Parameters* required
urlstring
activeboolean
eventsarray
secretstring
update_webhookUpdate an existing webhook configuration. Only the provided fields will be changed. / Actualiza la configuracion de un webhook. Solo se modifican los campos proporcionados.5 params

Update an existing webhook configuration. Only the provided fields will be changed. / Actualiza la configuracion de un webhook. Solo se modifican los campos proporcionados.

Parameters* required
idstring
urlstring
activeboolean
eventsarray
secretstring
delete_webhookPermanently delete a webhook by its ID. Notifications will stop immediately. / Elimina permanentemente un webhook por su ID. Las notificaciones se detendran inmediatamente.1 params

Permanently delete a webhook by its ID. Notifications will stop immediately. / Elimina permanentemente un webhook por su ID. Las notificaciones se detendran inmediatamente.

Parameters* required
idstring

frihet-mcp

AI-native MCP server for business management.
Servidor MCP nativo con IA para gestión empresarial.

npm version npm downloads Smithery installs MCP Registry license 157 tools node >=18 TypeScript


Distribution

ChannelStatusInstall
npmLivenpx @frihet/mcp-server
Remote endpointLivehttps://mcp.frihet.io/mcp (zero install, OAuth or API key)
SmitheryLivesmithery.ai/server/frihet/frihet-mcp
MCP RegistryLiveregistry.modelcontextprotocol.io
GlamaLiveglama.ai/mcp/servers/@Frihet-io/frihet-mcp
mcp.soAuto-index (unverified)mcp.so — indexes from npm + GitHub
PulseMCPAuto-index (unverified)pulsemcp.com — indexes from npm + GitHub
Cursor MarketplaceComing sooncursor.com/marketplace
ChatGPT AppsComing soonchatgpt.com
Anthropic Claude DirectoryComing soonclaude.ai/settings/connectors

Tool count: npm latest (1.14.5) ships all 157 tools, same as the remote endpoint (mcp.frihet.io).


What is this

An MCP server that connects your AI assistant to Frihet. Create invoices by talking. Query expenses in natural language. Manage your entire business from your IDE.

You:     "Create an invoice for TechStart SL, 40 hours of consulting at 75 EUR/hour, due March 1st"
Claude:  Done. Invoice INV-2026-089 created. Total: 3,000.00 EUR + 21% IVA = 3,630.00 EUR.

157 tools. 11 resources. 10 prompts. Structured output on every tool. Zero boilerplate.


Install

One-line (Claude Code, Cursor, Copilot, Codex, Windsurf, Gemini CLI, and more)

npx skills add Frihet-io/frihet-mcp

Claude Code / Claude Desktop

{
  "mcpServers": {
    "frihet": {
      "command": "npx",
      "args": ["-y", "@frihet/mcp-server"],
      "env": {
        "FRIHET_API_KEY": "fri_your_key_here"
      }
    }
  }
}
ToolConfig file
Claude Code~/.claude/mcp.json
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Cursor.cursor/mcp.json or ~/.cursor/mcp.json
Windsurf~/.windsurf/mcp.json
ClineVS Code settings or .cline/mcp.json
Codex CLI~/.codex/config.toml (MCP section)

The JSON config is identical for all tools. Only the file path changes.

Remote (no install)

Use the hosted endpoint at mcp.frihet.io -- zero local dependencies, runs on Cloudflare Workers.

With API key:

{
  "mcpServers": {
    "frihet": {
      "type": "streamable-http",
      "url": "https://mcp.frihet.io/mcp",
      "headers": {
        "Authorization": "Bearer fri_your_key_here"
      }
    }
  }
}

With OAuth 2.0 + PKCE (browser-based login, no API key needed):

Clients that support OAuth (Claude Desktop, Smithery, etc.) can connect directly to https://mcp.frihet.io/mcp and authenticate via browser. The server implements the full OAuth 2.1 authorization code flow with PKCE.

Get your API key

  1. Log into app.frihet.io
  2. Go to Settings > API
  3. Click Create API key
  4. Copy the key (starts with fri_) -- it's only shown once

What you can do

Talk to your ERP. These are real prompts, not marketing copy.

Invoicing

"Show me all unpaid invoices"
"Create an invoice for Acme SL with 10h of consulting at 95/hour"
"Mark invoice abc123 as paid"
"How much has ClientName been invoiced this year?"

Expenses

"Log a 59.99 EUR expense for Adobe Creative Cloud, category: software, tax-deductible"
"List all expenses from January"
"What did I spend on travel last quarter?"

Clients

"Add a new client: TechStart SL, NIF B12345678, email admin@techstart.es"
"Show me all my clients"
"Update ClientName's address to Calle Mayor 1, Madrid 28001"

CRM

"Add a contact to Acme SL: Ana Garcia, CTO, ana@acme.es"
"Log a call with TechStart: discussed Q2 proposal, they're interested in upgrade"
"Add a note to ClientName: prefers invoices in English, payment NET 30"
"Show me all activities for Acme SL"

Quotes

"Create a quote for Design Studio: logo design (2000 EUR) + brand guidelines (3500 EUR)"
"Show me all pending quotes"

Webhooks

"Set up a webhook to notify https://my-app.com/hook when invoices are paid"
"List all my active webhooks"

What to expect

This MCP is a structured data interface -- you describe what you want in natural language, and the AI creates, queries, or modifies business records in Frihet. All 157 tools are CRUD operations over the REST API.

Works great:

"Create an invoice for TechStart SL, 40h consulting at 75 EUR/h"   --> creates the invoice
"Show unpaid invoices over 1,000 EUR"                               --> queries and filters
"Log a 120 EUR expense for the Madrid train, category: travel"      --> records the expense
"Update client Acme's email to billing@acme.es"                     --> modifies the record

Does not do:

  • OCR or PDF scanning -- you cannot upload an invoice image and have it read
  • File upload or attachment handling
  • Image processing of any kind

If you need to digitize paper invoices or receipts, extract the data first (e.g., Claude Vision API, a dedicated OCR service, or manual entry), then use the MCP to create the record:

1. Scan/photograph the invoice
2. Use Claude Vision: "Read this invoice image and extract the vendor, items, amounts, and dates"
3. Then: "Create an expense in Frihet for [extracted data]"

Tools (157)

Invoices (12)

ToolWhat it does
list_invoicesList invoices with pagination
get_invoiceGet full invoice details by ID
create_invoiceCreate a new invoice with line items
update_invoiceUpdate any invoice field
delete_invoicePermanently delete an invoice
search_invoicesFind invoices by client name, date, or status
send_invoiceEmail invoice to client (PDF attachment)
mark_invoice_paidMark an invoice as paid with optional payment date
get_invoice_pdfGet a download URL for the invoice PDF
get_invoice_einvoiceGet the e-invoice XML for a given invoice ID
create_credit_noteCreate a credit note linked to an existing invoice
apply_late_feeApply a late payment fee to an overdue invoice

Expenses (5)

ToolWhat it does
list_expensesList expenses with pagination
get_expenseGet expense details
create_expenseRecord a new expense
update_expenseModify an expense
delete_expenseDelete an expense

Clients (5)

ToolWhat it does
list_clientsList all clients
get_clientGet client details
create_clientRegister a new client
update_clientUpdate client info
delete_clientRemove a client

CRM: Contacts (3)

ToolWhat it does
list_client_contactsList all contacts for a client
create_client_contactAdd a contact person to a client
delete_client_contactRemove a contact from a client

CRM: Activities (2)

ToolWhat it does
list_client_activitiesList CRM activities (calls, emails, meetings, tasks)
log_client_activityLog a call, email, meeting, or task against a client

CRM: Notes (3)

ToolWhat it does
list_client_notesList all notes for a client
create_client_noteAdd a free-form note to a client
delete_client_noteRemove a note from a client

Products (5)

ToolWhat it does
list_productsList products and services
get_productGet product details
create_productAdd a product or service
update_productUpdate pricing or details
delete_productRemove a product

Quotes (6)

ToolWhat it does
list_quotesList all quotes
get_quoteGet quote details
create_quoteDraft a new quote
update_quoteModify a quote
delete_quoteDelete a quote
send_quoteEmail quote to client for acceptance

Webhooks (6)

ToolWhat it does
list_webhooksList configured webhooks
get_webhookGet webhook details
create_webhookRegister a new webhook endpoint
update_webhookModify events or URL
delete_webhookRemove a webhook
test_webhookSend a test payload to a configured webhook endpoint

Intelligence (4)

ToolWhat it does
get_business_contextFull snapshot: profile, plan, recent activity, top clients, current month
get_monthly_summaryMonthly P&L: revenue, expenses, profit, tax liability, top clients by revenue
get_quarterly_taxesQuarterly tax prep: Modelo 303/130 fields, collected vs deductible, liability
duplicate_invoiceClone an invoice for recurring billing (copies items/client/tax, starts as draft)

E-Invoicing (10)

ToolWhat it does
send_einvoiceDispatch an invoice in 11 formats (XRechnung, Factur-X, FatturaPA, PEPPOL, Facturae, UBL, CII) via email / Chorus Pro / SDI / PEPPOL / download
get_einvoice_statusPoll Hatchet workflow run status until succeeded/failed — returns ackId, XML URL, PDF/A-3 URL
validate_einvoice_xmlValidate raw XML against format schema + schematron rules (KOSIT / Mustang / XSD / Schematron)
export_datevExport accounting data as DATEV EXTF (Buchungsstapel / Debitoren / Kreditoren) in CP1252 encoding
einvoice_exportExport e-invoice data in machine-readable formats (JSON/XML) for archival or integration
face_submitSubmit invoice to FACe (Spain B2G government e-invoicing platform)
face_statusPoll submission status from FACe for a submitted invoice
ticketbai_submitSubmit TicketBAI fiscal record to Basque Country tax authority (Hacienda)
ticketbai_statusPoll TicketBAI submission status from the Basque tax authority
ksef_submitSubmit invoice to KSeF (Poland national e-invoicing system)

Time Tracking (6)

ToolWhat it does
list_time_entriesList time entries with filter by user, project, date range, billable status
get_time_entryGet full details of a single time entry by ID
create_time_entryLog hours for a project (billable flag, description, date)
update_time_entryUpdate any field on an existing time entry (PATCH semantics)
delete_time_entrySoft-delete a time entry (confirm=true required)
get_time_summaryAggregate total/billable/non-billable hours for a period, with optional groupBy (user/project/day)

Recurring Invoices (8)

ToolWhat it does
list_recurring_invoicesList all recurring invoice templates (filter by active/paused)
get_recurring_invoiceGet full details of a recurring template by ID
create_recurring_invoiceCreate a new recurring invoice template (daily/weekly/monthly/quarterly/yearly)
update_recurring_invoiceUpdate template fields — affects future generated invoices only
pause_recurring_invoicePause an active template — no invoices generated while paused
resume_recurring_invoiceResume a paused template — next invoice on next scheduled cycle
delete_recurring_invoicePermanently delete a template (confirm=true required)
run_recurring_nowManually trigger immediate generation of the next invoice instance

Team Management (4)

ToolWhat it does
list_team_membersList all workspace members with role and invite status
invite_team_memberInvite a new member by email with role (admin/member/viewer)
update_team_member_roleChange an existing member's role
remove_team_memberRemove a member from the workspace (confirm=true required)

Gestoria — Accountants (5)

ToolWhat it does
gestoria_message_sendSend a message in a contextual thread (documentRequest / filingItem / obligation)
gestoria_messages_listList messages in a thread, newest first; paginate backwards with before
gestoria_template_createCreate a reusable document request template with variables + due-date offset
gestoria_template_bulk_sendBulk send a template to up to 500 client workspaces in one call
gestoria_aging_consolidatedCross-client AR aging report (buckets, per-workspace breakdown, top overdue)

Audit GL (3)

ToolWhat it does
frihet_gl_entry_approveApprove a GL journal entry (gestor/admin only — TRUST AREA)
frihet_gl_entry_rejectReject a GL entry with a mandatory reason (TRUST AREA)
frihet_gl_entry_audit_logRetrieve full audit trail for a GL entry

White-label Portal Domain (3)

ToolWhat it does
frihet_portal_domain_addAdd a custom domain to the client portal (returns DNS CNAME records)
frihet_portal_domain_verifyVerify DNS propagation for a custom portal domain
frihet_portal_domain_removeRemove a custom portal domain (reverts to default Frihet subdomain)

Self-onboard & VIES (2)

ToolWhat it does
frihet_portal_onboard_link_generateGenerate a time-limited self-onboard link for a prospective client
frihet_tax_id_vies_lookupValidate an EU VAT number (CIF intracomunitario) via VIES

IGIC — Canary Islands Indirect Tax (4)

ToolWhat it does
frihet_modelo_415_summaryM415 annual operations >€3,005 (Canarias equivalent of M347)
frihet_modelo_425_summaryM425 annual IGIC recap for Canary Islands businesses
frihet_modelo_418_summaryM418 monthly IGIC return for large enterprises (grandes empresas)
frihet_aiem_calculateCalculate AIEM (Arbitrio Importación) for imported/produced goods in Canarias

Impuesto sobre Sociedades — Corporate Tax (2)

ToolWhat it does
frihet_modelo_200_summaryModelo 200 annual IS return (taxable base, deductions, net payable)
frihet_modelo_202_summaryModelo 202 installment payments (1P April, 2P October, 3P December)

Bank Categorization Rules (2)

ToolWhat it does
frihet_bank_rules_listList all bank auto-categorization rules (conditions + actions + status)
frihet_bank_rule_createCreate a new rule to auto-categorize transactions by description, amount, counterparty

Deposits (7)

ToolWhat it does
list_depositsList deposits with pagination
get_depositGet deposit details by ID
create_depositRecord a new client deposit
update_depositUpdate deposit fields
delete_depositDelete a deposit (confirm=true required)
apply_depositApply a deposit balance against an invoice
refund_depositIssue a refund for a deposit

Vendors (5)

ToolWhat it does
list_vendorsList all vendors/suppliers
get_vendorGet vendor details
create_vendorAdd a new vendor
update_vendorUpdate vendor info
delete_vendorRemove a vendor

Banking (5)

ToolWhat it does
list_bank_accountsList connected bank accounts
get_bank_accountGet details for a bank account
list_transactionsList bank transactions with filters
categorize_transactionAssign a category and expense/income type to a transaction
match_transaction_to_invoiceLink a bank transaction to an existing invoice

Fiscal — Spanish Tax Models (8)

ToolWhat it does
get_modelo_303_summaryQuarterly IVA return (Modelo 303) — collected vs deductible, net payable
get_modelo_130_summaryQuarterly IRPF installment for self-employed (Modelo 130)
get_modelo_390_summaryAnnual IVA summary (Modelo 390)
get_modelo_180_summaryAnnual withholding summary for rentals (Modelo 180)
get_modelo_347_summaryAnnual third-party transactions >€3,005 (Modelo 347)
verifactu_statusGet VeriFactu submission status for a fiscal record
verifactu_resubmitResubmit a rejected VeriFactu fiscal record
ticketbai_statusPoll TicketBAI submission status (also available in E-Invoicing section)

Vacation Rentals / Stay (5)

ToolWhat it does
list_reservationsList rental reservations with filters
get_reservationGet reservation details
create_reservationCreate a new reservation
list_propertiesList all rental properties
sync_channelTrigger OTA channel sync (Airbnb, Booking.com, etc.)

POS — Point of Sale (4)

ToolWhat it does
list_terminalsList registered POS terminals
get_saleGet details for a POS sale transaction
list_salesList POS sales with pagination
refund_saleIssue a refund for a POS sale

HR — Human Resources (9)

ToolWhat it does
leave_request_createCreate a leave request (vacation, sick, personal)
leave_approveApprove a pending leave request
leave_rejectReject a leave request with a reason
leave_cancelCancel an approved or pending leave request
leave_listList leave requests with filters (user, status, date range)
attendance_clock_inRecord clock-in for an employee
attendance_clock_outRecord clock-out for an employee
overtime_reportGenerate overtime report for a period
anomaly_listList attendance anomalies (missing punches, excessive overtime)

Payroll (2)

ToolWhat it does
payroll_exportExport payroll data for a period (CSV/PDF for gestoría)
payroll_checklistGenerate pre-payroll checklist: pending leaves, anomalies, overtime

Onboarding (2)

ToolWhat it does
onboarding_statusGet onboarding completion status for the current workspace
onboarding_persona_setSet or update the business persona (freelancer, SME, gestoría, etc.)

Permissions (2)

ToolWhat it does
permissions_matrixGet the full permissions matrix for all roles in the workspace
permissions_meGet the current API key's effective permissions

Period Close (3)

ToolWhat it does
period_close_statusGet the close status for an accounting period
period_closeClose an accounting period (gestor/admin only — TRUST AREA)
period_reopenReopen a closed period with a mandatory reason (TRUST AREA)

All 157 tools return structured output via outputSchema -- typed JSON, not raw text. List tools return paginated results ({ data, total, limit, offset }).


Resources (11)

Context the AI can read to make smarter decisions.

Static (reference data, no API calls):

ResourceURIWhat it provides
API Schemafrihet://api/schemaOpenAPI summary: endpoints, auth, rate limits, pagination, error codes
Tax Ratesfrihet://tax/ratesTax rates by Spanish fiscal zone: IVA, IGIC, IPSI, EU reverse charge, IRPF
Tax Calendarfrihet://tax/calendarQuarterly filing deadlines: Modelo 303, 130, 390, 420, VeriFactu timeline
Expense Categoriesfrihet://config/expense-categories8 categories with deductibility rules, IVA treatment, amortization
Invoice Statusesfrihet://config/invoice-statusesStatus flow (draft > sent > paid/overdue > cancelled), transition rules, webhook events
Currenciesfrihet://config/currencies40 supported currencies with ISO codes, symbols, decimal places, locale formatting
Countriesfrihet://config/countries61 supported countries with fiscal zones, default tax rates, currencies, invoice prefixes

Dynamic (live data from your account):

ResourceURIWhat it provides
Business Profilefrihet://business-profileYour business info, plan, defaults, recent activity, top clients
Monthly Snapshotfrihet://monthly-snapshotCurrent month P&L, revenue, expenses, tax liability
Overdue Invoicesfrihet://overdue-invoicesAll invoices past due date (up to 100)
Plan Limitsfrihet://status/plan-limitsLive plan tier, usage counters, invoices/month, API rate limits

Prompts (10)

Pre-built workflows the AI can execute as guided multi-step operations.

PromptWhat it doesArguments
monthly-closeClose the month: review unpaid invoices, categorize expenses, check tax obligations, generate summarymonth? (YYYY-MM)
onboard-clientSet up a new client with correct tax rates by location, optionally create a welcome quoteclientName, country?, region?
quarterly-tax-prepPrepare quarterly tax filing: calculate IVA/IGIC, identify deductibles, preview Modelo 303/130/420quarter?, fiscalZone?
overdue-followupFind overdue invoices, draft follow-up messages, suggest payment reminders--
new-client-invoiceCreate a client + first invoice in one workflow with tax rate lookupclientName, country?
expense-reportGenerate expense report grouped by category with deductible totalsmonth? (YYYY-MM)
year-end-closeFull annual closing: quarterly review, pending invoices, uncategorized expenses, year-end checklistyear (YYYY)
cash-flow-forecastProject cash flow for coming months: recurring income, expenses, overdue receivables, tax deadlinesmonths? (default: 3)
invoice-aging-reviewAR aging analysis: group unpaid invoices by bucket (0-30/31-60/61-90/90+ days), top debtors, collection actions--
expense-batchProcess expenses in bulk: categorize, apply tax rates, flag missing receiptsfiscalZone?

How it works

graph LR
    AI["Your AI assistant"]
    MCP["frihet-mcp"]
    API["api.frihet.io"]
    DB["Frihet ERP"]

    AI -- "create_invoice()" --> MCP
    MCP -- "POST /v1/invoices" --> API
    API --> DB
    DB -- "201 + invoice data" --> API
    API -- "structured JSON" --> MCP
    MCP -- "typed response + suggestions" --> AI

    style AI fill:#09090b,stroke:#4ade80,color:#fafafa
    style MCP fill:#09090b,stroke:#fafafa,color:#fafafa
    style API fill:#09090b,stroke:#3f3f46,color:#a1a1aa
    style DB fill:#09090b,stroke:#3f3f46,color:#a1a1aa

The server translates tool calls into REST API requests. It handles authentication, rate limiting (automatic retry with backoff on 429), pagination, and error mapping.

Two transports:

  • stdio (local) -- npx @frihet/mcp-server with FRIHET_API_KEY
  • Streamable HTTP (remote) -- https://mcp.frihet.io/mcp with Bearer token or OAuth 2.0+PKCE

Environment variables

VariableRequiredDefault
FRIHET_API_KEYYes (stdio)--
FRIHET_API_URLNohttps://api.frihet.io/v1
FRIHET_TOOL_MODENofull

Tool exposure: depth served on demand

Frihet's differentiator is depth — full ES/EU fiscal coverage plus native compliance (VeriFactu, TicketBAI, Facturae/FACe/KSeF), banking, CRM, HR/payroll, stay/PMS and POS. But a flat list of every tool, loaded into an agent's context up front, is the 2026 context-rot problem: it crowds out the task and degrades tool selection before any work begins.

FRIHET_TOOL_MODE lets you choose how that depth is exposed.

ModeBehavior
full (default)All tools are exposed with their full descriptions and schemas. Unchanged from previous releases — existing setups are unaffected.
groupedProgressive disclosure. Each tool's description collapses to a one-line [group] summary — full schema via describe_tool('name'), and three lightweight discovery tools are added. The agent loads depth only for the tools it actually needs.

In grouped mode the tools are unchanged — same names, same input schemas, same behavior. Only the up-front context cost changes. Discovery flows through three meta-tools:

  • list_tool_groups() — the domain map (invoicing, expenses, fiscal/compliance, banking, CRM, HR/payroll, stay/PMS, POS, intelligence, products, platform) with a one-line blurb and tool count for each.
  • search_tools(query) — free-text search across tool name, title, summary and group; returns matching tools with their group, summary, read-only flag and input fields. Optional group filter and limit.
  • describe_tool(name) — the full original description and input fields for one tool, on demand, before you call it.
// claude_desktop_config.json — opt in to grouped mode
{
  "mcpServers": {
    "frihet": {
      "command": "npx",
      "args": ["@frihet/mcp-server"],
      "env": {
        "FRIHET_API_KEY": "fri_...",
        "FRIHET_TOOL_MODE": "grouped"
      }
    }
  }
}

This is an opt-in exposure layer only — it never changes a tool's logic, name or behavior, and full mode is byte-identical to before. The same interceptor pattern powers the OpenAI-safe profile (FRIHET_OPENAI_MODE).


API limits

LimitValue
Requests per minute100 per API key
Results per page100 max (50 default)
Request body1 MB max
Webhook payload100 KB max
Webhooks per account20 max

Rate limiting is handled automatically with exponential backoff.


Claude Code Skill

Beyond raw MCP tools, this repo includes a Claude Code skill that adds business context: Spanish tax rules, workflow recipes, financial reports, and natural language commands.

Install the skill

git clone https://github.com/Frihet-io/frihet-mcp.git
ln -s "$(pwd)/frihet-mcp/skill" ~/.claude/skills/frihet

Or with the universal installer:

npx skills add Frihet-io/frihet-mcp

Commands

CommandWhat it does
/frihet statusAccount overview, recent activity, pending payments
/frihet invoiceCreate, list, search invoices
/frihet expenseLog and query expenses
/frihet clientsManage client database
/frihet quoteCreate and manage quotes
/frihet reportFinancial summaries (P&L, quarterly, overdue)
/frihet webhooksConfigure automation triggers
/frihet setupGuided setup and connection test

The skill knows about IVA rates, IRPF retention, Modelo 303 prep, expense deductibility rules, and VeriFactu compliance.

Full documentation: docs.frihet.io/desarrolladores/skill-claude-code


Development

git clone https://github.com/Frihet-io/frihet-mcp.git
cd frihet-mcp
npm install
npm run build

Run locally:

FRIHET_API_KEY=fri_xxx node dist/index.js

Test with the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Contributing

Contributions are welcome. Please open an issue first to discuss what you'd like to change.

git clone https://github.com/Frihet-io/frihet-mcp.git
cd frihet-mcp
npm install
npm run build   # must pass before submitting

Current limitations

  • No OCR or file upload -- the MCP works with structured data, not images or PDFs.
  • Single company -- one API key maps to one Frihet workspace.
  • Frihet account required -- you need an active account at app.frihet.io and an API key (starts with fri_).

Ecosystem

PackageWhat it is
@frihet/mcp-serverThis MCP server (157 tools, 11 resources, 10 prompts)
@frihet/sdkTypeScript SDK (frihet.invoices.create())
frihetCLI (frihet invoices list --status overdue)
n8n-nodes-frihetn8n community node for workflow automation
REST APIOpenAPI 3.1 at api.frihet.io/v1
Remote MCPHosted endpoint on Cloudflare Workers (zero install)
WebhooksReal-time events with HMAC-SHA256

Links

  • Frihet -- The product
  • Documentation -- Full docs
  • API reference -- REST API
  • MCP server docs -- Setup guides, troubleshooting
  • npm -- Package registry
  • Smithery -- Smithery marketplace
  • MCP Registry -- Anthropic official registry
  • Remote endpoint -- Hosted MCP server (Cloudflare Workers)
  • OpenAPI spec -- Machine-readable API definition

License

MIT. See LICENSE.

Built by Frihet.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Sales & MarketingFinance & Commerce
Registryactive
Package@frihet/mcp-server
TransportSTDIO, HTTP
UpdatedJun 10, 2026
View on GitHub

Related Sales & Marketing MCP Servers

View all →
Vibe Prospecting

explorium-ai/vibeprospecting-mcp

Power your chat with B2B data to create lead lists, research companies, personalize your outreach, and more.
22
Lead Enrichment API

io.github.compuute/lead-enrichment

Curated EU AI/Sec/DevTools/Fintech B2B leads, Claude-scored. MCP+x402. Free 250/mo.
Apollo Salesforce Mapper

dev.workers.selbyventurecap.cf-worker/apollo-salesforce-mapper

Apollo->Salesforce Lead mapper. No LLM. Strict-fail required fields. PASS/REPAIR/FAIL verdict.
Company Enrichment API

io.github.br0ski777/company-enrichment

Company firmographics from domain: name, socials, tech stack, emails, phone, address
Apollo

com.mcparmory/apollo

Search and enrich contact and company data from 210M+ people and 35M+ companies
25
Mcp Gtm Tech Stack Signal Scraper

mambalabsdev/mcp-gtm-tech-stack-signal-scraper

Detects a company CRM, sequencer, and marketing automation from its public website. Clay-ready.
1