fincon
Bücher schließen mit einem Beweis, nicht mit einem Stopfen.
FinCon gleicht ab, was Ihr Zahlungs-Gateway als ausgezahlt meldet, gegen das, was die Bank tatsächlich erhalten hat, schreibt die Doppelbuchung und reicht das, was übrig bleibt, weiter — eingestuft, bepreist und an einen Arbeitsplatz geroutet. Jeder Treffer trägt eine Arithmetik, die ein Prüfer ohne uns nachvollziehen kann.
Das Problem
Abstimmungssoftware matcht bereits 90–99 % der Transaktionen. Trintech weist 99 %+ aus. NetSuite liefert N:M-Regeln mit einem Konfidenz-bewertenden Assistenten. Dieses Problem ist gelöst, und alles, was mit „unsere KI matcht besser" wirbt, konkurriert auf der einen Dimension, bei der niemand Hilfe braucht.
Zwei Kosten überleben die Automatisierung, und keine davon ist ein Matching-Problem.
Der Rest kommt ohne Begründung zurück. Die Automatisierung des Bankfeeds verkürzt eine Abstimmung von rund 47 Minuten auf nur noch Ausnahmebehandlung — und das ist die ganze Geschichte in einer Statistik: Die gematchten Datensätze waren nie die Kosten. Aber die 1–10 %, die fehlschlagen, kommen als flache Warteschlange zurück, und der Controller leitet den Kontext von Hand nach, Zeile für Zeile. Das Volumen sank. Die Kosten pro Position nicht.
Und die Quote zerfällt. Automatische Match-Raten werden gepflegt, nicht erreicht. Ein neues Lieferantenformat verschlechtert das Matching stillschweigend, bis jemand eine Regel schreibt, und das Schreiben von Regeln hängt an der Entwicklung — die Person, die die Ausnahme versteht, ist also nie die Person, die sie beheben kann.
Was ein Controller heute tut: drei Exporte ziehen, auf Auszahlungsebene matchen, weil Zeilenebene unmöglich ist, die Differenz als Stopfen buchen, drei Tage in Excel verbringen, wenn es nicht aufgeht, das Journal von Hand tippen — und zusehen, wie derselbe Rest im nächsten Monat wiederkommt.
Related MCP server: MCP-Finance-Reconciliation
Die Lösung
Offener Eingang, verifizierter Abschluss. Das Modell schlägt vor. Eine deterministische Engine beweist. Ein benannter Mensch entscheidet.
Die KI übernimmt drei Aufgaben — und es sind genau die drei, die sie braucht
Das ist keine Regel-Engine mit aufgesetztem Chatbot, und es ist kein Modell, das Arithmetik errät. Das Modell wird exakt auf die Arbeit gerichtet, die kein deterministisches System leisten kann:
Liest ein Format, das niemand konfiguriert hat | Eine Abrechnungsdatei in einem Layout, das wir nie gesehen haben. Das Modell liest zwölf rohe Zeilen und erstellt die Parse-Spezifikation — Trennzeichen, Kopfzeile, Nebenwährungseinheiten, ein Nicht-ISO-Datum. Es übernimmt ohne Integrationsprojekt. |
Benennt den Rest | Was die Arithmetik nicht auflösen konnte, geht mit den vom Engine abgeleiteten Beinahe-Treffern an das Modell und kommt mit einem Code, einer Hypothese und zitierten Belegen in etwa 2,1 s zurück. |
Schreibt die Regel von morgen | Sie lösen eine Abweichung in eigenen Worten auf; das Modell leitet eine deterministische Regel ab, die sie verhindert hätte. |
Das System wird mit der Zeit deterministischer, nicht agentischer. Das ist das Gegenteil davon, wie Agent-Produkte normalerweise altern — und es ist die gesamte These.
Und es ist eingezäunt, deshalb können Sie es einschalten
Sprachmodelle fallen von 95,6 % bei Nachschlagen auf nahe null bei multivariater Berechnung ab, und sie scheitern selbstbewusst. Deshalb wird das Modell konstruktiv von der Arithmetik ferngehalten — jede Grenze unten ist ein Test, der fehlschlägt, wenn jemand sie entfernt:
Kein Modellaufruf in einem Abschluss. Sechs Stufen, null Modellaufrufe, und die Quittung weist es aus.
Ein Vorschlag kann eine abgeleitete Antwort nicht überschreiben.
P2bestenfalls, und er darfP0 ARITHMETICnicht überschreiben — ein vom Engine abgeleiteter Posten wird nie einmal angeboten.Kein generierter Code wird ausgeführt. Kein
eval, keinexec. Adapter sind deklarative Spezifikationen, die von einem geschlossenen Vokabular an Parse-Verben gelesen werden.Kein Tool trägt Autorität. Kein einziges MCP-Tool akzeptiert eine Richtlinie, eine Toleranz, eine Vorzeichenkonvention oder einen Regelsatz — geprüft gegen die generierten Schemata.
Beweis auf jeder Zeile, und vier ehrliche Enden
Jeder akzeptierte Treffer gibt ein Arithmetik-Objekt aus, keinen Konfidenzwert: die Datensatz-IDs beider Seiten, den auf null schließenden Rest, die verbrauchte Toleranz, die ausgelöste Regel. Ein Treffer ohne bestandenen Beweis ist kein Treffer und erscheint nicht in der Trefferzahl.
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 ARITHMETICAlles Übriggebliebene wird nach Bargeldwirkung × Alter eingestuft und an einen Arbeitsplatz geroutet. Jeder Posten endet in der Doppelbuchung — buchen, vortragen, nachfassen oder abschreiben — unter Ihrem Namen, zweifach durch signierte Richtlinie begrenzt.
Wirkung
Gemessen an Labels, die vor der Existenz der Engine erstellt wurden, und allein aus dem Entscheidungsprotokoll re-abgeleitet:
Auto-Match | 90,9 % — 20 von 22 Ankern, nach Stufe |
Fehltreffer | 0,00 % |
Ausnahmeabdeckung | 6 / 6 — jeder eingepflanzte Fehler gefunden |
Klassifikation | 4 / 6 korrekt |
Mehrdeutigkeit | 1 / 1 erkannt und verweigert statt geraten |
Journal | 23 Buchungen, ausgeglichen — und der beancount-Export wird von beancount selbst neu geladen |
Abschlusszeit | etwa 1,4 s, mit null Modellaufrufen |
Die Allgemeinheit ist gemessen, nicht behauptet. Eine zweite Abstimmung — Formular
26AS der Steuerbehörde gegen ein TDS-Forderungshauptbuch, gematcht auf
TAN + Abschnitt + Quartal über ein April–März-Jahr — läuft auf derselben Engine
mit null Änderungen daran, byte-für-byte durch ihr Gate bestätigt.
Wo es sagt, dass es es nicht weiß. Vier von sieben Posten in einem echten
Abschluss sind E14 — die Engine kann nicht sagen, warum — und das wird oben auf
dem Rest gedruckt, statt in eine plausible Vermutung geglättet zu werden, die an den
falschen Arbeitsplatz geroutet wird. E09 ist der, bei dem man innehalten sollte:
Zwei verschiedene Teilmengen summieren sich innerhalb der Toleranz auf dieselbe
Gutschrift, also gibt es keine richtige Antwort zu wählen, und jedes Tool, das
die erste gefundene Teilmenge zurückgibt, liegt dort selbstbewusst falsch.
Weisen Sie einen Assistenten darauf an — MCP
FinCon ist ein Model Context Protocol-Server. Fragen Sie „Was blockiert den Oktober-Abschluss, das Größte zuerst?" — und er liest den Datensatz, führt einen deterministischen Abschluss aus, verifiziert einen Beweis, löst einen Posten auf und zeichnet ab — als Sie, denn er hält ein Token, das Sie ausgestellt haben.
// Claude Desktop, Claude Code, or any MCP client
{
"mcpServers": {
"fincon": { "url": "https://fincon.astutecomputer.com/mcp" }
}
}OAuth über Cognito, Discovery an der Origin gemäß RFC 9728, dynamische
Client-Registrierung. Oder führen Sie ihn auf stdio gegen Ihre eigenen Dateien aus:
make mcp.
21 Tools; 4 davon schreiben. Ein Assistent ist kein Fremder — er trägt Ihre
Anmeldedaten, und das sub auf diesem Token ist dieselbe Zeichenkette, zu der Ihre
Browsersitzung aufgelöst wird. Er kann also tun, was Sie tun können, und jede
Entscheidung protokolliert die Tür, durch die sie kam, sodass Sie in einem Jahr
sagen können, welche Posten Sie gelesen und welche Sie delegiert haben. Die Grenzen,
die zählen — die Abschreibungs-Obergrenze, das Budget, die Saldenprüfung, Posten, die
niemand geöffnet hat — waren nie Fragen danach, wer aufruft, und sie binden einen
Agenten identisch.
Architektur
Das Modell schlägt vor → die Engine beweist → ein Mensch entscheidet. Nichts überschreitet eine Grenze ohne Beweis oder Namen.
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/verifyBeweisstufen, weil ein echter Abschluss Posten enthält, die niemand allein aus Arithmetik ableiten kann. Die Regel ist niemals still bewegen, nicht verweigern, was du nicht beweisen kannst:
P0 ARITHMETIC von jedem nachvollziehbar · P1 RULE eine übernommene,
regressionsgetestete Regel griff · P2 ATTESTED ein benannter Mensch genehmigte es ·
P3 DECLARED mit angegebener Lücke akzeptiert.
Gehostet auf AWS
Live unter https://fincon.astutecomputer.com — ein CloudFormation-Stack in
ap-south-1. Vollständige Aufschlüsselung, einschließlich der vier Entscheidungen,
über die es sich zu streiten lohnt, und dessen, was dieser Bestand bewusst nicht hat,
in 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 statt S3, weil das Entscheidungsprotokoll append-only und hash-verkettet ist
und der Schreiber eine POSIX-Sperre nimmt — und flock auf EFS stillschweigend nicht
funktioniert, was die Wahl fast beendet hätte. Öffentliche Subnetze, kein NAT —
ein Gateway für 32 $/Monat für einen Einzel-Task-Bestand, eingetauscht gegen eine
Security Group, die nur den ALB zulässt. Images nach Commit-SHA getaggt, nie
latest, damit ein Rollback benennbar ist.
Ausführen
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 und make verify brauchen keinen API-Schlüssel — die modellgestützten
Gates sind ausgeschlossen und in der Ausgabe benannt, denn ein stillschweigend
übersprungenes Gate, das als grün gelesen wird, ist genau das Versagen, um das es in
diesem gesamten Repository geht.
Ohne uns verifizieren
Die Behauptung ist nicht „vertraut unseren Zahlen". Geben Sie einem Prüfer das Entscheidungsprotokoll und die Quelldateien, und er leitet jeden Treffer auf einem öffentlichen Endpunkt neu ab, der kein Konto braucht und keinen unserer Zustände berührt:
curl -X POST https://fincon.astutecomputer.com/v1/verify \
-H 'content-type: application/json' -d @proof.jsonJedes Urteil nennt die Richtlinie, unter der es erzeugt wurde, und stempelt, ob diese Richtlinie in Kraft oder vom Aufrufer geliefert war — denn ein Urteil, das unter einer mitgebrachten Richtlinie erzeugt wurde, darf nie ununterscheidbar von einem zurückkommen, das unter unserer erzeugt wurde.
Was es noch nicht kann
Eine README, die nur auflistet, was funktioniert, ist ein Prospekt.
Im kleinen Maßstab validiert — Hunderte Zeilen, zwei Gateways, eine Währung.
Vier von sieben Abweichungen sind noch unbenannt. Gemeldet, nicht geraten.
Der Schwanz erinnert sich nicht. Eine Abweichung wird per Inhalts-Fingerprint erfasst, sodass dieselbe im nächsten Monat wiedererkennbar ist — aber nichts sagt bisher „vierter Monat in Folge".
settlement_3wayverbindet zwei Beine, nicht drei. Gateway ↔ Bank ist erledigt; Auftragsregister ↔ Gateway steht als Nächstes an, und genau dort versteckt sich der Umsatzverlust.Ein Modell, ein Prompt, ein Anbieter, und derselbe Autor hat Generator und Engine geschrieben — weshalb der Adversarial-Satz eingefroren ist und die Mutations-Suite existiert.
Dokumentation
Dauerhafter Kontext — die Regeln, das Vokabular, die acht Invarianten | |
Live-Build-Status, mit der Befehlsausgabe, die jedes Gate belegt | |
Problem, Lösung, Kompromisse | |
Was heute tatsächlich läuft | |
Der Ablauf und was er wert ist | |
Jeder Bildschirm und die Frage, die er beantwortet | |
Der AWS-Bestand, vollständig | |
ADRs — zwei davon irreversibel |
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