Frihet ERP

io.frihetPublished by frihet.ioOfficial publisherv2.0.0Updated Nov 7, 2026

Frihet ERP over MCP: invoices, quotes, expenses, clients, CRM, banking and Spanish tax summaries

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinanceBusiness & Commerce

Overview

AI-generated overview

Connects an AI assistant to the Frihet ERP so it can create and query invoices, quotes, expenses, clients, CRM records, banking and Spanish tax summaries.

What you can do
  • Create, update, search and delete invoices, quotes, credit notes and recurring invoice templates, and email them to clients
  • Record and manage expenses, products, clients, contacts, CRM activities and notes
  • Read business intelligence: business snapshot, monthly profit and loss, quarterly tax preparation, AR aging
  • Handle e-invoicing and fiscal submissions, plus time tracking, HR leave and attendance, team roles and webhooks
  • Run guided prompts such as monthly close, quarterly tax prep, overdue follow-up and cash-flow forecast
When to use it
Useful when a business already runs its books in Frihet and wants an assistant to draft invoices, log expenses, look up clients or pull tax and profit figures in plain language instead of clicking through the app.
Requirements
Either the hosted remote endpoint with OAuth sign-in, or the local npm package run with npx, which needs Node 22.23.4+, 24.22.1+ or 26.12.1+ and a Frihet API key in FRIHET_API_KEY. A Frihet account is required; a demo mode answers from example data without an account.
Before you install
The API key (FRIHET_API_KEY) maps to one workspace and is shown only once. Many tools write, send, delete or cancel records, email clients, trigger webhooks, or submit to tax authorities; some require confirm=true. Drafts are the default for invoices and quotes, but recurring runs and e-invoice submissions can have fiscal effects.

Installation

In SourceWeft

  1. Open Frihet ERP in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.frihet%2Ferp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "frihet-erp": {
      "type": "http",
      "url": "https://mcp.frihet.io/mcp"
    }
  }
}

README

[frihet-mcp]

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

Works with Claude · ChatGPT · Cursor · Windsurf · Cline · Antigravity · Codex · Copilot · Gemini CLI — and any MCP-compatible client.

[npm version] [npm downloads] [MCP Registry] [156 canonical catalogue operations] [license]

[Frihet MCP — talk to your ERP in natural language]


What is this

An MCP server that connects your AI assistant to Frihet, the AI-native ERP for businesses of any size. Ask for invoices, expenses, clients, quotes, banking and tax figures in plain language, from the tools you already use.

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.

156 canonical operations. Five fiscal aliases. Ten prompts. The local package serves 11 resources; the hosted Worker deliberately serves the 7 static resources, while API-backed workspace resources remain local-profile only.


Quick start

Remote, one step. Add https://mcp.frihet.io/mcp as a remote MCP server in any client that supports OAuth. You sign in with your browser; there is nothing to install and no key to copy.

Local, with your API key (create one in app.frihet.io under Settings > API):

bash
claude mcp add frihet -s user -e FRIHET_API_KEY=fri_your_key_here -- npx -y @frihet/mcp-server

No account yet? Try demo mode. It answers from example data, persists nothing and makes no network calls:

bash
FRIHET_DEMO=1 npx -y @frihet/mcp-server

Local installs need Node 22.23.4+, 24.22.1+ or 26.12.1+. Other clients are covered under Client setup.


Distribution

Where to get it

ChannelStatusEntry point
npmPublished@frihet/mcp-server · npx -y @frihet/mcp-server
Remote MCPLive, OAuth or API keyhttps://mcp.frihet.io/mcp (running version at /health)
ChatGPT appLiveFrihet in ChatGPT
RaycastComing to the Raycast StoreSubmission
Official MCP RegistryListedio.frihet/erp
GitHub MCP RegistryListedFrihet ERP

Also listed on Glama, Cursor Directory, mcp.so, mcpservers.org and the ToolSDK registry.

Surface truth: the catalogue contains 156 canonical operations. The local full profile serves 161 tool names, 11 resources, and 10 prompts (156 canonical operations plus 5 fiscal aliases). The hosted grouped profile serves 164 tool names, 7 resources, and 10 prompts (the same names plus 3 discovery tools, with API-backed resources kept local-only). The separately reviewed OpenAI profile serves 33 tool names, 0 resources, and 0 prompts. These counts describe the current source release; the hosted server reports the version it is running at /health. Catalogue membership is not a promise that a backing API is enabled for every workspace.


What you can do

Real prompts, grouped by area.

AreaTry asking
Invoicing"Show me all unpaid invoices" · "Create an invoice for Acme SL with 10h of consulting at 95/hour" · "Mark invoice abc123 as paid"
Expenses"Log a 59.99 EUR expense for Adobe Creative Cloud, category: software, tax-deductible" · "What did I spend on travel last quarter?"
Clients and CRM"Add a new client: TechStart SL, NIF B12345678" · "Log a call with TechStart: discussed Q2 proposal" · "Show all activities for Acme SL"
Quotes"Create a quote for Design Studio: logo design (2000 EUR) + brand guidelines (3500 EUR)"
Tax and reporting"Prepare my quarterly tax summary" · "Give me this month's profit and loss"
Webhooks"Set up a webhook to notify https://my-app.com/hook when invoices are paid"

