ИИ-сервер MCP для управления бизнесом.
MCP-сервер с ИИ для управления бизнесом.
Совместим с Claude · ChatGPT · Cursor · Windsurf · Cline · Antigravity · Codex · Copilot · Gemini CLI — и любым клиентом, совместимым с MCP.
Распространение
| Канал | Статус | Установка |
|---|---|---|
| npm | Работает | npx @frihet/mcp-server |
| удалённая точка доступа | Работает | https://mcp.frihet.io/mcp (установка не требуется, OAuth или API-ключ) |
| Smithery | Работает | smithery.ai/servers/frihet/frihet-mcp |
| MCP Registry | Работает | registry.modelcontextprotocol.io |
| Glama | Работает | glama.ai/mcp/servers/Frihet-io/frihet-mcp |
| mcp.so | Автоиндексация (непроверено) | mcp.so — индексирует из npm + GitHub |
| PulseMCP | Автоиндексация (непроверено) | pulsemcp.com — индексирует из npm + GitHub |
| Cursor Marketplace | Скоро доступно | cursor.com/marketplace |
| ChatGPT Apps | Скоро доступно | chatgpt.com |
| Anthropic Claude Directory | Скоро доступно | claude.ai/settings/connectors |
Количество инструментов: пакет (1.16.5) включает все 157 инструментов, как и удалённый эндпойнт (
mcp.frihet.io).
Что это
MCP-сервер, который соединяет вашего AI‑помощника с Frihet. Создавайте счета-фактуры в диалоге. Запрашивайте расходы на естественном языке. Управляйте всем бизнесом прямо из вашей 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.
157 инструментов. 11 ресурсов. 10 подсказок. Для каждого инструмента — структурированный вывод. Без шаблонного кода.
Пробуйте прямо сейчас (без регистрации)
Попробуйте без настройки — без учётной записи, без API‑ключа:
FRIHET_DEMO=1 npx -y @frihet/mcp-server
В демо-режиме сервер отвечает на основе реалистичных примерных фикстур (используется Испанские счета-фактуры с IVA/IGIC, расходы, клиенты, продукты, банковский счёт и т.д.) — все записи имеют префикс demo_, на старте сервер выводит баннер DEMO MODE. Ничего не сохраняется, сетевые запросы не выполняются. Записи имитируются, а налоговые действия (e‑invoice, VeriFactu, TicketBAI, FACe, payroll) возвращают явно помеченную симуляцию — это не отправляется в налоговые органы.
Когда будете готовы к реальным данным, снимите флаг и добавьте ваш ключ (app.frihet.io → Settings → API keys). См. раздел Install ниже.
Установка
Однострочная установка (Claude Code, Cursor, Copilot, Codex, Windsurf, Gemini CLI и др.)
npx skills add Frihet-io/frihet-mcp
Плагин Claude Code (набор навыков + MCP‑сервер в одном установке)
Этот репозиторий также является плагином Claude Code (frihet-erp): установка собирает и бизнес‑управляющий навык, и MCP‑сервер.
# Попробовать локально
claude --plugin-dir /path/to/frihet-mcp
После того как плагин появится в Marketplace сообщества:
/plugin marketplace add anthropics/claude-plugins-community
/plugin install frihet-erp@claude-community
Вызов навыка: /frihet-erp:frihet-mcp. Упакованный .mcp.json запускает @frihet/mcp-server через npx — укажите FRIHET_API_KEY в вашей среде (ключ можно получить на app.frihet.io → Settings → API keys).
Claude Code / Claude Desktop
{
"mcpServers": {
"frihet": {
"command": "npx",
"args": ["-y", "@frihet/mcp-server"],
"env": {
"FRIHET_API_KEY": "fri_your_key_here"
}
}
}
}
| Инструмент | Файл конфигурации |
|---|---|
| Claude Code | ~/.claude/mcp.json |
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Cursor | .cursor/mcp.json или ~/.cursor/mcp.json |
| Windsurf | ~/.windsurf/mcp.json |
| Cline | VS Code settings or .cline/mcp.json |
| Codex CLI | ~/.codex/config.toml (MCP section) |
JSON-конфигурация одинакова для всех инструментов. Путь к файлу отличается только.
Удалённо (без установки)
Используйте hosted endpoint на mcp.frihet.io — нулевые локальные зависимости, работает на Cloudflare Workers.
С API‑ключом:
{
"mcpServers": {
"frihet": {
"type": "streamable-http",
"url": "https://mcp.frihet.io/mcp",
"headers": {
"Authorization": "Bearer fri_your_key_here"
}
}
}
}
С OAuth 2.0 + PKCE (браузерная аутентификация, API‑ключ не требуется):
Клиенты, поддерживающие OAuth (Claude Desktop, Smithery и т. д.), могут подключаться напрямую к https://mcp.frihet.io/mcp и аутентифицироваться через браузер. Сервер реализует полный поток авторизации OAuth 2.1 с PKCE.
Получить API‑ключ
-
Войдите в app.frihet.io
-
Перейдите в раздел Settings > API
-
Нажмите Create API key
-
Скопируйте ключ (начинается с
fri_) — он отображается только один раз
Что можно делать
Говорите с вашим ERP. Это реальные запросы, а не маркетинговые тексты.
Инвойсы
"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?"
Расходы
"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?"
Клиенты
"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"
CRM
"Add a contact to Acme SL: Ana Garcia, CTO, ana@acme.es"
"Log a call with TechStart: discussed Q2 proposal, they're interested in upgrade"
"Add a note to ClientName: prefers invoices in English, payment NET 30"
"Show me all activities for Acme SL"
Коммерческие предложения (Quotes)
"Create a quote for Design Studio: logo design (2000 EUR) + brand guidelines (3500 EUR)"
"Show me all pending quotes"
Вебхуки
"Set up a webhook to notify https://my-app.com/hook when invoices are paid"
"List all my active webhooks"
Чего ожидать
Это MCP — структураированный интерфейс данных: вы описываете, чего хотите на естественном языке, и AI создаёт, извлекает или изменяет бизнес‑записи в Frihet. Большинство из 157 инструментов — CRUD‑операции над REST API; остальные — итоговые сводки и налоговые/электронные счета.
Подходит для:
"Create an invoice for TechStart SL, 40h consulting at 75 EUR/h" --> creates the invoice
"Show unpaid invoices over 1,000 EUR" --> queries and filters
"Log a 120 EUR expense for the Madrid train, category: travel" --> records the expense
"Update client Acme's email to billing@acme.es" --> modifies the record
Не делает:
-
OCR или сканирование PDF — загрузить изображение счёта и распознать текст нельзя
-
Загрузку файлов или работу с вложениями
-
Любую обработку изображений
Если нужно цифровать бумажные счета или квитанции, сначала извлеките данные (например, Claude Vision API, специализированный OCR-сервис или вручную) и затем используйте MCP для создания записи:
1. Сканируйте/фотографируйте счёт
2. Используйте Claude Vision: "Read this invoice image and extract the vendor, items, amounts, and dates"
3. Затем: "Create an expense in Frihet for [extracted data]"
Инструменты (157)
Инвойсы (12)
| Инструмент | Что делает |
|---|---|
| list_invoices | Список счетов с пагинацией |
| get_invoice | Получить детальные данные счёта по ID |
| create_invoice | Создать новый счет-фактуру с позиции |
| update_invoice | Обновить любое поле счёта |
| delete_invoice | Безвозвратно удалить счёт |
| search_invoices | Найти счета по названию клиента, дате или статусу |
| send_invoice | Отправить счет клиенту по электронной почте (PDF) |
| mark_invoice_paid | Пометить счёт как оплаченный с датой платежа (при желании) |
| get_invoice_pdf | Получить загрузочный URL для PDF счёта |
| get_invoice_einvoice | Получить e‑invoice XML для заданного счёта |
| create_credit_note | Создать кредит‑ноту к существующему счёту |
| apply_late_fee | Применить штраф за просрочку к просроченному счёту |
Расходы (5)
| Инструмент | Что делает |
|---|---|
| list_expenses | Список расходов с пагинацией |
| get_expense | Детали расхода |
| create_expense | Зафиксировать новый расход |
| update_expense | Изменить расход |
| delete_expense | Удалить расход |
Клиенты (5)
| Инструмент | Что делает |
|---|---|
| list_clients | Список всех клиентов |
| get_client | Детали клиента |
| create_client | Зарегистрировать нового клиента |
| update_client | Обновить данные клиента |
| delete_client | Удалить клиента |
CRM: Контакты (3)
| Инструмент | Что делает |
|---|---|
| list_client_contacts | Список контактов клиента |
| create_client_contact | Добавить контактного лица к клиенту |
| delete_client_contact | Удалить контакт клиента |
CRM: Активности (2)
| Инструмент | Что делает |
|---|---|
| list_client_activities | Список CRM‑активностей (звонки, письма, встречи, задачи) |
| log_client_activity | Зарегистрировать звонок, письмо, встречу или задачу для клиента |
CRM: Примечания (3)
| Инструмент | Что делает |
|---|---|
| list_client_notes | Список заметок по клиенту |
| create_client_note | Добавить произвольную заметку к клиенту |
| delete_client_note | Удалить заметку |
Продукты (5)
| Инструмент | Что делает |
|---|---|
| list_products | Список продуктов и услуг |
| get_product | Детали продукта |
| create_product | Добавить продукт или услугу |
| update_product | Изменить цену или детали |
| delete_product | Удалить продукт |
Коммерческие предложения (Quotes) (6)
| Инструмент | Что делает |
|---|---|
| list_quotes | Список всех предложений |
| get_quote | Детали предложения |
| create_quote | Сформировать новое предложение |
| update_quote | Изменить предложение |
| delete_quote | Удалить предложение |
| send_quote | Выслать клиенту на утверждение |
Вебхуки (6)
| Инструмент | Что делает |
|---|---|
| list_webhooks | Список настроенных вебхуков |
| get_webhook | Детали вебхука |
| create_webhook | Зарегистрировать новый веб‑хуку Endpoint |
| update_webhook | Изменить события или URL |
| delete_webhook | Удалить вебхук |
| test_webhook | Отправить тестовую полезную нагрузку на вебхук |
Интеллект (4)
| Инструмент | Что делает |
|---|---|
| get_business_context | Полная сводка: профиль, план, активность, топ‑клиенты, текущий месяц |
| get_monthly_summary | Ежемесячная P&L: выручка, расходы, прибыль, налоговые обязательства, топ‑клиенты по выручке |
| get_quarterly_taxes | Квартальная подготовка налогов: Modelo 303/130, начислено vs вычитаемо, обязательства |
| duplicate_invoice | Клонировать счёт для периодических платежей (копирует позиции/клиента/налоги, создание — в черновик) |
Электронная торговля (E‑Invoicing) (10)
| Инструмент | Что делает |
|---|---|
| send_einvoice | Отправка счёта в 11 форматах (XRechnung, Factur-X, FatturaPA, PEPPOL, Facturae, UBL, CII) по электронной почте / Chorus Pro / SDI / PEPPOL / скачивание |
| get_einvoice_status | Мониторинг статуса выполнения Hatchet — возвращает ackId, XML URL, PDF/A-3 URL |
| validate_einvoice_xml | Валидировать XML на соответствие схемам + Schematron |
| export_datev | Экспорт данных в DATEV EXTF (Buchungsstapel / Debitoren / Kreditoren) в CP1252 |
| einvoice_export | Экспорт данных e‑invoice в машиночитаемых форматах (JSON/XML) для архивирования или интеграции |
| face_submit | Отправка счёта в FACe (Испания, государственная платформа электронного счёта) |
| face_status | Мониторинг статуса отправки в FACe |
| ticketbai_submit | Отправка учетной записи TicketBAI в налоговую Баскской области |
| ticketbai_status | Мониторинг статуса отправки TicketBAI — перекрёстная проверка с E‑Invoicing |
| ksef_submit | Отправка счёта в KSeF (Польша) — заглушка: транспортная инфраструктура готова, но сейчас не доступна как рабочий эндпойнт |
Учёт времени (Time Tracking) (6)
| Инструмент | Что делает |
|---|---|
| list_time_entries | Список записей времени с фильтром по пользователю, проекту, диапазону дат, оплаченности |
| get_time_entry | Детали одной записи времени по ID |
| create_time_entry | Учёт часов по проекту (флаг billable, описание, дата) |
| update_time_entry | Обновить любое поле записи времени (PATCH) |
| delete_time_entry | Мягкое удаление записи времени (требуется confirm=true) |
| get_time_summary | Сумма часов по периодам (все/оплачиваемые/неоплачиваемые) с возможностью groupBy |
Повторяющиеся счета (Recurring Invoices) (8)
| Инструмент | Что делает |
|---|---|
| list_recurring_invoices | Список всех шаблонов повторяющихся счетов (активные/приостановленные) |
| get_recurring_invoice | Детали повторяющегося шаблона по ID |
| create_recurring_invoice | Создать новый шаблон повторяющегося счета |
| update_recurring_invoice | Обновить поля шаблона — влияет на будущие счета |
| pause_recurring_invoice | Приостановить активный шаблон — счета не генерируются |
| resume_recurring_invoice | Возобновить приостановленный шаблон — следующий счет по расписанию |
| delete_recurring_invoice | Безвозвратно удалить шаблон (confirm=true) |
| run_recurring_now | Вручную сгенерировать следующий экземпляр счета |
Управление командой (Team Management) (4)
| Инструмент | Что делает |
|---|---|
| list_team_members | Список участников рабочей области с ролями и статусами приглашения |
| invite_team_member | Пригласить нового участника по электронной почте с ролью (admin/member/viewer) |
| update_team_member_role | Изменить роль существующего участника |
| remove_team_member | Удалить участника из рабочего пространства (confirm=true) |
Gestoria — бухгалтера (5)
| Инструмент | Что делает |
|---|---|
| gestoria_message_send | Отправлять сообщение в контекстной ветке (documentRequest / filingItem / obligation) |
| gestoria_messages_list | Список сообщений в ветке, по мереNewest; пагинация назад |
| gestoria_template_create | Создать шаблон запроса документов с переменными + смещение по дате оплаты |
| gestoria_template_bulk_send | Массовая отправка шаблона до 500 рабочих пространств клиентов за один вызов |
| gestoria_aging_consolidated | Сводный AR‑aging по разным клиентам |
Audit GL (3)
| Инструмент | Что делает |
|---|---|
| frihet_gl_entry_approve | Утвердить проводку GL (только для gestor/admin — TRUST AREA) |
| frihet_gl_entry_reject | Отклонить проводку GL с обязательной причиной (TRUST AREA) |
| frihet_gl_entry_audit_log | Получить полный журнал аудита для проводки GL |
White-label Portal Domain (3)
| Инструмент | Что делает |
|---|---|
| frihet_portal_domain_add | Добавить пользовательский домен в портале клиента (возвращает записи DNS CNAME) |
| frihet_portal_domain_verify | Проверить распространение DNS для пользовательского домена портала |
| frihet_portal_domain_remove | Удалить пользовательский домен портала (вернуть к дефолтному субдомену Frihet) |
Self-onboard & VIES (2)
| Инструмент | Что делает |
|---|---|
| frihet_portal_onboard_link_generate | Сгенерировать ограниченно‑временную ссылку для самонастройки потенциального клиента |
| frihet_tax_id_vies_lookup | Валидировать номер НДС ЕС (CIF intracomunitario) через VIES |
IGIC — Налоги Канарских островов (4)
| Инструмент | Что делает |
|---|---|
| frihet_modelo_415_summary | M415 годовые операции >€3,005 (эквивалент M347 для Canarias) |
| frihet_modelo_425_summary | M425 годовой обзор IGIC для бизнеса на Канарах |
| frihet_modelo_418_summary | M418 ежемесячный отчёт IGIC для крупных предприятий |
| frihet_aiem_calculate | Рассчитать AIEM (Arbitrio Importación) для ввезённых/произведённых в Canarias товаров |
Impuesto sobre Sociedades — Корпоративный налог (2)
| Инструмент | Что делает |
|---|---|
| frihet_modelo_200_summary | Modelo 200 годовая декларация по подоходному налогу (налоговая база, вычеты, сумма к уплате) |
| frihet_modelo_202_summary | Modelo 202 авансовые платежи (1P Апрель, 2P Октябрь, 3P Декабрь) |
Правила банковской категоризации (2)
| Инструмент | Что делает |
|---|---|
| frihet_bank_rules_list | Список правил авто‑категоризации банковских операций |
| frihet_bank_rule_create | Создать новое правило авто‑категоризации по описанию, сумме, противнику |
Депозиты (7)
| Инструмент | Что делает |
|---|---|
| list_deposits | Список депозитов с пагинацией |
| get_deposit | Данные депозита по ID |
| create_deposit | Зафиксировать новый депозит клиента |
| update_deposit | Обновить поля депозита |
| delete_deposit | Удалить депозит (confirm=true) |
| apply_deposit | Применить баланс депозита к счету |
| refund_deposit | Вернуть депозит |
Контрагенты (Vendors) (5)
| Инструмент | Что делает |
|---|---|
| list_vendors | Список поставщиков |
| get_vendor | Детали поставщика |
| create_vendor | Добавить нового поставщика |
| update_vendor | Обновить данные поставщика |
| delete_vendor | Удалить поставщика |
Банковские операции (Banking) (5)
| Инструмент | Что делает |
|---|---|
| list_bank_accounts | Список подключённых банковских счетов |
| get_bank_account | Детали банковского счёта |
| list_transactions | Список банковских транзакций с фильтрами |
| categorize_transaction | Назначить категорию и тип расхода/дохода транзакции |
| match_transaction_to_invoice | Связать банковскую транзакцию с существующим счетом |
Фискал — Испанские налоговые модели (7)
| Инструмент | Что делает |
|---|---|
| get_modelo_303_summary | Квартальная декларация IVA (Modelo 303) — начислено vs вычтенное, чистая обязанность |
| get_modelo_130_summary | Квартальная авансовая IRPF для самозанятых (Modelo 130) |
| get_modelo_390_summary | Годовой свод IVA (Modelo 390) |
| get_modelo_180_summary | Годовый свод удержаний для аренды (Modelo 180) |
| get_modelo_347_summary | Ежегодные сделки третьих лиц >€3,005 (Modelo 347) |
| verifactu_status | Статус подачи VeriFactu |
| verifactu_resubmit | Повторная подача VeriFactu |
| ticketbai_status | Мониторинг статуса TicketBAI — перекрёстная проверка с E‑Invoicing (10); не учитывается в этом разделе |
Аренда жилья / Проживание (Vacation Rentals / Stay) (5)
| Инструмент | Что делает |
|---|---|
| list_reservations | Список бронирований с фильтрами |
| get_reservation | Детали брони |
| create_reservation | Создать новое бронирование |
| list_properties | Список объектов аренды |
| sync_channel | Синхронизация каналов OTA (Airbnb, Booking.com и т. п.) |
POS — Точка продаж (4)
| Инструмент | Что делает |
|---|---|
| list_terminals | Список регистрируемых POS‑терминалов |
| get_sale | Детали продажи через POS |
| list_sales | Список продаж через POS с пагинацией |
| refund_sale | Вернуть деньги за продажу через POS |
Кухня / Ресторан (Kitchen / Restaurant) (6)
| Инструмент | Что делает |
|---|---|
| list_kitchen_tickets | Список квитанций кухни для живой панели, фильтры по статусу/станции |
| get_kitchen_ticket | Открыть одну квитанцию кухни с позициями и статусами |
| update_kitchen_ticket | Обновить статус квитанции (от очереди к готовке к подаче) или переназначить станцию |
| list_kitchen_stations | Список станций кухни |
| list_menu_items | Список меню кухни с полнотекстовым поиском и активностью |
| kitchen_flow_summary | Обнаружение узких мест: агрегирование открытых квитанций по станциям |
HR — Человеческие ресурсы (9)
| Инструмент | Что делает |
|---|---|
| leave_request_create | Создать запрос на отпуск (отпуск, больничный, личный) |
| leave_approve | Утвердить запрос на отпуск |
| leave_reject | Отклонить запрос на отпуск с причиной |
| leave_cancel | Отменить утверждённый или ожидающий отпуск |
| leave_list | Список запросов на отпуск с фильтрами |
| attendance_clock_in | Записать прибытие сотрудника на работу |
| attendance_clock_out | Записать уход сотрудника |
| overtime_report | Сформировать отчёт об-overtime за период |
| anomaly_list | Список аномалий учёта времени |
Зарплата (Payroll) (2)
| Инструмент | Что делает |
|---|---|
| payroll_export | Экспорт данных по заработной плате за период |
| payroll_checklist | Сборник контрольных пунктов для пред‑зарплаты |
Онбординг (Onboarding) (2)
| Инструмент | Что делает |
|---|---|
| onboarding_status | Статус завершения онбординга для текущего рабочего пространства |
| onboarding_persona_set | Установить или обновить бизнес‑персону (фрилансер, SME, gestoría и т. д.) |
Привилегии (Permissions) (2)
| Инструмент | Что делает |
|---|---|
| permissions_matrix | Полная матрица прав для всех ролей в рабочем пространстве |
| permissions_me | Текущие разрешения вашего API‑ключа |
Закрытие периода (Period Close) (3)
| Инструмент | Что делает |
|---|---|
| period_close_status | Статус закрытия учётного периода |
| period_close | Закрыть учётный период (gestor/admin — TRUST AREA) |
| period_reopen | Открыть закрытый период с обязательной причиной (TRUST AREA) |
Все 157 инструментов возвращают структурированный вывод через outputSchema — типизированный JSON, а не чистый текст. Списки инструментов возвращают результаты с пагинацией ({ data, total, limit, offset }).
Ресурсы (11)
Контекст, который ИИ может читать для более умных решений.
Статический (описательные данные, без API-запросов):
| Ресурс | URI | Что предоставляет |
|---|---|---|
| API Schema | frihet://api/schema | OpenAPI-обзор: endpoints, авторизация, лимиты, пагинация, коды ошибок |
| Tax Rates | frihet://tax/rates | Налоги по регионам: IVA, IGIC, IPSI, ЕС‑обмен, IRPF |
| Tax Calendar | frihet://tax/calendar | Крайние сроки подачи: Modelo 303, 130, 390, 420, график VeriFactu |
| Expense Categories | frihet://config/expense-categories | 8 категорий с правилами deductible/IVA, амортизацией |
| Invoice Statuses | frihet://config/invoice-statuses | Статусы (черновик → отправлен → оплачен/просрочен → отменён) и переходы |
| Currencies | frihet://config/currencies | 40 валют с кодами ISO, символами, десятичными знаками, локалью |
| Countries | frihet://config/countries | 61 страны с налоговыми зонами, валютами, префиксами счетов |
Динамический (живые данные вашей учетной записи):
| Ресурс | URI | Что предоставляет |
|---|---|---|
| Business Profile | frihet://business-profile | Информация о бизнесе, план, настройки по умолчаниям, недавняя активность, топ‑клиенты |
| Monthly Snapshot | frihet://monthly-snapshot | Текущая месяц‑P&L: выручка, расходы, налоговые обязательства |
| Overdue Invoices | frihet://overdue-invoices | Все просроченные счета (до 100) |
| Plan Limits | frihet://status/plan-limits | Актуальный уровень плана, счётчики использования, счета/мес, лимиты API |
Подсказки (Prompts) (10)
Готовые рабочие процессы, которые ИИ может выполнять как пошаговые операции.
| Подсказка | Что делает | Аргументы |
|---|---|---|
| monthly-close | Закрыть месяц: проверить неоплаченные счета, классифицировать расходы, проверить налоговые обязательства, сгенерировать сводку | month? (YYYY-MM) |
| onboard-client | Настроить нового клиента с правильными налоговыми ставками по местоположению, опционально создать приветственный счёт | clientName, country?, region? |
| quarterly-tax-prep | Подготовить квартальную налоговую декларацию: рассчитать IVA/IGIC, выявить вычитаемые, просмотреть Modelo 303/130/420 | quarter?, fiscalZone? |
| overdue-followup | Найти просроченные счета, подготовить сообщения для напоминания об оплате | -- |
| new-client-invoice | Создать клиента и первый счёт в одном процессе с поиском налоговой ставки | clientName, country? |
| expense-report | Сформировать отчёт по расходам с группировкой по категориям и суммам по вычетам | month? (YYYY-MM) |
| year-end-close | Полное годовое закрытие: квартальный обзор, ожидающие счета, незавершённые расходы, чек‑лист на конец года | year (YYYY) |
| cash-flow-forecast | Прогноз денежного потока на ближайшие месяцы: повторяющиеся доходы, расходы, просроченные платежи, налоговые сроки | months? (default: 3) |
| invoice-aging-review | AR‑анализ старения: группировать неоплаченные счета по диапазонам, лидеры задолженности, действия по взысканию | -- |
| expense-batch | Обработать расходы пакетно: классифицировать, применить ставки налогов, отметить отсутствующие квитанции | fiscalZone? |
Как это работает
graph LR
AI["Ваш AI‑помощник"]
MCP["frihet-mcp"]
API["api.frihet.io"]
DB["Frihet ERP"]
AI -- "create_invoice()" --> MCP
MCP -- "POST /v1/invoices" --> API
API --> DB
DB -- "201 + invoice data" --> API
API -- "structured JSON" --> MCP
MCP -- "typed response + suggestions" --> AI
style AI fill:#09090b,stroke:#4ade80,color:#fafafa
style MCP fill:#09090b,stroke:#4ade80,color:#fafafa
style API fill:#09090b,stroke:#3f3f46,color:#a1a1aa
style DB fill:#09090b,stroke:#3f3f46,color:#a1a1aa
Сервер преобразует вызовы инструментов в REST API‑запросы. Он обеспечивает аутентификацию, контроль скорости (автоматическую повторную попытку при 429), пагинацию и сопоставление ошибок.
Два канала передачи:
-
stdio (локальный) —
npx @frihet/mcp-serverсFRIHET_API_KEY -
Streamable HTTP (удалённый) —
https://mcp.frihet.io/mcpс Bearer‑токеном или OAuth 2.0+PKCE
Переменные окружения
| Переменная | Обязательна | По умолчанию |
|---|---|---|
| FRIHET_API_KEY | Да (stdio) | -- |
| FRIHET_API_URL | Нет | https://api.frihet.io/v1 |
| FRIHET_TOOL_MODE | Нет | full |
Экспонирование инструментов: глубина по запросу
Преимущество Frihet — глубина охвата: полное покрытие налоговых требований ЕС/ИСП и нативная соответствие (VeriFactu, TicketBAI, Facturae/FACe; KSeF Польша — инфраструктура готова, активация ожидается), банковское дело, CRM, HR/зарплата, stay/PMS и POS. Но полный перечень инструментов «на старте» перегружает контекст агента и мешает выбору инструментов.
FRIHET_TOOL_MODE управляет тем, как глубина экспонируется.
| Режим | Поведение |
|---|---|
| full (по умолчанию) | Все инструменты экспонированы со своими полными описаниями и схемами. Без изменений по сравнению с предыдущими релизами — существующие настройки не затрагиваются. |
| grouped | Поэтапное раскрытие. Описание каждого инструмента сворачивается до одной строки [group]‑краткого описания — полный набор схем через describe_tool('name'), и добавляются три лёгких инструментов‑обзора. Агента загружает глубину только для нужных инструментов. |
В режиме grouped инструменты не изменяются — те же имена, те же входные схемы, поведение. Изменяется лишь upfront‑стоимость контекста. Discovery осуществляется через три мета‑инструмента:
-
list_tool_groups() — карта домена (invoicing, expenses, fiscal/compliance, banking, CRM, HR/payroll, stay/PMS, POS, intelligence, products, platform) с однострочным резюме и количеством инструментов в каждой группе.
-
search_tools(query) — полнотекстовый поиск по названию инструмента, заголовку, резюме и группе; возвращает совпадающие инструменты с их группой, резюме, признаком read-only и входными полями. Доп. фильтры по группе и лимит.
-
describe_tool(name) — полное оригинальное описание и входные поля для инструмента по запросу, перед вызовом.
// claude_desktop_config.json — opt in to grouped mode
{
"mcpServers": {
"frihet": {
"command": "npx",
"args": ["@frihet/mcp-server"],
"env": {
"FRIHET_API_KEY": "fri_...",
"FRIHET_TOOL_MODE": "grouped"
}
}
}
}
Это опциональный слой экспозиции — он никоим образом не меняет логику, имя или поведение инструментов, и режим
fullостаётся идентичным предыдущей версии. Та же концепция применяется и к безопасному профилю OpenAI (FRIHET_OPENAI_MODE).
Ограничения API
| Ограничение | Значение |
|---|---|
| Запросов в минуту | 100 на API‑ключ |
| Результатов на страницу | максимум 100 (по умолчанию 50) |
| Тело запроса | максимум 1 МБ |
| Payload вебхуков | максимум 100 КБ |
| Вебхуков на учётную запись | максимум 20 |
Контроль скорости выполняется автоматически с экспоненциальной задержкой.
Claude Code Skill
Помимо готовых инструментов MCP, в репозитории есть навык Claude Code, который добавляет контекст бизнеса: правила налогов по Испании, рецепты рабочих процессов, финансовые отчёты и команды на естественном языке.
Установка навыка
git clone https://github.com/Frihet-io/frihet-mcp.git
ln -s "$(pwd)/frihet-mcp/skill" ~/.claude/skills/frihet
Или через универсальный установщик:
npx skills add Frihet-io/frihet-mcp
Команды
| Команда | Что делает |
|---|---|
| /frihet status | Обзор аккаунта, недавняя активность, ожидающие платежи |
| /frihet invoice | Создать, списать, найти счёт-фактуру |
| /frihet expense | Зафиксировать и запросить расходы |
| /frihet clients | Управлять базой клиентов |
| /frihet quote | Создавать и управлять предложениями |
| /frihet report | Финансовые сводки (P&L, квартальные, просрочки) |
| /frihet webhooks | Настроить триггеры автоматизации |
| /frihet setup | Руководство по настройке и тест подключения |
Навык знает ставки IVA, удержания IRPF, подготовку Modelo 303, правила вычета расходов и требования VeriFactu.
Полная документация: docs.frihet.io/desarrolladores/skill-claude-code
Разработка
git clone https://github.com/Frihet-io/frihet-mcp.git
cd frihet-mcp
npm install
npm run build
Запуск локально:
FRIHET_API_KEY=fri_xxx node dist/index.js
Проверка через MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.js
Внесение изменений
Внесение изменений приветствуется. Предложение обсуждать через issue.
git clone https://github.com/Frihet-io/frihet-mcp.git
cd frihet-mcp
npm install
npm run build # должен успешно выполниться перед отправкой изменений
Текущие ограничения
- Нет OCR или загрузки файлов — MCP работает с структурированными данными, а не с изображениями.
- Одна компания — один API‑ключ соответствует одному Frihet‑рабочему пространству.
- Требуется учётная запись Frihet — активная учётная запись на app.frihet.io и API‑ключ (начинается с
fri_).
Экосистема
| Пакет | Что это такое |
|---|---|
| @frihet/mcp-server | Этот MCP‑сервер (157 инструментов, 11 ресурсов, 10 подсказок) |
| @frihet/sdk | TypeScript SDK (frihet.invoices.create()) |
| frihet | CLI (frihet invoices list --status overdue) |
| n8n-nodes-frihet | нода для n8n — автоматизация рабочих процессов |
| REST API | OpenAPI 3.1 на api.frihet.io/v1 |
| Remote MCP | Хостинг‑эндпойнт на Cloudflare Workers (без установки) |
| Webhooks | События в реальном времени с HMAC-SHA256 |
Ссылки
- Frihet — продукт
- Документация — Полная документация
- API‑справочник — REST API
- Документация по MCP‑серверу — Руководство по настройке, устранение неисправностей
- npm — Реестр пакетов
- Smithery — Магазин Smithery
- MCP Registry — Официальный реестр
- Удалённый эндпойнт — Хостинг MCP‑сервер (Cloudflare Workers)
- OpenAPI спецификация — Машиночитаемое определение API
Лицензия
MIT. См. LICENSE.
Собрано командой Frihet.