binky-control/workplans/BINKY-WP-0005-qonto-mcp-integration.md

110 lines
4 KiB
Markdown
Raw Normal View History

---
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 2185,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 (T01T03), 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.