An MCP server that turns SUMIT (formerly OfficeGuy) into agent-operable Israeli billing — read invoices and debt, issue חשבונית/קבלה/חשבון עסקה, and charge with a confirm-first safety model. The operational playbook for billing your clients from Claude Code or OpenClaw.
- ✅ 14 tools across read (invoices, debt, catalog), write (issue/send/cancel documents, customers), and charge.
- ✅ Layered charge safety — env opt-in, prepare→execute confirmation token, amount cap, redacted audit. Money never moves silently.
- ✅ Multi-account via env; pick the account per call.
- ✅ Built on the in-house
sumit-apilibrary (battle-tested payload builders + redaction). - ✅ Local stdio server — no secrets leave your machine.
See .claude/skills/sumit-mcp/references/installation.md: clone, pnpm install && pnpm build, set SUMIT_* env, connect via claude mcp add or .mcp.json.
The committed .mcp.json holds env-var placeholders only and runs the committed dist/bundle.mjs, so it works both as the plugin's MCP config (${CLAUDE_PLUGIN_ROOT} set by the plugin cache) and straight from a clone — including claude.ai cloud sessions, where the SUMIT_* values come from the cloud environment's env vars. SUMIT_MAIN_COMPANY_ID/SUMIT_MAIN_API_KEY are deliberately bare ${VAR} placeholders: when they're unset, Claude Code rejects the config and never launches the server (fail closed) — the server process itself would boot with zero accounts and only error at tool-call time. Charging additionally stays behind its own env opt-ins (below).
Charging requires SUMIT_ALLOW_CHARGE=1, always goes prepare → user approval → execute, and needs a browser-minted one-time card token. See the skill's safety ladder. Set SUMIT_CONFIRM_SECRET to a fixed random value (e.g. openssl rand -hex 32); charging refuses to run without it.
The full threat model — what a misbehaving agent could try and which control stops it — is in SECURITY.md.
- SUMIT API: https://app.sumit.co.il/developers/api/
- Companion runtime libs:
sumit-api,sumit-react
Built with ❤️ for OpenClaw by Digitizer
The plugin ships its skill through a git symlink (skills/ → the in-repo
source). On Windows, enable Developer Mode and set
git config --global core.symlinks true before cloning or installing —
the plugin cache clone inherits it. Changing the config does not repair an
existing checkout (the repo may have recorded core.symlinks=false locally).
To repair one, run these two commands inside it (the second re-materializes
only the plugin's symlink entry, so nothing else in your working tree is
touched):
git config core.symlinks true
git checkout -- skills/sumit-mcp
Or simply re-clone. WSL also works. macOS/Linux need nothing.