Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add norman-finance/norman-mcp-server --skill monthly-reconciliationgit clone --depth 1 https://github.com/norman-finance/norman-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/norman-finance/norman-mcp-server/monthly-reconciliation)<a href="https://agentmods.dev/skills/norman-finance/norman-mcp-server/monthly-reconciliation"><img src="https://agentmods.dev/badge/skills/norman-finance/norman-mcp-server/monthly-reconciliation/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/norman-finance/norman-mcp-server/monthly-reconciliation"><img src="https://agentmods.dev/badge/skills/norman-finance/norman-mcp-server/monthly-reconciliation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00055 | $0.01398 |
| Opus 5.5 | $0.00022 | $0.00559 |
| Sonnet 5.5 | $0.00011 | $0.00280 |
| Haiku 4.5 | $0.00006 | $0.00140 |
Grade A, and why
monthly-reconciliation scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Guide the user through a complete monthly reconciliation:
Step 1: Transaction Review
- Call
search_transactionsfor the specified month (or last month if not specified) - Identify uncategorized transactions
- For each batch, suggest categories and let the user confirm
- Use
categorize_transactionto assign the correct bookkeeping category
Step 2: Invoice Reconciliation
- Call
list_invoicesto find invoices from the period - Cross-reference with incoming payments in transactions
- Use
link_transactionto match payments to invoices. A German invoice is booked when it is issued; a payment of its whole open amount takes that booking over, and so does a payment that pays no other invoice and is within 3 % of the euro value of an invoice in another currency with no credit note and no earlier payment, at the bank's amount (a GmbH/UG books the difference as an exchange gain or loss). For a part payment passamount: the rest stays open, and the invoice'spaymentsshows what is paid and open. One transfer for several invoices is linked to each invoice with its ownamount; anamountabove what is open is capped, and the transfer keeps the rest. A payment that is not in the bank feed (cash, card, PayPal) is recorded withrecord_invoice_payment, which saves the payment and pays the invoice in one step. - Flag any overdue unpaid invoices and suggest sending reminders via
send_invoice_overdue_reminder
Step 3: Open Bookings
- German companies book every document and invoice when it arrives. One that no payment has paid yet is an open booking:
search_transactionswithpayment_type=NOT_PAIDlists them,source=documentthe ones Norman booked from documents.openAmountandpaymentssay how much is paid. - For each open booking, call
find_booking_payments. Pay it withpay_bookingand the payment's id: a payment of the whole open amount takes the booking over (one row, the document's date, the bank's payment date), and so does a payment that pays no other booking and is within 3 % of a booking in another currency that nothing has paid yet; passamountfor a part payment, and the rest stays open. A Norman invoice's booking is paid withlink_transaction(Step 2). - Paid with cash, a card, PayPal or a bank Norman does not see:
record_booking_paymentwith the day, the method and the amount. - A wrong match is undone with
unlink_paymenton the payment; the booking opens again. - Bookings that stay open are unpaid bills or receivables: list them in the summary.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · +2 lines 81924e0656f6
- 2d ago Changed 9c8e1bcb8324
- 7d ago Changed · +9 lines fdac0d11dcbf
- 8d ago Changed · +7 tokens per session 06f5eedd6894
- 14d ago Changed 05e7759a9e95
- 15d ago Changed dd6e8b1a7fe8
- 2mo ago First seen · 57 lines · 48 tokens per session scan A a0119ed4b77c
monthly-reconciliation is a skill published in the GitHub repository norman-finance/norman-mcp-server (63 stars, last pushed today), licensed MIT. It adds 55 tokens to every session and 1,398 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
invoices-and-quotes
Search, inspect, and prepare numbered invoice drafts and quote drafts, or delete/cancel quotes in a connected Frihet workspace. Use when the user asks to list, search, or read invoices or quotes, check draft or overdue invoices, prepare or create an invoice or quote draft, or delete/cancel a quote (facturas…
expenses-and-vendors
List, inspect, record, and update business expenses and vendor records in a connected Frihet workspace. Use when the user asks to review expenses by date or category, check an expense detail, record a new expense, update an expense's description/category/date/deductibility, or list, view, create, or update…
frihet-mcp
Manage a connected Frihet ERP workspace: invoices, quotes, expenses, clients, products and other available business operations. Use for Frihet requests, facturas, presupuestos, gastos, cobros, overdue invoices, monthly review or revisión mensual. Reads current tool schemas before acting, separates currencies and…
documentos
Prepare invoices and quotes for a connected Frihet workspace. Use for preparar factura, presupuesto, invoice draft, quote or quote conversion. Resolves missing client, currency and tax data before an authorized draft creation. Also use for invoice recovery after timeout, lost response or resultado desconocido al crear.
gastos
Review and record expenses and vendors in Frihet. Use for registrar gasto, revisar gastos, proveedores, gastos duplicados, expense entry or supplier review. Distinguishes a proposed expense from an authorized saved record.
tesoreria
Review bank accounts, transactions and reconciliation in Frihet. Use for conciliación bancaria, movimientos, tesorería, bank transactions or cash review. Proposes matches and records only explicitly authorized links; never transfers funds or infers collection from an invoice status.