Skip to content

holco-apps/pennypilot

Repository files navigation

PennyPilot

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


⚠️ What Claude Desktop will display at install

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)

Install (end-user firm)

  1. Sign up to the pilot at https://apps.holco.co/mcp/pennylane/cgu (mandatory reading of Terms of Use before the form).
  2. HOLCO validates manually — each request is reviewed by hand within 24 hours (pilot is open to 10 firms during the beta, 3 spots remaining).
  3. You receive an email from alan@holco.co with your HOLCO license key + the link to download the bundle.
  4. Drag-drop the .mcpb file into Claude Desktop, enter your HOLCO key + your Pennylane Company API v2 token → 30-second install.

Detailed procedure: docs/install.md


Tools

Setup & onboarding

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.

Fourteen accounting tools

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.


Context-guarded analysis (v0.2.9)

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).


Configurable cabinet rules (v0.3.0 — first brick)

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 for generate_revision_triage; an explicit materiality_threshold_eur argument 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 from pennylane, insee_sirene, bofip, legifrance
  • typologies — declared client typologies (SCI, services, BTP, etc.) — declarative in v0.3.0, wiring to come progressively
  • ton_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.


Architecture

  • 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: .mcpb bundle (Anthropic format), downloaded from apps.holco.co after 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

Engineering

  • 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 explicit maxPages cap (no silent truncation)
  • Structured JSON logging via lib/logger.js (stderr, levels debug|info|warn|error, configurable via PENNYPILOT_LOG_LEVEL)
  • Single VERSION source read from manifest.json at boot, propagated to User-Agent and feedback payloads
  • Tests: node:test (zero-dependency) on period parsing, NAF mapping, error humanization, pagination. Run with npm test.
  • CI: GitHub Actions runs tests on Node 20 + 22, checks version consistency between manifest.json and package.json, builds the .mcpb bundle as a release artifact

Security

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)

Roadmap

  • 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_pnl and generate_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)

License

Proprietary — see LICENSE. Reverse engineering, redistribution, and commercial exploitation are forbidden without HOLCO's prior written consent.


Contact

  • 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

About

PennyPilot — Le copilote IA pour cabinets d'expertise comptable sur Pennylane. MCP extension Claude Desktop. v0.2.0 (béta).

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors