docs/guides/agent-developer/mcp-fixture-smoke.md
Paperclip's MCP permission work uses deterministic fixture servers so policy logic can be tested without real customer credentials or live integrations.
Run the local smoke:
pnpm smoke:mcp-fixtures
The runner starts one local stdio fixture and one remote-style HTTP fixture,
checks the local Paperclip /api/health endpoint when available, then exercises:
Use a specific dev instance URL:
pnpm smoke:mcp-fixtures -- --paperclip-url http://127.0.0.1:3100
Require the dev instance health check:
pnpm smoke:mcp-fixtures -- --require-paperclip
JSON output for CI or release-smoke ingestion:
pnpm smoke:mcp-fixtures -- --json
The catalog lives in scripts/mcp-fixtures/catalog.mjs and includes:
The catalog also defines the first profile set:
read-onlyapproval-gated-writessecurity-hostileruntime-lifecycleThe first-install demo definitions are:
paperclip-self-readchild-issue-proposalgithub-triageupdate-sendercontent-publishinglocal-project-helperops-statuscrm-sales-note-draftThe Phase 5a MCP production harness scripts the accepted user-story catalog from PAP-12338 section 5:
pnpm test:e2e:mcp-user-stories
By default this runs only the currently runnable stories (US-1..US-5 and
US-8..US-10) against the Playwright-managed local instance. Each scenario seeds
a real company, a real Scout agent, and a deterministic MCP fixture connection;
then it drives the gateway/Test-tab APIs plus the UI pages that provide
evidence screenshots under test-results/mcp-user-stories/.
Run the full catalog, including dependency-gated placeholders for US-6 and US-7, with:
pnpm test:e2e:mcp-user-stories -- --include-gated
The browser side uses the same PAPERCLIP_PLAYWRIGHT_CHANNEL override as the
rest of tests/e2e. In minimal containers, install the Playwright system
dependencies or point PAPERCLIP_PLAYWRIGHT_CHANNEL at the managed branch
service's known-good Chromium wrapper before running the browser smoke.