fincon
証拠をもって帳簿を締める。穴埋めではない。
FinCon は、決済ゲートウェイが支払ったと主張する金額と、銀行が実際に受け取った金額を照合し、複式仕訳を書き、残ったものをランク付け・価格付けしてデスクにルーティングします。すべてのマッチには、監査人が私たちなしで再導出できる算術が付随します。
問題
既存の照合ソフトウェアはすでに取引の90〜99%をマッチングできている。 Trintech は99%以上を公表している。NetSuite は信頼度スコアリング・アシスタント付きの N:M ルールを搭載している。その問題は解決済みであり、「当社の AI はより良くマッチングする」 と売り込むことは、誰も支援を必要としていない唯一の次元での競争にすぎない。
自動化後も残るコストは2つあり、どちらもマッチングの問題ではない。
テール(残差)は理由が付かないまま戻ってくる。 銀行フィードの自動化により、照合は約47分から例外処理のみに短縮される——これは1つの統計にすべてが集約されている:マッチしたレコードはそもそもコストではなかった。しかし、失敗する1〜10%はフラットなキューとして戻ってきて、経理責任者は文脈を手作業で1行ずつ再導出しなければならない。件数は減った。1件あたりのコストは変わらなかった。
そしてマッチ率は劣化する。 自動マッチ率は達成されるものではなく、維持されるものだ。新しいベンダー形式が登場すると、誰かがルールを書くまでマッチングは静かに劣化し、ルールの作成はエンジニアリングの門番に阻まれる——つまり、例外を理解している人が、それを修正できる人であることは決してない。
経理責任者が今日やっていること:3つのエクスポートを取得し、行レベルでは不可能なので支払いレベルでマッチングし、差額を穴埋めとして計上し、合わないときは Excel で3日間過ごし、仕訳を手入力し、そして同じテールが翌月も戻ってくるのを眺める。
Related MCP server: MCP-Finance-Reconciliation
解決策
オープンなインプット、検証済みのコミット。 モデルが提案する。決定論的エンジンが証明する。指名された人間が決定する。
AI が担う仕事は3つ。そしてそれは、AI が必要とされるまさに3つだ
これはチャットボットを貼り付けたルールエンジンでも、算術を推測するモデルでもない。モデルは、決定論的システムには絶対にできない仕事に正確に向けられている:
誰も設定していない形式を読む | 見たこともないレイアウトの決済ファイル。モデルは生の行を12行読み、パース仕様——区切り文字、ヘッダー行、最小通貨単位、非 ISO 日付——を作成する。統合プロジェクトなしで取り込む。 |
テールに名前を付ける | 算術で解決できなかったものが、エンジンが導出したニアミスとともにモデルに送られ、コード・仮説・引用された根拠とともに約 2.1秒 で返ってくる。 |
明日のルールを書く | ブレークを自分の言葉で解決する。モデルはそれを防いだであろう決定論的ルールを誘導する。 |
システムは時間とともによりエージェント的になるのではなく、より決定論的になる。 これはエージェント製品が通常老化する方向とは逆であり、これが全体のテーゼである。
そしてフェンスで囲まれている。だからこそオンにできる
言語モデルはルックアップでは95.6%から、多変量計算ではほぼゼロにまで崩壊し、しかも自信満々に失敗する。そこでモデルは構造上、算術から隔離されている——以下のすべての境界は、誰かがそれを削除すると失敗するテストである:
クローズ内にモデル呼び出しなし。 6つのステージ、モデル呼び出しゼロ、そしてレシートにその旨が記載される。
提案は導出済みの回答を上書きできない。 せいぜい
P2であり、P0 ARITHMETICを上書きすることはできない——エンジンが導出した項目は、そもそも提示すらされない。生成されたコードは実行されない。
evalもexecもない。アダプターは、閉じたパース動詞の語彙によって読み取られる宣言型仕様である。どのツールも権限を持たない。 ポリシー、許容差、符号規則、ルールセットを受け入れる MCP ツールは1つもない——生成されたスキーマに対してチェックされる。
すべての行に証明を、そして正直な4つの結末
受け入れられたすべてのマッチは、信頼度スコアではなく算術オブジェクトを出力する:両側のレコード ID、ゼロに収束する残差、消費された許容差、発動したルール。証明に合格していないマッチはマッチではなく、マッチ数にも現れない。
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% — 22アンカーのうち20、ティア別 |
誤マッチ | 0.00% |
例外カバレッジ | 6 / 6 — 仕込まれた欠陥がすべて発見された |
分類 | 4 / 6 正解 |
曖昧性 | 1 / 1 検出され、推測ではなく拒否された |
仕訳 | 23件、バランス済み — そして beancount エクスポートは beancount 自身によって再ロードされる |
クローズ時間 | 約 1.4秒、モデル呼び出しゼロ |
汎用性は測定されており、主張ではない。 2つ目の照合——所得税局からの Form 26AS と TDS 受取勘定元帳を、4月〜3月の年度にわたって TAN + section + quarter でマッチング——は、同じエンジンでエンジンへの変更ゼロで実行され、そのゲートによってバイト単位で検証される。
「わからない」と明示する箇所。 実際のクローズにおける7項目のうち4つは E14 ——エンジンは理由を説明できない——であり、それはもっともらしい推測に平滑化されて間違ったデスクにルーティングされるのではなく、テールの先頭に印刷される。E09 は一時停止すべきものだ:2つの異なるサブセットが許容差内で同じ貸方に合算されるため、選ぶべき正解は存在せず、最初に見つけたサブセットを返すすべてのツールは、そこで自信満々に間違っている。
アシスタントを向ける — MCP
FinCon は Model Context Protocol サーバーである。「10月のクローズを妨げているものは何か、大きい順に」 と尋ねると、レコードを読み、決定論的クローズを実行し、証明を検証し、項目を解決して署名する——あなたとして。なぜなら、あなたが発行したトークンを保持しているからだ。
// Claude Desktop, Claude Code, or any MCP client
{
"mcpServers": {
"fincon": { "url": "https://fincon.astutecomputer.com/mcp" }
}
}Cognito による OAuth、RFC 9728 に基づくオリジンでのディスカバリ、動的クライアント登録。あるいは自分のファイルに対して stdio で実行する:make mcp。
21のツール。そのうち4つが書き込みを行う。 アシスタントは他人ではない——あなたの認証情報を保持しており、そのトークンの sub はブラウザセッションが解決するのと同じ文字列である。つまり、あなたができることを実行でき、すべての決定は、それが通過したドアを記録するため、1年後にはどの項目を自分で読み、どれを委任したかを判別できる。重要な境界——償却上限、予算、残高チェック、誰も開いていない項目——は、誰が呼び出しているかという問題では決してなく、エージェントにも同様に適用される。
アーキテクチャ
モデルが提案する → エンジンが証明する → 人間が決定する。 証明か名前なしに境界を越えるものはない。
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 で稼働中——ap-south-1 の1つの CloudFormation スタック。議論に値する4つの決定事項と、この環境が意図的に欠いているものを含む完全な内訳は、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 /mcpS3 ではなく EFS。決定ログは追記専用かつハッシュチェーンであり、ライターは 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 は、パンフレットである。
小規模で検証済み — 数百行、2つのゲートウェイ、1つの通貨。
7つのブレークのうち4つはまだ名前が付いていない。 推測ではなく、報告されたもの。
テールは記憶しない。 ブレークはコンテンツフィンガープリントされるため、同じものは来月も認識できる——しかし、「4ヶ月連続」 を示すものはまだない。
settlement_3wayは3つのレッグではなく2つをバインドする。 ゲートウェイ ↔ 銀行は完了。次は注文レジスタ ↔ ゲートウェイで、そこに収益漏れが潜んでいる。1つのモデル、1つのプロンプト、1つのプロバイダー、そして同じ作者がジェネレーターとエンジンの両方を書いた——だからこそ敵対的セットは凍結され、ミューテーションスイートが存在する。
ドキュメント
常設コンテキスト——ルール、語彙、8つの不変条件 | |
各ゲートを証明するコマンド出力付きのライブビルド状態 | |
問題、解決策、トレードオフ | |
現在実際に動作しているもの | |
フローとその価値 | |
すべての画面と、それが答える質問 | |
AWS環境の全容 | |
ADR——そのうち2つは不可逆的 |
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