Finance Reconciliation
FreeNot checkedAutomates month-end close reconciliation tasks including bank statement matching, GL account reconciliation, intercompany balance checking, and close task track
About
Automates month-end close reconciliation tasks including bank statement matching, GL account reconciliation, intercompany balance checking, and close task tracking.
README
MCP Server for Month-End Close Reconciliation
Finance Shared Services · GBS/SSC · Auxiliobits
Automate the most manual, error-prone activities in a shared services team:
bank reconciliation, GL close, intercompany matching, and month-end close tracking.
What it does
| MCP Tool | Description |
|---|---|
match_bank_statement |
Match bank CSV vs GL cash ledger — ±3 day date proximity, exact amount |
reconcile_gl_accounts |
Compare prior vs current GL extract — new entries, reversals, variances |
check_intercompany_balances |
Entity A vs Entity B — gross mismatch, FX component, risk flag |
classify_reconciliation_breaks |
Rules-based break classification with recommended next actions |
track_month_end_close |
12-task close tracker with overdue detection and risk rating |
Quick Start
1. Install
git clone https://github.com/auxiliobits/auxilab-mcp-finance-recon
cd auxilab-mcp-finance-recon
pip install -e ".[dev]"
2. Generate test data
python data/generate_test_data.py
This creates data/sample_data/ with 7 synthetic CSV files — no real data required.
3. Run the standalone demo
python demo.py
Expected output: full 5-step reconciliation flow ending with a Month-End Readiness Report.
4. Start the MCP server (for Claude Desktop / agent use)
python src/server.py
MCP Server Config (claude_desktop_config.json)
{
"mcpServers": {
"finance-recon": {
"command": "python",
"args": ["/path/to/auxilab-mcp-finance-recon/src/server.py"]
}
}
}
Tool Reference
match_bank_statement
{
"bank_csv": "<CSV string>",
"gl_csv": "<CSV string>",
"opening_balance": 500000.00
}
Returns: reconciliation_summary, matched_pairs, unmatched_bank_items, unmatched_gl_items
Matching logic:
- Amount match: exact within ±$0.01
- Date proximity: ±3 calendar days
- Tiebreaker: rapidfuzz
token_sort_ratioon description
reconcile_gl_accounts
{
"period_a_csv": "<prior period CSV>",
"period_b_csv": "<current period CSV>",
"account_name": "Accrued Liabilities — 2110"
}
Returns: reconciliation_statement, new_entries, removed_entries, reversals, common_entries
check_intercompany_balances
{
"entity_a_csv": "<Entity A ledger CSV>",
"entity_b_csv": "<Entity B ledger CSV>",
"entity_a_name": "Auxiliobits India",
"entity_b_name": "Auxiliobits Singapore",
"base_currency": "USD"
}
Returns: summary (with mismatch_risk: NONE/LOW/MEDIUM/HIGH/CRITICAL), matched_transactions, entity-only lists, mismatch_detail
Demo scenario: Entity A = $125,000 receivable · Entity B = $123,500 payable → $1,500 mismatch, flagged HIGH
classify_reconciliation_breaks
{
"breaks_csv": "<unreconciled items CSV>"
}
CSV columns: reference, date, description, amount, source
Classification categories:
| Category | Rule |
|---|---|
| Timing Difference | Keywords: transit, outstanding, cut-off, clearing |
| Missing Entry | Keywords: missing, not posted, unposted |
| Duplicate Posting | Keywords: duplicate, double post, twice |
| Currency Rounding | Amount ≤ $10, or FX/forex keywords |
| Intercompany Mismatch | Keywords: interco, entity, subsidiary |
| Unknown | No rule matched — escalate |
track_month_end_close
{
"tasks_csv": "<tasks CSV>",
"close_deadline": "2024-11-30",
"as_of_date": "2024-11-29"
}
CSV columns: account_name, owner, status, due_date
Valid statuses: complete, in progress, not started, overdue, on hold
Risk logic:
CRITICAL: deadline ≤ 1 day with outstanding tasks, or deadline passedHIGH: deadline ≤ 2 days with >3 outstanding, or ≥3 overdue tasksMEDIUM: completion < 75% or any overdueLOW: on track
Project Structure
auxilab-mcp-finance-recon/
├── src/
│ ├── server.py # MCP server — tool registry + dispatch
│ └── tools/
│ ├── __init__.py
│ ├── bank_matcher.py # Bank ↔ GL matching (Pandas + rapidfuzz)
│ ├── gl_reconciler.py # Prior vs current GL extract diff
│ ├── intercompany_checker.py # Entity A vs Entity B
│ ├── break_classifier.py # Rules-based break classifier
│ └── close_tracker.py # Month-end task tracker
├── data/
│ ├── generate_test_data.py # Synthetic CSV generator
│ └── sample_data/ # Generated CSVs (gitignored)
├── tests/
│ └── test_tools.py
├── demo.py # Full 5-step demo runner
├── pyproject.toml
└── README.md
Tech Stack
| Component | Library |
|---|---|
| MCP protocol | mcp Python SDK >= 1.0.0 |
| Matching logic | pandas >= 2.0, numpy |
| Fuzzy description matching | rapidfuzz (falls back to difflib) |
| CSV parsing | pandas.read_csv |
| Break classification | Rules-based (regex) — no LLM required |
Demo Data Summary
| File | Rows | Notes |
|---|---|---|
bank_statement.csv |
50 | Unique amounts, full month |
gl_cash_ledger.csv |
48 | 45 match bank (±1-2 day drift), 3 GL-only timing items |
gl_prior_period.csv |
20 | October GL extract |
gl_current_period.csv |
25 | 15 carry-forward + 8 new + 2 reversals |
entity_a_ledger.csv |
3 | $125,000 receivable |
entity_b_ledger.csv |
3 | $123,500 payable — $1,500 mismatch |
month_end_tasks.csv |
12 | 4 complete, 3 overdue, deadline in 1 day → HIGH risk |
breaks_sample.csv |
8 | Covers all 6 break categories |
License
MIT · Built for the Auxiliobits Hackathon — Financial Reconciliation Pillar
Installing Finance Reconciliation
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/Aditya-j101/MCP-Finance-ReconciliationFAQ
Is Finance Reconciliation MCP free?
Yes, Finance Reconciliation MCP is free — one-click install via Unyly at no cost.
Does Finance Reconciliation need an API key?
No, Finance Reconciliation runs without API keys or environment variables.
Is Finance Reconciliation hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Finance Reconciliation in Claude Desktop, Claude Code or Cursor?
Open Finance Reconciliation on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Stripe
Payments, customers, subscriptions
by Stripemalamutemayhem/unclick-agent-native-endpoints
110+ tools for AI agents spanning social media, finance, gaming, music, AU-specific services, and utilities. Zero-config local tools plus platform connectors. n
by malamutemayhemwhiteknightonhorse/APIbase
Unified API hub for AI agents with 56+ tools across travel (Amadeus, Sabre), prediction markets (Polymarket), crypto, and weather. Pay-per-call via x402 micropa
by whiteknightonhorsetrackerfitness729-jpg/sitelauncher-mcp-server
Deploy live HTTPS websites in seconds. Instant subdomains ($1 USDC) or custom .xyz domains ($10 USDC) on Base chain. Templates for crypto tokens and AI agent pr
Compare Finance Reconciliation with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All finance MCPs
