Frihet ERP

io.frihet由 frihet.io 发布官方发布者v2.0.0更新于 Nov 7, 2026

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

已验证Streamable HTTP可网页运行效率与工作流金融商业与电商

概览

AI 生成的概览

把 AI 助手连接到 Frihet ERP,可创建和查询发票、报价、费用、客户、CRM 记录、银行与西班牙税务汇总。

可以做什么
  • 创建、修改、搜索和删除发票、报价、贷项通知单与周期性发票模板,并发送给客户
  • 记录和管理费用、产品、客户、联系人、CRM 活动与备注
  • 读取经营数据:业务快照、月度损益、季度税务准备、应收账款账龄
  • 处理电子发票与税务申报,以及工时、人事请假与考勤、团队角色和 Webhook
  • 运行月度结账、季度税务准备、逾期跟进、现金流预测等引导式提示
适用场景
适合已在 Frihet 中记账的企业,希望用自然语言让助手起草发票、登记费用、查询客户或获取税务与利润数据,而不必在应用里逐项操作。
运行要求
可使用托管远程端点并通过 OAuth 登录,或使用 npx 运行本地 npm 包;本地方式需要 Node 22.23.4+、24.22.1+ 或 26.12.1+,并在 FRIHET_API_KEY 中提供 API 密钥。需要 Frihet 账户;演示模式无需账户,仅用示例数据作答。
安装前请注意
API 密钥(FRIHET_API_KEY)对应一个工作区,且只显示一次。许多工具会写入、发送、删除或作废记录,向客户发邮件、触发 Webhook 或提交至税务机关,部分需要 confirm=true。发票和报价默认存为草稿,但周期性生成和电子发票提交可能产生税务后果。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Frihet ERP,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.frihet%2Ferp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

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

来源:README.md,提交 073cc52

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

2
  1. v2.0.0最新Nov 7, 2026
  2. v1.17.0Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分