AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Frihet Mcp

mcp-frihet-io-frihet-mcp · by Frihet-io

Official MCP server for Frihet ERP — 157 tools for AI-powered invoicing, tax & e-invoicing compliance (VeriFactu, TicketBAI, Facturae), banking, CRM, HR/payroll & POS. Works with Claude, Cursor, Windsurf, Cline, ChatGPT.

No reviews yet
0 installs
48 views
0.0% view→install

Install

$ agentstack add mcp-frihet-io-frihet-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v1.12.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v1.12.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-frihet-io-frihet-mcp)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Frihet Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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

=18">


Distribution

| Channel | Status | Install | |---------|--------|---------| | npm | Live | npx @frihet/mcp-server | | Remote endpoint | Live | https://mcp.frihet.io/mcp (zero install, OAuth or API key) | | Smithery | Live | smithery.ai/server/frihet/frihet-mcp | | MCP Registry | Live | registry.modelcontextprotocol.io | | Glama | Live | glama.ai/mcp/servers/@Frihet-io/frihet-mcp | | mcp.so | Auto-index (unverified) | mcp.so — indexes from npm + GitHub | | PulseMCP | Auto-index (unverified) | pulsemcp.com — indexes from npm + GitHub | | Cursor Marketplace | Coming soon | cursor.com/marketplace | | ChatGPT Apps | Coming soon | chatgpt.com | | Anthropic Claude Directory | Coming soon | claude.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"
      }
    }
  }
}

| Tool | Config 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 | | Cline | VS 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)

| Tool | What it does | |------|-------------| | list_invoices | List invoices with pagination | | get_invoice | Get full invoice details by ID | | create_invoice | Create a new invoice with line items | | update_invoice | Update any invoice field | | delete_invoice | Permanently delete an invoice | | search_invoices | Find invoices by client name, date, or status | | send_invoice | Email invoice to client (PDF attachment) | | mark_invoice_paid | Mark an invoice as paid with optional payment date | | get_invoice_pdf | Get a download URL for the invoice PDF | | get_invoice_einvoice | Get the e-invoice XML for a given invoice ID | | create_credit_note | Create a credit note linked to an existing invoice | | apply_late_fee | Apply a late payment fee to an overdue invoice |

Expenses (5)

| Tool | What it does | |------|-------------| | list_expenses | List expenses with pagination | | get_expense | Get expense details | | create_expense | Record a new expense | | update_expense | Modify an expense | | delete_expense | Delete an expense |

Clients (5)

| Tool | What it does | |------|-------------| | list_clients | List all clients | | get_client | Get client details | | create_client | Register a new client | | update_client | Update client info | | delete_client | Remove a client |

CRM: Contacts (3)

| Tool | What it does | |------|-------------| | list_client_contacts | List all contacts for a client | | create_client_contact | Add a contact person to a client | | delete_client_contact | Remove a contact from a client |

CRM: Activities (2)

| Tool | What it does | |------|-------------| | list_client_activities | List CRM activities (calls, emails, meetings, tasks) | | log_client_activity | Log a call, email, meeting, or task against a client |

CRM: Notes (3)

| Tool | What it does | |------|-------------| | list_client_notes | List all notes for a client | | create_client_note | Add a free-form note to a client | | delete_client_note | Remove a note from a client |

Products (5)

| Tool | What it does | |------|-------------| | list_products | List products and services | | get_product | Get product details | | create_product | Add a product or service | | update_product | Update pricing or details | | delete_product | Remove a product |

Quotes (6)

| Tool | What it does | |------|-------------| | list_quotes | List all quotes | | get_quote | Get quote details | | create_quote | Draft a new quote | | update_quote | Modify a quote | | delete_quote | Delete a quote | | send_quote | Email quote to client for acceptance |

Webhooks (6)

| Tool | What it does | |------|-------------| | list_webhooks | List configured webhooks | | get_webhook | Get webhook details | | create_webhook | Register a new webhook endpoint | | update_webhook | Modify events or URL | | delete_webhook | Remove a webhook | | test_webhook | Send a test payload to a configured webhook endpoint |

Intelligence (4)

| Tool | What it does | |------|-------------| | get_business_context | Full snapshot: profile, plan, recent activity, top clients, current month | | get_monthly_summary | Monthly P&L: revenue, expenses, profit, tax liability, top clients by revenue | | get_quarterly_taxes | Quarterly tax prep: Modelo 303/130 fields, collected vs deductible, liability | | duplicate_invoice | Clone an invoice for recurring billing (copies items/client/tax, starts as draft) |

E-Invoicing (10)

| Tool | What it does | |------|-------------| | send_einvoice | Dispatch an invoice in 11 formats (XRechnung, Factur-X, FatturaPA, PEPPOL, Facturae, UBL, CII) via email / Chorus Pro / SDI / PEPPOL / download | | get_einvoice_status | Poll Hatchet workflow run status until succeeded/failed — returns ackId, XML URL, PDF/A-3 URL | | validate_einvoice_xml | Validate raw XML against format schema + schematron rules (KOSIT / Mustang / XSD / Schematron) | | export_datev | Export accounting data as DATEV EXTF (Buchungsstapel / Debitoren / Kreditoren) in CP1252 encoding | | einvoice_export | Export e-invoice data in machine-readable formats (JSON/XML) for archival or integration | | face_submit | Submit invoice to FACe (Spain B2G government e-invoicing platform) | | face_status | Poll submission status from FACe for a submitted invoice | | ticketbai_submit | Submit TicketBAI fiscal record to Basque Country tax authority (Hacienda) | | ticketbai_status | Poll TicketBAI submission status from the Basque tax authority | | ksef_submit | Submit invoice to KSeF (Poland national e-invoicing system) |