Beyond these, the catalogue covers banking, e-invoicing, time tracking, recurring invoices, HR and payroll, POS and more. See the full catalogue.


Client setup

Claude Code

bash
claude mcp add frihet -s user -e FRIHET_API_KEY=fri_your_key_here -- npx -y @frihet/mcp-serverclaude mcp list          # verify: frihet ✓ Connected

Or use the hosted server: claude mcp add --transport http frihet https://mcp.frihet.io/mcp.

Codex CLI

bash
codex mcp add frihet --env FRIHET_API_KEY=fri_your_key_here -- npx -y @frihet/mcp-server

Codex reads TOML, not JSON. Pasting a JSON mcpServers block into ~/.codex/config.toml is a parse error that breaks the whole file, so use the command above.

Claude Desktop, Cursor, Windsurf, Cline

json
{  "mcpServers": {    "frihet": {      "command": "npx",      "args": ["-y", "@frihet/mcp-server"],      "env": {        "FRIHET_API_KEY": "fri_your_key_here"      }    }  }}
ClientConfig file
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

Remote server with an API key

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

Clients that support OAuth 2.1 with PKCE can connect to the same URL and sign in through the browser instead.

ChatGPT

Open Frihet in ChatGPT and connect your account.

Skill for coding agents

bash
npx skills add Frihet-io/frihet-mcp

Installs the Frihet skill for Claude Code, Cursor, Codex, Windsurf, Gemini CLI and others. It routes requests to the MCP tools and asks for confirmation before writes. Tax figures come from your Frihet data, not from the skill. Skill docs.

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 is only shown once.

For AI agents

If you are an agent reading this repository, the contract is machine-readable and generated from the running server.

WhatWhere
Onboarding contract: quickstart per client, auth, safe workflow, human-authority tool lists, error recoverydocs/agent-onboarding.json, also shipped in the npm package
Per-tool capability truth: callability, writesFrihet, externalInteraction, externalSideEffects_meta["io.frihet/capability"] on every entry of tools/list
How to behave once connectedthe instructions string returned by initialize
  1. Orient before acting. get_business_context and the frihet://tax/rates resource decide the correct fiscal treatment. Do not recall a tax rate from memory.
  2. Draft, show, stop. create_invoice, create_quote and create_credit_note default to status=draft: no fiscal number, no hash, nothing sent to a tax authority.
  3. Human authority is not yours to assume. Any tool with a non-empty externalSideEffects reaches a client's inbox, a webhook, money, or a tax authority. Several also take confirm=true; that flag records a human decision.

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. Most of the 156 canonical operations are CRUD operations over the REST API; the rest are read-only summaries and fiscal/e-invoice actions. Alias and discovery names are counted separately.

It does not do OCR, PDF scanning, file upload or image processing. To digitize a paper invoice, extract the data first (a vision model, an OCR service, or manual entry), then ask the assistant to create the record. One API key maps to one Frihet workspace, and you need a Frihet account at app.frihet.io.


Full catalogue

All 156 canonical operations, resources and prompts

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_invoiceDelete a draft invoice; a sent/paid one is cancelled, not destroyed (confirm=true required)
search_invoicesFind invoices by client name, date, or status
send_invoiceEmail invoice to client (PDF attachment) — reaches a third party, confirm=true required
mark_invoice_paidMark an invoice as paid with optional payment date
get_invoice_pdfGet bounded invoice PDF bytes as base64
get_invoice_einvoiceGet bounded XML or Factur-X PDF bytes for an invoice
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 only a clean draft with no delivery, response, attachment, or conversion evidence; refuse protected drafts; cancel non-drafts (confirm=true required)
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 an e-invoice dispatch until it succeeds or fails; returns ackId, XML URL and 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_submitNOT_DEPLOYED: submit an invoice to KSeF (Poland). Returns a labeled "unavailable" error until activated

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_nowGenerate the next recurring invoice with explicit confirm=true in full and grouped modes; workspace settings may trigger fiscal issuance, submission and webhooks

Team Management (4)

ToolWhat it does
list_team_membersList active members + pending invites (owner excluded)
invite_team_memberInvite a new member by email with role (admin/editor/accountant/viewer)
update_team_member_roleChange an existing member's role (admin/editor/accountant/viewer)
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, restricted)
frihet_gl_entry_rejectReject a GL entry with a mandatory reason (restricted)
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) — not deployed, returns NOT_DEPLOYED
frihet_modelo_425_summaryM425 annual IGIC recap for Canary Islands businesses — not deployed, returns NOT_DEPLOYED
frihet_modelo_418_summaryM418 monthly individual IGIC return, régimen especial del grupo de entidades — not deployed, returns NOT_DEPLOYED
frihet_aiem_calculateAIEM (Arbitrio Importación) calculation for Canarias — not deployed, returns NOT_DEPLOYED

