Frihet MCP Server
AI-native business management — invoices, expenses, clients, products, quotes, and webhooks. 31 tools for Claude, Cursor, Windsurf, and Cline.
README
<p align="center"> <img src="./assets/banner.svg" alt="frihet-mcp" width="100%"/> </p>
<p align="center"> <strong>AI-native MCP server for business management.</strong><br/> <em>Servidor MCP nativo con IA para gestión empresarial.</em> </p>
<p align="center"> <a href="https://www.npmjs.com/package/@frihet/mcp-server"><img src="https://img.shields.io/npm/v/@frihet/mcp-server?style=flat&color=18181b&labelColor=09090b" alt="npm"></a> <a href="https://github.com/berthelius/frihet-mcp/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-18181b?style=flat&labelColor=09090b" alt="license"></a> <a href="https://smithery.ai/server/@frihet/mcp-server"><img src="https://img.shields.io/badge/smithery-listed-18181b?style=flat&labelColor=09090b" alt="smithery"></a> <a href="https://frihet.io"><img src="https://img.shields.io/badge/frihet.io-ERP-18181b?style=flat&labelColor=09090b" alt="frihet"></a> </p>
What is this
An MCP server that connects your AI assistant to Frihet 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% IVA = 3,630.00 EUR.
31 tools. 6 resources. Zero boilerplate.
Install
One line. Pick your tool.
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)
If you prefer not to install anything locally, use the hosted endpoint at mcp.frihet.io:
{
"mcpServers": {
"frihet": {
"type": "streamable-http",
"url": "https://mcp.frihet.io/mcp",
"headers": {
"Authorization": "Bearer fri_your_key_here"
}
}
}
}
Same 31 tools, zero local dependencies. Runs on Cloudflare Workers.
Get your API key
- Log into app.frihet.io
- Go to Settings > API
- Click Create API key
- 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"
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 / Facturas
| 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 |
Expenses / Gastos
| 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 / Clientes
| 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 |
Products / Productos
| 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 / Presupuestos
| 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 |
Webhooks
| 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 |
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. You just talk.
Environment variables
| Variable | Required | Default |
|---|---|---|
FRIHET_API_KEY |
Yes | -- |
FRIHET_API_URL |
No | https://api.frihet.io/v1 |
FRIHET_API_URL is useful if you self-host or want to point to a staging environment.
API limits
| Limit | Value |
|---|---|
| Requests per minute | 100 per API key |
| Results per page | 100 max (50 default) |
| Request body | 1 MB max |
| Webhook payload | 100 KB max |
| Webhooks per account | 20 max |
Rate limiting is handled automatically with exponential backoff. You don't need to think about it.
Claude Code Skill
Beyond raw MCP tools, Frihet ships a Claude Code skill that adds business intelligence: Spanish tax context, workflow recipes (monthly close, quarterly tax prep, overdue follow-up), 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
Commands
| Command | What it does |
|---|---|
/frihet status |
Account overview, recent activity, pending payments |
/frihet invoice |
Create, list, search invoices |
/frihet expense |
Log and query expenses |
/frihet clients |
Manage client database |
/frihet quote |
Create and manage quotes |
/frihet report |
Financial summaries (P&L, quarterly, overdue) |
/frihet webhooks |
Configure automation triggers |
/frihet setup |
Guided setup and connection test |
The skill knows about IVA rates, IRPF retention, Modelo 303 prep, expense deductibility rules, and Verifactu compliance. It's your accountant in the terminal.
Full documentation: docs.frihet.io/desarrolladores/skill-claude-code
Development
git clone https://github.com/berthelius/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
Why Frihet MCP
| Frihet | Holded | Billin | Quipu | Anfix | |
|---|---|---|---|---|---|
| Official MCP server | Yes | No (third-party) | No | No | No |
| Claude / Cursor / Windsurf | Yes | No | No | No | No |
| Public REST API | Yes | Yes | Limited | Yes | No |
| Webhooks with HMAC verification | Yes | No | No | No | No |
| AI assistant built-in | Yes | No | No | No | No |
| Open source tooling | Yes | No | No | No | No |
The first business management platform with an official MCP server. No other ERP has this.
Links
- Frihet ERP -- The product
- API documentation -- REST API reference
- Webhook documentation -- Events, signatures, retries
- Remote endpoint -- Hosted MCP server (Cloudflare Workers)
- MCP specification -- The protocol
License
MIT. See LICENSE.
Built by BRTHLS.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.