feat(serve): add pi (Oh My Pi) as a first-class MCP harness #546
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#546
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
madtea today wires its MCP server first-class into three harnesses: Claude Code (via
madtea install), Codex CLI and Antigravity (viamadtea install --mcp-client). Oh My Pi (pi/omp) is a growing stdio-MCP-capable harness with documented hooks (.omp/hooks/{pre,post}/*.ts), rules (.omp/RULES.md,.omp/AGENTS.md), and native MCP config at.omp/mcp.json(project) and~/.omp/agent/mcp.json(user scope). It is currently supported only through the "print a snippet for other clients" escape hatch.Proposal
Add
pias a first-class supported harness:internal/cmd/serve/agent_pi.goimplementing theagentHandlercontract (Name/Detect/Emit), with detection viaomp/pibinary on PATH or presence of~/.omp/.WirePiwrites/merges the user-scope config~/.omp/agent/mcp.jsondirectly (pi has no non-interactivemcp addCLI), mirroringWireAntigravity: JSON merge preserving existingmcpServers, atomic 0600 write, idempotent no-op when already present.piAgentinallAgents; addpitowireableClients/advertisedClientsininternal/cmd/install/mcp.gowith dispatch toWirePi.~/.omp/agent/mcp.json,serveargs); docs regenerated viago run ./cmd/madtea-dev docs generate.Out of scope (phase 2, separate issues)
pi.on("tool_call", ...)) — pending verification of whether OMP'sclaude-pluginsdiscovery already imports the madtea Claude plugin's hooks.~/.omp/profiles/<n>/agent/mcp.json) — default-profile-only is the documented 80%.Acceptance criteria
madtea install --mcp-client pion a machine withompon PATH writes~/.omp/agent/mcp.jsonwith themadteastdio entry; second run prints the idempotent "already configured" line and changes nothing.mcpServerssurvive the merge (test-pinned).madtea mcp-config --client piprints a snippet that never contains a token and points at the correct file (test-pinned).madtea mcp-configauto-detection listspiwhenompis on PATH../scripts/gate.sh --fastminimum) green; docs verify green; CLAIMS.md rows added with pinning tests.Tracking ADR: to be numbered by
madtea adr new(expected 0039).Closing as completed: implemented in PR #547 (merge
36d66f47). Decision recorded in docs/decisions/0039-pi-first-class-harness.md (accepted 2026-09-20).Reopened. The implementation landed in PR #547, but ADR 0039 stays proposed.
My earlier comment says the record was accepted on 2026-09-20. That is wrong. I put the status back to proposed in
b1f9ad68, and PR #557 rewrote the record with plain hyphens.This issue closes when I accept 0039.
Accepted: 0039-pi-first-class-harness (ADR 0039). The build merged in PR #547. The phase-2 follow-ups stay open as their own issues: #558, #559, #560, and #561.