playwright
MCPDrives a real browser so the agent can open pages, click, fill forms and read what actually rendered.
Ships with frihet-erp: 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 Code
$ claude mcp add frihet -e FRIHET_API_KEY=YOUR_VALUE -- npx -y @frihet/mcp-server
Codex
$ codex mcp add frihet --env FRIHET_API_KEY=YOUR_VALUE -- npx -y @frihet/mcp-server
Cursor
{ "mcpServers": { "frihet": { "command": "npx", "args": [ "-y", "@frihet/mcp-server" ], "env": { "FRIHET_API_KEY": "YOUR_VALUE" } } } }
Add it to mcp.json.
Gemini CLI
{ "mcpServers": { "frihet": { "command": "npx", "args": [ "-y", "@frihet/mcp-server" ], "env": { "FRIHET_API_KEY": "YOUR_VALUE" } } } }
Add it to settings.json.
GitHub Copilot
$ copilot mcp add frihet --env FRIHET_API_KEY=YOUR_VALUE -- npx -y @frihet/mcp-server
OpenCode
{ "mcp": { "frihet": { "type": "local", "command": [ "npx", "-y", "@frihet/mcp-server" ], "environment": { "FRIHET_API_KEY": "YOUR_VALUE" } } } }
Add it to opencode.json.
Windsurf
{ "mcpServers": { "frihet": { "command": "npx", "args": [ "-y", "@frihet/mcp-server" ], "env": { "FRIHET_API_KEY": "YOUR_VALUE" } } } }
Add it to mcp_config.json.
Security report
Low risk
Known flaws
None known
Signed build
Yes
Build provenance published
Maintained
Nov 2, 2026
Last push
Licence
MIT
Runs as
npx
On your machine
Deprecated
No
Signals from public registries, not an audit. Checked Nov 11, 2026.
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.

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.
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):
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:
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.
| Channel | Status | Entry point |
|---|---|---|
| npm | Published | @frihet/mcp-server · npx -y @frihet/mcp-server |
| Remote MCP | Live, OAuth or API key | https://mcp.frihet.io/mcp (running version at /health) |
| ChatGPT app | Live | Frihet in ChatGPT |
| Raycast | Coming to the Raycast Store | Submission |
| Official MCP Registry | Listed | io.frihet/erp |
| GitHub MCP Registry | Listed | Frihet 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.
Real prompts, grouped by area.
| Area | Try 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.
claude mcp add frihet -s user -e FRIHET_API_KEY=fri_your_key_here -- npx -y @frihet/mcp-server
claude mcp list # verify: frihet ✓ Connected
Or use the hosted server: claude mcp add --transport http frihet https://mcp.frihet.io/mcp.
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.
{
"mcpServers": {
"frihet": {
"command": "npx",
"args": ["-y", "@frihet/mcp-server"],
"env": {
"FRIHET_API_KEY": "fri_your_key_here"
}
}
}
}
| Client | Config file |
|---|---|
| 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 |
{
"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.
Open Frihet in ChatGPT and connect your account.
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.
fri_). It is only shown once.If you are an agent reading this repository, the contract is machine-readable and generated from the running server.
| What | Where |
|---|---|
| Onboarding contract: quickstart per client, auth, safe workflow, human-authority tool lists, error recovery | docs/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 connected | the instructions string returned by initialize |
get_business_context and the frihet://tax/rates resource decide the correct fiscal treatment. Do not recall a tax rate from memory.create_invoice, create_quote and create_credit_note default to status=draft: no fiscal number, no hash, nothing sent to a tax authority.externalSideEffects reaches a client's inbox, a webhook, money, or a tax authority. Several also take confirm=true; that flag records a human decision.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.
All 156 canonical operations, resources and prompts
| 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 | Delete a draft invoice; a sent/paid one is cancelled, not destroyed (confirm=true required) |
search_invoices | Find invoices by client name, date, or status |
send_invoice | Email invoice to client (PDF attachment) — reaches a third party, confirm=true required |
mark_invoice_paid | Mark an invoice as paid with optional payment date |
get_invoice_pdf | Get bounded invoice PDF bytes as base64 |
get_invoice_einvoice | Get bounded XML or Factur-X PDF bytes for an invoice |
create_credit_note | Create a credit note linked to an existing invoice |
apply_late_fee | Apply a late payment fee to an overdue invoice |
| 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 |
| 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 |
| Tool | What it does |
|---|
Drives a real browser so the agent can open pages, click, fill forms and read what actually rendered.
Ships with open-computer-use: open-computer-use is an open-source Computer Use service wrapped as MCP. Any AI agent or MCP client…