What it does
The Local Inspector supports two analysis modes. You can run either or both in a single session:inspection-summary.json: a full record of what was tested, with per-tool results and screenshotscertification-verdict.json: a structured pass/fail verdict against the production-readiness checklist
Prerequisites
Installation
Log in to the Developer Console and follow the steps in the Getting Started guide. The Getting Started guide walks you through installing the CLI, downloading the agent skills, and loading the inspector skill into your coding agent.Quick start
Step 1: Start the CLI, pointing it at your MCP server:CLI reference
Arguments
Options
How the three pieces fit together
The Local Inspector has three components that work together. Understanding the role of each one will help you get set up and interpret what’s happening during an inspection.1. The inspector skill
The inspector skill is an instruction document that you load into your AI coding agent (Claude, Kiro, Cursor, or any compatible agent). It tells your agent exactly how to run an inspection: which MCP protocol calls to make, in what order, how to capture screenshots, and how to generate the readiness report. You don’t write any of this logic yourself.2. Your coding agent
Once it has the skill loaded, your coding agent drives the entire inspection automatically. It initializes the MCP session, discovers your tools, loads the widget HTML, calls tools, captures screenshots across device surfaces, and writes the output files. Your only manual step is confirming tool parameters before each call; your agent will prompt you.3. The inspector CLI and UI
The CLI (addon-local-inspector) starts two things locally: a proxy that sits between your agent and your MCP server, and a browser UI that renders your widgets live inside Alexa device frames. Your browser opens automatically when you start the CLI. Leave it open; it updates in real time as your agent works.
Your role vs. your agent’s role:
Proxy endpoints
These endpoints are available on the proxy port (default6277):
Simplified JSON responses
By default, MCP servers return SSE-framed responses. The proxy unwraps them for you when you sendAccept: application/json:
What your agent does: step by step
Step 1: Start the proxy and open the UI
You run this command to start the inspector:MCP proxy listening at http://localhost:<port>: the proxy portInspector UI available at http://localhost:<port>: the UI portDevice surface buttons: [...]: the list of device surfaces to screenshot (visual mode)
Step 2: Initialize the MCP session
notifications/initialized:
Step 3: Discover tools
ui:// resource URI in their metadata (_meta.ui.resourceUri) support visual rendering. Tools without it can still be assessed via data-layer analysis.
Step 4: Load the widget HTML (visual mode only)
This must happen before anytools/call. It loads the widget into the device frame so it’s ready to receive tool results:
Step 5: Call a tool
Step 6: Screenshot device surfaces (visual mode only)
Use the Playwright CLI to capture screenshots of every device surface listed in the CLI startup output. Screenshots are taken in a separate headless session; your browser window is never disturbed.Device surface buttons from the startup output.
Step 7: Review the verdict
The inspector produces two JSON files in your working directory:certification-verdict.json — structured pass/fail per rule:
inspection-summary.json — full record of the session:
Device surfaces
The inspector evaluates your widget against two Alexa screen breakpoints:Output files
All files are written to a fixed working directory:- macOS / Linux:
/tmp/alexaplus-addon-local-inspector-live/ - Windows:
%TEMP%\alexaplus-addon-local-inspector-live\
Platform compatibility
Commands in this guide use Bash/Zsh syntax (macOS/Linux). On Windows, use these equivalents:Troubleshooting
Widget is blank after a tool call You must runresources/read (Step 4) before the first tools/call. The widget HTML must be loaded into the frame before it can receive and render tool results.
{"status":"not-ready"} on /health
The initialize request has not been sent yet, or it failed. Check proxy logs by restarting with --verbose.
Response is SSE-framed (event: message\ndata: ...) instead of JSON
Add Accept: application/json to your request. Without it, the proxy passes through the raw SSE format from the upstream server.
Session errors on requests after initialize
The Mcp-Session-Id header is missing or incorrect. Re-run initialize with -D <path>/init-headers.txt and extract the session ID from that file.
Inspector UI unreachable at localhost:6274
Check whether the port is already in use:
certification-verdict.json is missing rule results
The verdict only includes rules for the analysis scope you selected. Visual rules only appear when visual analysis runs; MCP data rules only appear when data-layer analysis runs. This is by design: absence means “not evaluated,” not “passed.”
State looks stale after a page reload
Verify the proxy state directly:
SSE events reference
The proxy broadcasts these named events onGET /events:

