--- id: BINKY-WP-0005 type: workplan title: "Qonto MCP integration: bank account as agent-readable finance source" domain: infotech repo: binky-control status: finished owner: codex topic_slug: the-custodian created: "2026-07-19" updated: "2026-07-21" state_hub_workstream_id: "6139db83-5d4b-4492-a77f-fc9550a0a4f9" --- Connect the company Qonto account to the agent infrastructure via the **self-hosted** `qonto/qonto-mcp-server` (API key + organization login), read scopes first — **payments/transfers are Red lane forever**. Originates from AWQ-010 (founder direction 2026-07-18). Credential lane via ops-warden/OpenBao (`tenants/binky/qonto-api`, fields `API_KEY` + `API_USER`); **no claude.ai native integrations** — harness/MCP / thirdparty API lane only. Main accounting stays DATEV Unternehmen Online (DUO). ## Task: Qonto MCP capabilities and docs review Review the Qonto MCP options (hosted `mcp.qonto.com` OAuth connector vs. self-hosted `qonto/qonto-mcp-server` with API key), tool surface (read vs. write), authentication shape, transports, and plan/API prerequisites. Recommend the variant compatible with the corporate access policy (harness/MCP lane, no native claude.ai connectors). Output lands in `integrations/qonto-mcp.md`. Green lane (docs only). ```task id: BINKY-WP-0005-T01 status: done priority: high state_hub_task_id: "e066a222-1608-45ce-96a7-cbf191a39a9b" ``` ## Task: Credential lane design — ops-warden/OpenBao custody Design the OpenBao lane for Qonto API credentials, warden catalog entry, and the founder Red-lane provision procedure — mirroring company-email-imap. Metadata and design only; no secret values. Green lane. ```task id: BINKY-WP-0005-T02 status: done priority: high state_hub_task_id: "261e4b34-24a2-4324-950d-881d78333b5d" ``` ## Task: Consumer design — rhythm sessions and CostRunRate feeds Specify how rhythm/finance sessions consume the MCP: real balance and transaction pulls replace manual Qonto statement pulls; resolve the **TBC** rows in `finance/CostRunRate.md` (desk rent, Qonto plan cost); feed the OH-2026-003 cost-vs-usage answer. Read-only tool allow-list at harness level; write tools (cards, invoicing) stay disabled. Green lane. ```task id: BINKY-WP-0005-T03 status: done priority: medium state_hub_task_id: "6c4a475d-9db7-4488-8563-10c82fa78f51" ``` ## Task: DecisionQueue entry for Red-lane provisioning Prepare the founder approval package: DEC entry covering API key creation in the Qonto dashboard, OpenBao provision, and the read-only boundary. Note the DUO complement (not replacement) and the OH-2026-003 tie-in. Green lane. ```task id: BINKY-WP-0005-T04 status: done priority: medium state_hub_task_id: "51364e7c-e842-4bcb-a0bb-6f4ceebe264b" ``` ## Task: First read-only pull and CostRunRate update After founder provisioning: promote the warden catalog to active, run the first read-only balance/transaction pull through the harness lane, update `finance/CostRunRate.md` TBC rows (desk rent, Qonto plan) with verified figures, and log evidence metadata. Blue lane. **2026-07-21 done:** Secret at `tenants/binky/qonto-api` (`API_KEY`+`API_USER`). CCR-2026-0008 active (policy + OIDC role + agent-high-risk-boundary). Catalog `binky-qonto-api` active. First pull via thirdparty API v2 (122 txs): main balance 2 185,94 €; HUB31 desk **297,50 €/mo**; Qonto plan **70,80 €/mo**. Evidence: `finance/qonto-first-pull-2026-07-21.json`. CostRunRate v2. ```task id: BINKY-WP-0005-T05 status: done priority: medium state_hub_task_id: "e4b2119b-6f89-44d8-879d-73bf225307f7" ``` ## Closure review - **Scope complete:** design (T01–T03), DEC-2026-004 (T04), live lane + first pull + CostRunRate (T05). - **Live path note:** custody is `tenants/binky/qonto-api` with fields `API_KEY` / `API_USER` (not the earlier design draft `…/qonto/api` + `QONTO_*` field names). Consumers map to MCP env names at use time. - **Out of scope / follow-on:** recurring Finance Steward harness session wiring; Qonto *plan change* (OH-2026-003 data now available, decision Red); DATEV/StB replacement still separate.