MCP placement — tools, not source of truth¶
Epic E · Project #5
Companion: OKF-light · SDLC runbook
Three layers (do not collapse them)¶
| Layer | What it is | Examples |
|---|---|---|
| Durable knowledge | Versioned Markdown in git, PR-reviewed | bz-platform-context (constitution, glossary, ADRs, docs/git/, SYS specs) |
| Live tools (MCP) | Runtime queries / docs / APIs an agent calls now | frappe-bookingzone, bz-mcp, browser, Datadog, etc. |
| Procedures (skills) | Checklists agents follow for a class of change | .cursor/skills/*/SKILL.md, Project #5 Epic B |
MCP never replaces bz-platform-context. MCP answers “what is the schema right now?” Platform-context answers “what are our rules, terms, and decisions forever?”
Matrix — which MCP in which repo¶
| MCP / tool | Primary repos | Purpose | Notes |
|---|---|---|---|
frappe-bookingzone |
reservation-api-server, admin-web-app, venuplus-app, customer-web-app |
Live DocTypes, documents, whitelisted methods | Prefer over guessing Frappe shapes |
bz-mcp |
Migration / parity work touching Nest | Legacy NestJS controller discovery | Read-only reference; do not implement new features in Nest |
| Browser / IDE MCPs | Frontends | UI verification | Not a substitute for domain glossary |
| Cloud / observability MCPs | Ops tasks | Logs, metrics | Never paste secrets into prompts |
Repos with no BookingZone business data (pure infra scripts) may omit Frappe MCP.
Security checklist before adding a public MCP¶
- Least privilege — read-only unless write is required and reviewed
- No secrets in tool args or logs — tokens, Magensa/Datacap keys, Cognito secrets stay in env/Secrets Manager
- Tenant scope — any Frappe write path must respect business/outlet permissions
- PCI — never send PAN/CVV/raw payment payloads through MCP chat
- Provenance — prefer org-vetted / official servers over random community MCP
- Document — add a row to this matrix (PR to platform-context) when onboarding a new MCP for the team
Explicit non-goals¶
- Replacing ADRs, glossary, or constitution with “ask the MCP”
- Storing work-in-flight status only in MCP chat memory (use GitHub Projects)
- Using MCP as the deploy or payment authority
Agent habit¶
- Read folder
index.md/AGENTS.mdfirst (OKF-light). - Use MCP for live confirmation.
- If MCP and platform-context disagree on policy, platform-context wins until an ADR changes it.
- If MCP and platform-context disagree on live schema, investigate (drift) — do not silently invent fields.