The AI copilot for French accounting firms (cabinets d'expertise comptable) on Pennylane.
PennyPilot is an MCP (Model Context Protocol) extension that connects Claude Desktop to your Pennylane dossiers, directly inside the conversation. It produces a complete monthly closing memo for a client dossier in 8 seconds instead of 1h30, and covers the full general ledger (journals, chart of accounts, per-account ledger view, pending lettering, audit trail) — all read-only, all local, all in plain French for the cabinet collaborator.
Edited by HOLCO, Paris, France · v0.3.0 (restricted beta) · pilot active
- Product page: https://apps.holco.co/mcp/pennylane
- Pilot enrollment: https://apps.holco.co/mcp/pennylane/cgu
- Security & GDPR: https://apps.holco.co/mcp/pennylane/docs/security
- MCP Registry: https://registry.modelcontextprotocol.io/?search=pennypilot (
io.github.holco-apps/pennypilot) - Contact: alan@holco.co
When you double-click the .mcpb bundle, Claude Desktop will show this Anthropic warning:
"The developer information shown has not been verified by Anthropic."
This is normal. All third-party extensions not yet listed in Anthropic's official directory display this message, regardless of their quality. PennyPilot was submitted to the official Anthropic Connectors Directory — review is in progress (Q3 2026 target).
Verifiable trust signals:
| Source code (this repo) | github.com/holco-apps/pennypilot (public) |
| Editor | HOLCO, registered in Paris (France) |
| Direct contact | alan@holco.co |
| Security documentation | apps.holco.co/mcp/pennylane/docs/security |
| Pilot Terms of Use | apps.holco.co/mcp/pennylane/cgu |
| MCP Server Registry listing | registry.modelcontextprotocol.io (status active) |
- Sign up to the pilot at https://apps.holco.co/mcp/pennylane/cgu (mandatory reading of Terms of Use before the form).
- HOLCO validates manually — each request is reviewed by hand within 24 hours (pilot is open to 10 firms during the beta, 3 spots remaining).
- You receive an email from
alan@holco.cowith your HOLCO license key + the link to download the bundle. - Drag-drop the
.mcpbfile into Claude Desktop, enter your HOLCO key + your Pennylane Company API v2 token → 30-second install.
Detailed procedure: docs/install.md
| Tool | Role |
|---|---|
about_pennypilot |
Welcome card listing tools and usage hints — triggered when the user starts a conversation |
start_pennypilot |
Guided first run: verifies setup, explains read-only mode, suggests first prompts |
diagnose_pennypilot_setup |
Checks HOLCO key, Pennylane token, /me access and dossier identity without printing secrets |
explain_pennypilot_flow |
Explains what happens when the user writes in Claude and when PennyPilot is called |
show_cabinet_config |
Displays the active firm-level rules (materiality threshold, severe-overdue days, allowed external sources, declared client typologies, communication tone). First building block of the configurable cabinet layer (v0.3.0). Read-only, pure local file read. |
| Tool | Role |
|---|---|
find_unpaid_customer_invoices |
Overdue customer invoices, top 3 debtors, 60-day alert |
get_company_pnl |
Synthetic P&L for a month / quarter / year, comparison vs prior period, anomalies flagged |
generate_monthly_close_report |
Complete monthly closing memo (KPIs, P&L commentary, AR aging, anomalous spend, vendor duplicates, prioritized cabinet actions) — 4 tones |
generate_dossier_health_check |
Revue analytique dossier — manager score and prioritized signals across cash, BFR, margin, VAT, waiting accounts, lettering, overdue customers, overdue suppliers and supplier duplicates. Strict audit trail, designed for fast dossier review before manager handoff |
generate_revision_triage |
Pré-révision (pre-revision triage) — readiness score, cycle-by-cycle blockers (411/401/charges/revenue), prepared client requests, draft review comments, strict audit trail (facts / calculations / assumptions / limits / recommendations). Read-only, copy-pasteable into Pennylane workpapers |
list_journals |
Accounting journals configured on the dossier (sales / purchases / bank / general / cash) |
get_chart_of_accounts |
Chart of accounts grouped by French PCG class (1–8), filterable by prefix |
browse_account_ledger |
General ledger view of a single account over a period, with running balance |
find_unlettered_entries |
Pending lettering on customer (411*) / supplier (401*) accounts, ranked by amount + age |
browse_journal_entries |
Ledger entries over a period, optionally filtered by journal code |
get_journal_entry_detail |
Full detail of a single entry: header, all debit/credit lines, balance check, lettering state |
audit_recent_changes |
Audit trail of recent modifications (compliance) |
list_fiscal_years |
Fiscal years configured on the company (open / closing / closed) |
send_feedback_to_holco |
Feedback channel triggered by typing @holco in the conversation — sends bug / idea / comment / question to HOLCO |
Read-only by design. PennyPilot will never create, modify, delete, letter, draft, or post anything in your Pennylane dossiers. The code-level READ_ONLY_GUARD rejects every non-read HTTP method before any request can reach Pennylane.
The two heaviest analysis tools (get_company_pnl, generate_monthly_close_report) refuse to run without first establishing the dossier context. They auto-detect SIREN + NAF activity code via Pennylane /me + the official French open-data API recherche-entreprises.api.gouv.fr (Etalab), then ask the user a single confirmation question about seasonality and accounting particulars before producing any analysis. This avoids false-anomaly reports (e.g. revenue=0 on a seasonal retail dossier where July is naturally low).
generate_revision_triage no longer relies on hard-coded thresholds. A firm can drop a cabinet.config.json file (or point PENNYPILOT_CABINET_CONFIG=/path/to/file) declaring:
seuils.materiality_eur— materiality threshold in euros (effective default forgenerate_revision_triage; an explicitmateriality_threshold_eurargument still takes precedence)seuils.overdue_severe_days— number of days defining "severe overdue" (impacts readiness score, blockers section, prepared client requests)sources_autorisees— explicit allowlist frompennylane,insee_sirene,bofip,legifrancetypologies— declared client typologies (SCI, services, BTP, etc.) — declarative in v0.3.0, wiring to come progressivelyton_client— communication tone (neutre / chaleureux / formel) — declarative in v0.3.0
When the file is absent, unreadable, or rejected by validation, PennyPilot falls back to conservative defaults (100 €, 60 days) and reports the situation via show_cabinet_config. The audit trail of every revision triage indicates the effective source of the thresholds. Documentation: docs/cabinet-config.md.
generate_dossier_health_check also reads the same materiality and severe-overdue thresholds, so the fast manager review and the detailed pre-revision speak the same firm language.
Spec: docs/dossier-health-check.md.
- Runtime: Node.js >= 20, stdio transport (Claude Desktop). A hosted HOLCO Streamable HTTP variant for Mistral Le Chat and ChatGPT Business is planned, still read-only.
- Distribution:
.mcpbbundle (Anthropic format), downloaded fromapps.holco.coafter pilot enrollment, or directly from this repo's GitHub Releases - Pennylane token: stored as a Claude Desktop environment variable on the user's workstation, never transmitted to HOLCO
- HOLCO license key: only the SHA-256 hash is consulted, against the public registry at apps.holco.co/api/licenses.json
- No accounting data transits HOLCO infrastructure — the extension talks directly from the user's workstation to the Pennylane v2 API
- Three-layer architecture:
server.js(MCP routing) →lib/tools/*.js(schemas + handlers) →lib/pennylane-client.js(HTTP, retry, pagination) - Cursor pagination factored in a single
paginate()async generator with explicitmaxPagescap (no silent truncation) - Structured JSON logging via
lib/logger.js(stderr, levelsdebug|info|warn|error, configurable viaPENNYPILOT_LOG_LEVEL) - Single
VERSIONsource read frommanifest.jsonat boot, propagated to User-Agent and feedback payloads - Tests:
node:test(zero-dependency) on period parsing, NAF mapping, error humanization, pagination. Run withnpm test. - CI: GitHub Actions runs tests on Node 20 + 22, checks version consistency between
manifest.jsonandpackage.json, builds the.mcpbbundle as a release artifact
See https://apps.holco.co/mcp/pennylane/docs/security for full details. Key points:
- ✓ No accounting data on HOLCO side
- ✓ Pennylane token stays local (Claude Desktop env var)
- ✓ Read-only by design — no write capability in the product roadmap
- ✓ No AI training on accounting data (contractual opt-out with Anthropic)
- ✓ GDPR compliant — controller is the firm; HOLCO provides software only
- ✓ Compatible with EU AI Act (UE 2024/1689)
- Today: v0.3.0 — Configurable cabinet rules (
show_cabinet_config+cabinet.config.json) shipped, first brick of the cabinet layer; pre-revision (generate_revision_triage) reads firm thresholds. Pilot open to 10 firms, 3 spots remaining. - Today: v0.3.0 — Shared audit trail contract extended to
get_company_pnlandgenerate_monthly_close_report(facts / calculations / assumptions / limits / sources). - Today: v0.3.0 — EvalSuite seed (
npm run eval) for VAT, balance sums, PCG class totals, supplier duplicate detection, and N/N-1 variation computations — under CI. - In development: Revue analytique dossier — read-only manager score for cash, BFR, margin, VAT, waiting accounts, lettering, overdue customers, overdue suppliers and supplier duplicates.
- Next: firm-token multi-dossier (
triage_portefeuille_cabinet) — portfolio cockpit ranking all client dossiers by what needs attention today - Next: hosted HOLCO Streamable HTTP variant for Mistral Le Chat and ChatGPT Business / Enterprise, still read-only
- Q3 2026 target: Anthropic Connectors Directory verification (submission made)
Proprietary — see LICENSE. Reverse engineering, redistribution, and commercial exploitation are forbidden without HOLCO's prior written consent.
- Product questions, install, support: alan@holco.co
- Commercial / partnerships: alan@holco.co
- Technical issues: open a GitHub Issue on this repo
HOLCO · Paris, France · https://holco.co