---
created: 2026-05-06
gap: G04
order: 2
severity: P0
category: mcp
estimate: M
issue: "https://github.com/lidge-jun/agbrowse/issues/58"
depends_on: ['G10']
---

# G04 — MCP parity intentionally frozen below mainstream MCP (vs Playwright MCP)

> Severity **P0** · Category `mcp` · Estimate **M** ·
> Tracking issue [#58](https://github.com/lidge-jun/agbrowse/issues/58) · Depends on **G10**

## GPT Pro evidence

Evidence (competitor side): URL: https://github.com/microsoft/playwright-mcp — quote: “Core automation.” Playwright MCP lists tools including browser_click, browser_navigate, browser_snapshot, browser_type, browser_wait_for, tabs, network, storage, and screenshots. 
GitHub
+2
GitHub
+2

Evidence (agbrowse side): structure/phase_status.md:256-269 says MCP/AI SDK is partial and forbids production MCP claims beyond listed tools; web-ai/browser-tool-schema.mjs:37-56 registers only browser_snapshot and browser_click_ref. 
GitHub
+1

Why this matters: MCP-native clients will compare agbrowse directly with Playwright MCP and see the missing browser tools as a parity blocker. The current product rule is valid, but it needs crisp decision records and probe-safe failure behavior.
Proposed scope, respecting forbidden list:

structure/mcp_scope.md — add decision record: frozen tools, competitor diff, explicit unfreeze criteria, and non-goals.

web-ai/browser-tool-schema.mjs — export DEFERRED_BROWSER_TOOLS metadata with reason and CLI equivalent, but do not register them.

web-ai/mcp-server.mjs — return deterministic capability.unsupported envelopes for any probed deferred tool.

skills/browser/SKILL.md — add MCP-vs-CLI guidance for agents that want browser control.

structure/commands.md — add MCP-ready vs CLI-ready matrix.

structure/release_gates.md — keep gate:mcp-scope-frozen; add gate:mcp-deferred-metadata.
Test surface: test/unit + test/integration.
cli-jaw mirror impact: none, because cli-jaw does not expose browser MCP tools.
Acceptance gate: keep gate:mcp-scope-frozen; add gate:mcp-deferred-metadata.
Estimate: M, 2–3 days.

## Diff-level work breakdown

> Fill in concrete diffs (NEW / MODIFY / DELETE with file:line) once this gap
> reaches the active sprint. Until then, the bullets in **Proposed scope**
> above are the agreed shape; do not implement before the depending gaps
> (G10) ship and `gate:all` stays green.

### NEW files
- _to be filled before implementation_

### MODIFY
- _to be filled before implementation_

### DELETE
- _to be filled before implementation_

## Tests
- `test/unit/...` — _list test files once written_

## Truth-table update
- `structure/CAPABILITY_TRUTH_TABLE.md` — add row or update status when this
  gap reaches `ready` in agbrowse.
- `cli-jaw/structure/CAPABILITY_TRUTH_TABLE.md` — mirror entry per the
  `cli-jaw mirror impact` line above.

## Release gates touched
- Existing: `gate:typecheck`, `gate:tests`, `gate:truth-table-fresh`,
  `gate:mcp-scope-frozen`, `gate:no-experimental-in-readme-ready-section`.
- Added by this gap: see **Acceptance gate** in the GPT Pro evidence block.
