# gofact

Локальный MCP-сервер, который превращает HTML-счёт в Factur-X: PDF/A-3 с встроенным XML по EN 16931. Для французских фрилансеров и малых фирм.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 5
- Автор: kOlapsis
- Лицензия: AGPL-3.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/kOlapsis/gofact
- Обновлён: 2026-10-06
- HTML: https://affpapa.org/nevibecode/mcp/gofact

## Что делает

gofact — небольшая программа на Go. Она берёт готовый к печати HTML-счёт и собирает из него Factur-X: PDF/A-3, внутрь которого упакован XML CII по EN 16931. По желанию счёт уходит на французскую платформу PDP.

Проверок две. Сначала правила EN 16931 прогоняются по модели до того, как что-то создано: несоответствующий счёт не выпускается, а в ответе приходит код правила вроде `BR-50` и поле, которое надо поправить. Потом готовый PDF перечитывается: проверяются структуры Factur-X (`/AF`, `/OutputIntents`, XMP, `/EmbeddedFiles`), а вложенный XML сравнивается с созданным побайтово. XML встраивается как есть, без повторной сериализации через собственную модель — иначе теряются расширенные поля, в том числе адреса электронной маршрутизации PDP.

Из системных зависимостей нужен только браузер: Chrome, Edge, Brave или Chromium для рендеринга HTML в PDF. Пакеты в песочнице вроде snap и flatpak пропускаются, потому что не видят временные файлы. Сборка PDF/A-3 идёт на Go через pdfcpu, профиль sRGB ICC зашит в бинарник. Продавец, IBAN и учётные данные PDP берутся из окружения; без настроенного продавца gofact падает с явной ошибкой, а не выпускает неполный счёт.

## Требования
- Нужно: готовый бинарник из релизов репозитория

## Установка

### Claude Code (родная платформа)

**Установка**
- Команды запуска нет в реестре MCP — смотрите README репозитория

## Когда брать
- собрать Factur-X из HTML-шаблона и данных заказа
- проверить счёт по правилам EN 16931 до выпуска
- отправить готовый счёт на французскую платформу PDP
- вести сквозную нумерацию счетов без пропусков
- сверить вложенный XML с исходным после сборки PDF

## Примеры запросов агенту
- Сделай счёт для ACME, 2 дня по 600 евро
- Покажи следующий номер счёта и собери Factur-X из `facture.html`
- Отправь счёт `2026011 - Client.pdf` на PDP и покажи статус

## Похожие
- [Kema Invoice](https://affpapa.org/nevibecode/mcp/kema-invoice.md) — MCP-сервер
- [InvoiceXML](https://affpapa.org/nevibecode/mcp/invoicexml.md) — MCP-сервер · ★ 5
- [QuickBooks Automation](https://affpapa.org/nevibecode/skills/quickbooks-automation.md) — скилл · 4700 установок
- [popbill](https://affpapa.org/nevibecode/skills/popbill.md) — скилл · 4400 установок
- [plan-payroll](https://affpapa.org/nevibecode/skills/plan-payroll.md) — скилл · 1800 установок
- [xero](https://affpapa.org/nevibecode/skills/xero.md) — скилл · 346 установок

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
