MCP-Finance-Reconciliation
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-Finance-ReconciliationMatch bank statement against GL cash ledger for July 2024"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
auxilab-mcp-finance-recon
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 CSV vs GL cash ledger — ±3 day date proximity, exact amount |
| Compare prior vs current GL extract — new entries, reversals, variances |
| Entity A vs Entity B — gross mismatch, FX component, risk flag |
| Rules-based break classification with recommended next actions |
| 12-task close tracker with overdue detection and risk rating |
Related MCP server: Registry Review MCP Server
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.pyThis creates data/sample_data/ with 7 synthetic CSV files — no real data required.
3. Run the standalone demo
python demo.pyExpected 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.pyMCP 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.mdTech Stack
Component | Library |
MCP protocol |
|
Matching logic |
|
Fuzzy description matching |
|
CSV parsing |
|
Break classification | Rules-based (regex) — no LLM required |
Demo Data Summary
File | Rows | Notes |
| 50 | Unique amounts, full month |
| 48 | 45 match bank (±1-2 day drift), 3 GL-only timing items |
| 20 | October GL extract |
| 25 | 15 carry-forward + 8 new + 2 reversals |
| 3 | $125,000 receivable |
| 3 | $123,500 payable — $1,500 mismatch |
| 12 | 4 complete, 3 overdue, deadline in 1 day → HIGH risk |
| 8 | Covers all 6 break categories |
License
MIT · Built for the Auxiliobits Hackathon — Financial Reconciliation Pillar
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/Aditya-j101/MCP-Finance-Reconciliation'
If you have feedback or need assistance with the MCP directory API, please join our Discord server