Skip to main content

MCP Server and Claude Code Skill

The Frihet MCP server connects your AI assistant directly to your ERP. 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% VAT = 3,630.00 EUR.

31 tools. 6 resources. Zero boilerplate.


Install

Requirements

  • Claude Code, Claude Desktop, Cursor, Windsurf, Cline, or any MCP-compatible tool
  • A Frihet account with API access (paid plans)

Local install (stdio transport)

Add this to your MCP config file:

{
"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

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

Remote (no install)

Use the hosted endpoint at mcp.frihet.io — no local dependencies:

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

Same 31 tools, zero local setup. Runs on Cloudflare Workers.

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

What you can do

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 Acme SL 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.com"
"Show me all my clients"
"Update Acme SL's address to 1 Main Street, New York 10001"

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"

Tools reference

Invoices

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

Expenses

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

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

Products

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

ToolWhat it does
list_quotesList all quotes
get_quoteGet quote details
create_quoteDraft a new quote
update_quoteModify a quote
delete_quoteDelete a quote

Webhooks

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

Claude Code Skill

Beyond raw MCP tools, Frihet ships a Claude Code skill that adds business intelligence: workflow recipes, formatted financial reports, and natural language commands.

Install the skill

# Clone and symlink
git clone https://github.com/berthelius/frihet-mcp.git
ln -s "$(pwd)/frihet-mcp/skill" ~/.claude/skills/frihet

Or download just the skill file:

curl -sL https://raw.githubusercontent.com/berthelius/frihet-mcp/main/skill/SKILL.md \
-o ~/.claude/skills/frihet/SKILL.md --create-dirs

Skill commands

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

Example: Create an invoice

/frihet invoice "Acme SL, 40 hours of consulting at 75 EUR/hour, due March 1st"

The skill creates the invoice with line items, calculates VAT at 21%, and confirms the assigned number.

Example: Log expenses fast

/frihet expense "47.50 gasoline Feb 15"
/frihet expense "Adobe CC 59.99 software"
/frihet expense "Client lunch 23.40 restaurant"

The skill infers the category and marks deductibility automatically.

Example: Quarterly tax prep

/frihet report quarterly

Calculates automatically:

  • Output VAT (collected on invoices)
  • Input VAT (paid on deductible expenses)
  • Net amount due or credit
  • Data ready for your quarterly tax return

Example: Overdue follow-up

/frihet report unpaid

Lists overdue invoices sorted by amount, days past due, and suggests follow-up actions.


Skill vs. MCP Server

MCP ServerSkill
Scope31 CRUD toolsTools + business intelligence
ContextNoneTax rules, deductibility, calendar
WorkflowsSingle operationsMulti-step recipes (close, tax prep, conversion)
Output formatRaw JSONTables and readable summaries
PrerequisiteAPI keyAPI key + MCP server

The skill uses the MCP server underneath. It doesn't duplicate logic — it adds context.


How it works

Your AI assistant          frihet-mcp           Frihet API
| | |
|-- "create invoice" --> | |
| |-- POST /invoices ->|
| |<-- 201 Created ----|
|<-- "Invoice created" --| |

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

Environment variables

VariableRequiredDefault
FRIHET_API_KEYYes
FRIHET_API_URLNohttps://api.frihet.io/v1

FRIHET_API_URL is useful if you point to a staging environment.


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.


Why Frihet MCP

FrihetHoldedBillinQuipuAnfix
Official MCP serverYesNoNoNoNo
Claude / Cursor / WindsurfYesNoNoNoNo
Public REST APIYesYesLimitedYesNo
Webhooks with HMAC verificationYesNoNoNoNo
AI assistant built-inYesNoNoNoNo
Open source toolingYesNoNoNoNo

No other Spanish ERP has an official MCP server.


Security

  • The API key is managed exclusively via environment variables in the MCP config
  • The skill never displays, logs, or stores your API key
  • All data travels encrypted between your AI assistant, the MCP server, and the Frihet API
  • The MCP server is stateless — it stores nothing