From testing
This skill should be used when the user wants to validate an MCP-UI or MCP Apps implementation — checking widget rendering in the Inspector, verifying ui:// resource contracts, testing structuredContent, or running MCP Apps conformance checks. Triggers include: "why isn't my MCP widget rendering", "test my MCP-UI implementation", "check if my tool passes MCP Apps conformance", "verify the ui:// resource contract", "debug my Inspector view". Does not apply for general MCP tool smoke-testing (use mcporter for that).
How this skill is triggered — by the user, by Claude, or both
Slash command
/testing:mcpjam-ui-testingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill to prove an MCP-UI surface works at the protocol and rendered-widget layers. Prefer MCPJam CLI for deterministic checks, then MCPJam Inspector for visual/rendering behavior.
Use this skill to prove an MCP-UI surface works at the protocol and rendered-widget layers. Prefer MCPJam CLI for deterministic checks, then MCPJam Inspector for visual/rendering behavior.
Identify the target transport.
--url http://host:port/mcp.--command <binary> --args <args...> --cwd <repo>.mcpjam <command> --help before guessing.Run server health first.
mcpjam server doctor ...Run app conformance.
mcpjam apps conformance ...Manually verify the wire shape.
mcpjam tools list ..._meta.ui.resourceUri.ui://....Verify resource discovery and content.
mcpjam resources list ...mcpjam resources read --resource-uri ui://... ...text/html;profile=mcp-app.resources/read should return exactly one HTML text/blob payload for the referenced UI URI._meta.ui should declare CSP/permissions when the app needs them; prefer locked-down empty arrays/objects for self-contained widgets.Verify the tool call payload.
mcpjam tools call --name <tool> --arguments '{}' ...structuredContent for data the widget consumes.content useful, but do not make the widget scrape human text when structured JSON is available.Test rendering in Inspector.
mcpjam inspector start or mcpjam inspector open.mcpjam tools call ... --ui).resources/read returns HTML.For Axon, the expected UI contract is:
axon_status_dashboardui://axon/status-dashboardtext/html;profile=mcp-appaxon should not carry dashboard UI metadataaxon_status_dashboard should return structuredContent with status payload dataRun focused checks:
mcpjam server doctor --url http://127.0.0.1:8001/mcp
mcpjam apps conformance --url http://127.0.0.1:8001/mcp
mcpjam tools list --url http://127.0.0.1:8001/mcp
mcpjam resources list --url http://127.0.0.1:8001/mcp
mcpjam resources read --url http://127.0.0.1:8001/mcp --resource-uri ui://axon/status-dashboard
mcpjam tools call --url http://127.0.0.1:8001/mcp --name axon_status_dashboard --arguments '{}'
For stdio Axon:
mcpjam server doctor --command ./target/debug/axon --args mcp --cwd /home/jmagar/workspace/axon
tools/list missing _meta.ui.resourceUri: fix tool metadata, not resource serving.resources/list missing the URI: register the UI resource.resources/read wrong MIME: set text/html;profile=mcp-app on the returned resource contents.tools call --ui.406 or SSE errors: ensure the client sends Accept: application/json, text/event-stream; MCPJam normally handles this.Load references/commands.md when exact MCPJam commands or expected outputs are needed.
npx claudepluginhub jmagar/dendrite --plugin testingCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.