Impuesto sobre Sociedades — Corporate Tax (2)

ToolWhat it does
frihet_modelo_200_summaryModelo 200 annual IS return — not deployed, returns NOT_DEPLOYED
frihet_modelo_202_summaryModelo 202 installment payments (1P/2P/3P) — not deployed, returns NOT_DEPLOYED

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_depositRecord a deposit refund in Frihet bookkeeping with confirm=true; optional amount records that portion, omission records the remaining refundable balance. Does not transfer money

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 (7)

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) — not deployed, returns NOT_DEPLOYED
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

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

Kitchen / Restaurant (6)

ToolWhat it does
list_kitchen_ticketsList kitchen order tickets for the live board, filtered by status or station
get_kitchen_ticketGet a single kitchen ticket by ID with all items and their individual statuses
update_kitchen_ticketAdvance a ticket's status (queued → preparing → ready → served) or reassign it to another station
list_kitchen_stationsList all kitchen stations with id, name, and active status
list_menu_itemsList the kitchen menu catalog with free-text search and active/inactive filter
kitchen_flow_summarySlow-station detection: aggregate open tickets per station and flag the bottleneck

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_reportRead daily/weekly overtime, aggregate minutes/hours, and compliance alerts computed over the selected YYYY or YYYY-MM records
anomaly_listList attendance anomalies (missing punches, excessive overtime)

Payroll (2)

ToolWhat it does
payroll_exportRead normalized payroll-ready employee data; the format value is an echoed destination label, not a generated file
payroll_checklistList payable employees with payroll-profile readiness, missing fields, and monthly review state

Permissions (2)

ToolWhat it does
permissions_matrixGet the documented RBAC-model snapshot (not a runtime authorization guarantee)
permissions_meCompare RBAC-model fields with actual API-key scopes and known scope denials (non-exhaustive)

Period Close (3)

ToolWhat it does
period_close_statusGet the current or selected YYYY fiscal-year range, open/closed state, and nullable closing details
period_closeClose an accounting period (gestor/admin only, restricted)
period_reopenReopen a closed period with a mandatory reason (restricted)

All canonical operations (and their aliases) return structured output via outputSchema -- typed JSON, not raw text. List response shapes follow their API family; not every list endpoint is paginated.

Capability and side-effect truth

On the full MCP surfaces, every tools/list entry includes _meta["io.frihet/capability"]:

  • registered means the name and handler exist in this server build;
  • callability is api_dependent (the handler calls the API; deployment, workspace enablement, and authorization still decide), runtime_checked (the handler explicitly distinguishes an absent backend from empty data), deferred, unavailable, or local—never an unconditional “available” claim;
  • writesFrihet, externalInteraction, and externalSideEffects distinguish state changes and calls to external entities/providers;
  • MCP action annotations remain the standard source for read-only, destructive, idempotent, and open-world hints.

The ChatGPT app uses a separately reviewed profile of 33 business operations, with no discovery meta-tools, prompts or resources. Its 17 reads and 16 writes are deliberately narrow, and every write requires literal confirm=true. Do not infer it from the full catalogue.

Resources

Context the AI can read to make smarter decisions.

The local package serves 11 resources: 7 static references plus 4 API-backed workspace resources. The hosted Worker serves the 7 static resources. The OpenAI-reviewed host serves 0 resources.

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 and annual filing deadlines for the listed Spanish tax models
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/countriesSupported 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?

Configuration

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

FRIHET_TOOL_MODE=grouped is progressive disclosure: each tool description collapses to one line and three discovery tools (list_tool_groups, search_tools, describe_tool) are added, so an agent loads full schemas only for the tools it needs. Operation names, input schemas and handlers do not change. The hosted server runs in grouped mode.

json
{  "mcpServers": {    "frihet": {      "command": "npx",      "args": ["@frihet/mcp-server"],      "env": { "FRIHET_API_KEY": "fri_...", "FRIHET_TOOL_MODE": "grouped" }    }  }}

Rate limits depend on your plan; the server retries with exponential backoff on 429. See the API reference.


Development and contributing

bash
git clone https://github.com/Frihet-io/frihet-mcp.gitcd frihet-mcpnpm installnpm run build   # must pass before submittingFRIHET_API_KEY=fri_xxx node dist/index.js

Test with the MCP Inspector: npx @modelcontextprotocol/inspector node dist/index.js. Open an issue before large changes. Report vulnerabilities as described in SECURITY.md.


Ecosystem

PackageWhat it is
@frihet/mcp-serverThis MCP server (156 canonical operations + 5 alias names; 11 local 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
WebhooksReal-time events with HMAC-SHA256

Frihet · Documentation · MCP server docs · OpenAPI spec

License

MIT. See LICENSE.

Built by Frihet.

Source: README.md at commit 073cc52

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

2
  1. v2.0.0LatestNov 7, 2026
  2. v1.17.0Sep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts