fincon
Закрывайте книги с доказательством, а не с заглушкой.
FinCon сверяет то, что ваш платёжный шлюз говорит, что выплатил, с тем, что банк фактически получил, записывает двойную запись и возвращает остаток — ранжированный, оценённый и направленный на стол. Каждое совпадение несёт арифметику, которую аудитор может пересчитать без нас.
Проблема
Программное обеспечение для сверки уже сопоставляет 90–99% транзакций. Trintech публикует 99%+. NetSuite поставляет правила N:M с ассистентом, оценивающим уверенность. Эта проблема решена, и всё, что предлагает «наш ИИ сопоставляет лучше», конкурирует по единственному аспекту, в котором никто не нуждается в помощи.
Две издержки переживают автоматизацию, и ни одна из них не является проблемой сопоставления.
Хвост возвращается без привязанной причины. Автоматизация банковских выписок сокращает сверку с примерно 47 минут до только обработки исключений — что является всей историей в одной статистике: сопоставленные записи никогда не были затратами. Но 1–10% неудачных возвращается в виде плоской очереди, и контролёр вручную восстанавливает контекст, строка за строкой. Объём упал. Стоимость за позицию — нет.
И доля автоматического сопоставления снижается. Доли автоматического сопоставления поддерживаются, а не достигаются. Новый формат вендора незаметно ухудшает сопоставление, пока кто-то не напишет правило, а создание правил ограничено инженерией — поэтому человек, который понимает исключение, никогда не является тем, кто может его исправить.
Что контролёр делает сегодня: выгружает три отчёта, сопоставляет на уровне выплат, потому что построчно невозможно, проводит разницу как заглушку, проводит три дня в Excel, когда не сходится, вручную вводит журнал и наблюдает, как тот же хвост возвращается в следующем месяце.
Related MCP server: MCP-Finance-Reconciliation
Решение
Открытый приём, проверенная фиксация. Модель предлагает. Детерминированный движок доказывает. Названный человек решает.
ИИ выполняет три задачи, и это те три, которые в нём нуждаются
Это не движок правил с прикрученным чат-ботом и не модель, угадывающая арифметику. Модель нацелена ровно на ту работу, которую не может выполнить ни одна детерминированная система:
Читает формат, который никто не настраивал | Файл расчётов в макете, который мы никогда не видели. Модель читает двенадцать сырых строк и создаёт спецификацию разбора — разделитель, строку заголовка, младшие единицы, не-ISO дату. Она загружает без интеграционного проекта. |
Называет хвост | То, что арифметика не смогла разрешить, отправляется модели с близкими промахами, которые вывел движок, и возвращается с кодом, гипотезой и цитируемыми доказательствами примерно за 2,1 с. |
Пишет правило на завтра | Вы разрешаете разрыв своими словами; модель выводит детерминированное правило, которое предотвратило бы его. |
Система со временем становится более детерминированной, а не более агентной. Это противоположно тому, как обычно стареют агентные продукты, и это вся тезис.
И она огорожена, поэтому вы можете её включить
Языковые модели деградируют с 95,6% на поиске до почти нуля на многомерных вычислениях и ошибаются уверенно. Поэтому модель отключена от арифметики по построению — каждая граница ниже является тестом, который падает, если кто-то её удалит:
Ни одного вызова модели при закрытии. Шесть этапов, ноль вызовов модели, и в чеке это указано.
Предложение не может перезаписать производный ответ. Максимум
P2, и оно не может перезаписатьP0 ARITHMETIC— позиция, выведенная движком, даже не предлагается.Сгенерированный код не выполняется. Никаких
eval, никакихexec. Адаптеры — это декларативные спецификации, читаемые закрытым словарём глаголов разбора.Ни один инструмент не несёт полномочий. Ни один MCP-инструмент не принимает политику, допуск, соглашение о знаках или набор правил — проверяется по сгенерированным схемам.
Доказательство в каждой строке и четыре честных завершения
Каждое принятое совпадение выдаёт арифметический объект, а не оценку уверенности: идентификаторы записей обеих сторон, остаток, сходящийся к нулю, использованный допуск, сработавшее правило. Совпадение без прошедшего доказательства не является совпадением и не появляется в счётчике совпадений.
match M-0412 tier T2 subset-sum rule R-017@v3
payout BANK/2026-08-14/CR +4,378.21
charges 87 × settlement rows +4,612.90
refunds 4 × settlement rows -118.40
fees 162 × settlement rows -114.02
────────────────────────────────────────────
residual 0.00 tolerance used 0.00 / 0.50
verdict PROVEN provenance P0 ARITHMETICВсё, что осталось, ранжируется по денежному влиянию × возрасту и направляется на стол. Каждая позиция заканчивается двойной записью — провести, перенести, преследовать или списать — под вашим именем, дважды ограниченная подписанной политикой.
Влияние
Измерено по меткам, созданным до существования движка, и пересчитано только из журнала решений:
Автосопоставление | 90.9% — 20 из 22 якорей, по уровням |
Ложные совпадения | 0.00% |
Покрытие исключений | 6 / 6 — каждая внедрённая ошибка найдена |
Классификация | 4 / 6 верных |
Неоднозначность | 1 / 1 обнаружена и отклонена, а не угадана |
Журнал | 23 записи, сбалансировано — и экспорт beancount перезагружается самим beancount |
Время закрытия | около 1.4s, с нулевым количеством вызовов модели |
Общность измерена, а не заявлена. Вторая сверка — форма 26AS от Департамента подоходного налога против книги дебиторской задолженности TDS, сопоставленная по TAN + section + quarter за год с апреля по март — работает на том же движке с нулевыми изменениями в нём, подтверждённая побайтово его шлюзом.
Где он говорит, что не знает. Четыре из семи позиций в реальном закрытии — E14 — движок не может сказать почему — и это печатается в начале хвоста, а не сглаживается в правдоподобное предположение, направленное не на тот стол. E09 — тот, на котором стоит остановиться: два различных подмножества дают в сумме один и тот же кредит в пределах допуска, поэтому нет правильного ответа для выбора, и каждый инструмент, который возвращает первое найденное подмножество, там уверенно ошибается.
Направьте на неё ассистента — MCP
FinCon — это сервер Model Context Protocol. Спросите «что блокирует октябрьское закрытие, сначала самое крупное?» — и он прочитает запись, выполнит детерминированное закрытие, проверит доказательство, разрешит позицию и подпишет — как вы, потому что он хранит токен, который вы выдали.
// Claude Desktop, Claude Code, or any MCP client
{
"mcpServers": {
"fincon": { "url": "https://fincon.astutecomputer.com/mcp" }
}
}OAuth через Cognito, обнаружение в источнике согласно RFC 9728, динамическая регистрация клиента. Или запустите его на stdio с вашими файлами: make mcp.
21 инструмент; 4 из них пишут. Ассистент — не незнакомец: он несёт ваши учётные данные, и sub в этом токене — та же строка, к которой приводит ваша браузерная сессия. Поэтому он может делать то, что можете вы, и каждое решение записывает дверь, через которую оно пришло, так что через год вы сможете сказать, какие позиции вы прочитали, а какие делегировали. Важные ограничения — потолок списания, бюджет, проверка баланса, позиции, которые никто не открывал — никогда не были вопросами о том, кто звонил, и они одинаково связывают агента.
Архитектура
Модель предлагает → движок доказывает → человек решает. Ничто не пересекает границу без доказательства или имени.
SOURCES ENGINE (no model, ever) RECORD
───────── ──────────────────────── ──────
bank CAMT.053 ┐ ┌──────────────────────┐
settlement ├─ intake ──▶│ block → match │──▶ verify ──┐
order register┘ │ │ T0 exact │ re-derive │
Form 26AS ┘ │ │ T1 tolerant │ from raw │
│ │ T2 subset-sum │ records │
5 proofs │ T4 declared │ ▼
row count └──────────┬───────────┘ ┌──────────────┐
control total │ │ double entry │
roll-forward unmatched │ + balance │
type/domain │ │ assertion │
idempotence ▼ └──────┬───────┘
┌────────────────┐ │
│ near-miss │ ▼
│ diagnosis │ hash-chained
│ (arithmetic) │ decision log
└───────┬────────┘ │
│ genuinely unexplained │
▼ │
╔═════════════════════════╗ │
║ MODEL (proposes only) ║ │
║ adapter synthesis ║ │
║ classification ║ │
║ rule induction ║ │
╚═══════════╤═════════════╝ │
│ P2 at best, never overwrites P0
▼ │
┌───────────────────────┐ │
│ HUMAN decides │◀────────────────┘
│ book · carry · chase │
│ · write off · sign │
└───────────┬───────────┘
▼
close pack · journal.csv
journal.beancount · POST /v1/verifyУровни доказательства, потому что реальное закрытие содержит позиции, которые никто не может вывести только из арифметики. Правило — никогда не двигаться молча, а не отказываться от того, что не можешь доказать:
P0 ARITHMETIC — может быть пересчитан кем угодно · P1 RULE — сработало продвинутое, протестированное на регрессиях правило · P2 ATTESTED — названный человек одобрил его · P3 DECLARED — принято с указанным пробелом.
Размещено на AWS
Работает на https://fincon.astutecomputer.com — один стек CloudFormation в ap-south-1. Полный разбор, включая четыре решения, о которых стоит поспорить, и то, чего намеренно не хватает этому окружению, в docs/14-AWS.md.
Cloudflare DNS ──▶ ALB (ACM, TLS 1.3) ──▶ ECS Fargate ──┬─▶ EFS runs + uploads
:80 → :443 1 task ├─▶ Cognito identity
/healthz 30s 256cpu/512mb ├─▶ Secrets Manager
screens · API └─▶ CloudWatch Logs
· MCP /mcpEFS вместо S3, потому что журнал решений является только добавляемым и связанным хэшами, и писатель берёт POSIX-блокировку — а flock молча не работает на EFS, что чуть не положило конец выбору. Публичные подсети, без NAT — шлюз за 32 доллара в месяц для окружения с одной задачей, обменянный на группу безопасности, которая допускает только ALB. Образы, помеченные по sha коммита, никогда не latest, поэтому откат можно назвать.
Запуск
make setup # uv sync
make gen # regenerate the synthetic batches from a seed
make verify # every green gate
make serve # → http://127.0.0.1:8000/
make eval # 4 ablation arms, 9 metrics, batches A and B
make mcp # MCP on stdiomake test и make verify не требуют ключа API — шлюзы, поддерживаемые моделью, исключены и названы в выводе, потому что молча пропущенный шлюз, который выглядит зелёным, — это та самая ошибка, о которой весь этот репозиторий.
Проверьте это без нас
Утверждение не в том, чтобы «доверять нашим цифрам». Передайте аудитору журнал решений и исходные файлы, и он пересчитает каждое совпадение на публичной конечной точке, которая не требует учётной записи и не касается нашего состояния:
curl -X POST https://fincon.astutecomputer.com/v1/verify \
-H 'content-type: application/json' -d @proof.jsonКаждый вердикт называет политику, под которой он был вынесен, и отмечает, была ли эта политика действующей или предоставленной вызывающей стороной — потому что вердикт, вынесенный под политикой, которую кто-то принёс с собой, никогда не должен вернуться неотличимым от вынесенного под нашей.
Что он пока не может
README, в котором перечислено только то, что работает, — это брошюра.
Проверено в малом масштабе — сотни строк, два шлюза, одна валюта.
Четыре из семи разрывов до сих пор не названы. Зафиксировано, а не угадано.
Хвост не помнит. Разрыв идентифицируется по содержимому, поэтому тот же самый можно узнать в следующем месяце — но пока ничто не говорит «четвёртый месяц подряд».
settlement_3wayсвязывает два звена, а не три. Шлюз ↔ банк готово; реестр заказов ↔ шлюз — следующий шаг, и именно там прячется утечка выручки.Одна модель, один промпт, один провайдер, и один и тот же автор написал генератор и движок — поэтому набор состязательных примеров заморожен, а набор мутаций существует.
Документация
Постоянный контекст — правила, словарь, восемь инвариантов | |
Актуальное состояние сборки с выводом команд, подтверждающим каждый этап | |
Проблема, решение, компромиссы | |
Что реально работает сегодня | |
Поток и его ценность | |
Каждый экран и вопрос, на который он отвечает | |
Инфраструктура AWS полностью | |
ADR — два из них необратимы |
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceAI agents that automate bookkeeping, bank reconciliation, and month-end financial close for SMBs and CA firms.261MIT
- AlicenseNot gradedqualityCmaintenanceAutomates month-end close reconciliation tasks including bank statement matching, GL account reconciliation, intercompany balance checking, and close task tracking.1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceAn accounting-ops agent that reconciles payments against open orders, auto-books provably safe payments through a deterministic policy gate, and escalates exceptions to a human queue with audit trails.MIT
- AlicenseNot gradedqualityAmaintenanceDeterministic verification for AI-generated analysis. Reconciliation, consistency and Excel-integrity checks that stop the line when the numbers don't add up.1MIT
Related MCP Connectors
AI agents for bookkeeping, reconciliation, and financial close for SMBs.
Deterministic signed verification of numeric & financial claims for AI agents & spreadsheets.
Runtime AI governance: decision gates, human approval, hash-chained audit, compliance mapping.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Abishai95141/FinCon'
If you have feedback or need assistance with the MCP directory API, please join our Discord server