Time Tracking (6)

| Tool | What it does | |------|-------------| | list_time_entries | List time entries with filter by user, project, date range, billable status | | get_time_entry | Get full details of a single time entry by ID | | create_time_entry | Log hours for a project (billable flag, description, date) | | update_time_entry | Update any field on an existing time entry (PATCH semantics) | | delete_time_entry | Soft-delete a time entry (confirm=true required) | | get_time_summary | Aggregate total/billable/non-billable hours for a period, with optional groupBy (user/project/day) |

Recurring Invoices (8)

| Tool | What it does | |------|-------------| | list_recurring_invoices | List all recurring invoice templates (filter by active/paused) | | get_recurring_invoice | Get full details of a recurring template by ID | | create_recurring_invoice | Create a new recurring invoice template (daily/weekly/monthly/quarterly/yearly) | | update_recurring_invoice | Update template fields — affects future generated invoices only | | pause_recurring_invoice | Pause an active template — no invoices generated while paused | | resume_recurring_invoice | Resume a paused template — next invoice on next scheduled cycle | | delete_recurring_invoice | Permanently delete a template (confirm=true required) | | run_recurring_now | Manually trigger immediate generation of the next invoice instance |

Team Management (4)

| Tool | What it does | |------|-------------| | list_team_members | List all workspace members with role and invite status | | invite_team_member | Invite a new member by email with role (admin/member/viewer) | | update_team_member_role | Change an existing member's role | | remove_team_member | Remove a member from the workspace (confirm=true required) |

Gestoria — Accountants (5)

| Tool | What it does | |------|-------------| | gestoria_message_send | Send a message in a contextual thread (documentRequest / filingItem / obligation) | | gestoria_messages_list | List messages in a thread, newest first; paginate backwards with before | | gestoria_template_create | Create a reusable document request template with variables + due-date offset | | gestoria_template_bulk_send | Bulk send a template to up to 500 client workspaces in one call | | gestoria_aging_consolidated | Cross-client AR aging report (buckets, per-workspace breakdown, top overdue) |

Audit GL (3)

| Tool | What it does | |------|-------------| | frihet_gl_entry_approve | Approve a GL journal entry (gestor/admin only — TRUST AREA) | | frihet_gl_entry_reject | Reject a GL entry with a mandatory reason (TRUST AREA) | | frihet_gl_entry_audit_log | Retrieve full audit trail for a GL entry |

White-label Portal Domain (3)

| Tool | What it does | |------|-------------| | frihet_portal_domain_add | Add a custom domain to the client portal (returns DNS CNAME records) | | frihet_portal_domain_verify | Verify DNS propagation for a custom portal domain | | frihet_portal_domain_remove | Remove a custom portal domain (reverts to default Frihet subdomain) |

Self-onboard & VIES (2)

| Tool | What it does | |------|-------------| | frihet_portal_onboard_link_generate | Generate a time-limited self-onboard link for a prospective client | | frihet_tax_id_vies_lookup | Validate an EU VAT number (CIF intracomunitario) via VIES |

IGIC — Canary Islands Indirect Tax (4)

| Tool | What it does | |------|-------------| | frihet_modelo_415_summary | M415 annual operations >€3,005 (Canarias equivalent of M347) | | frihet_modelo_425_summary | M425 annual IGIC recap for Canary Islands businesses | | frihet_modelo_418_summary | M418 monthly IGIC return for large enterprises (grandes empresas) | | frihet_aiem_calculate | Calculate AIEM (Arbitrio Importación) for imported/produced goods in Canarias |

Impuesto sobre Sociedades — Corporate Tax (2)

| Tool | What it does | |------|-------------| | frihet_modelo_200_summary | Modelo 200 annual IS return (taxable base, deductions, net payable) | | frihet_modelo_202_summary | Modelo 202 installment payments (1P April, 2P October, 3P December) |

Bank Categorization Rules (2)

| Tool | What it does | |------|-------------| | frihet_bank_rules_list | List all bank auto-categorization rules (conditions + actions + status) | | frihet_bank_rule_create | Create a new rule to auto-categorize transactions by description, amount, counterparty |

Deposits (7)

| Tool | What it does | |------|-------------| | list_deposits | List deposits with pagination | | get_deposit | Get deposit details by ID | | create_deposit | Record a new client deposit | | update_deposit | Update deposit fields | | delete_deposit | Delete a deposit (confirm=true required) | | apply_deposit | Apply a deposit balance against an invoice | | refund_deposit | Issue a refund for a deposit |

Vendors (5)

| Tool | What it does | |------|-------------| | list_vendors | List all vendors/suppliers | | get_vendor | Get vendor details | | create_vendor | Add a new vendor | | update_vendor | Update vendor info | | delete_vendor | Remove a vendor |

Banking (5)

| Tool | What it does | |------|-------------| | list_bank_accounts | List connected bank accounts | | `g

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v1.12.0 Imported from the upstream source.