Live DevTools Inspector MCP
Live DevTools Inspector is a local Python MCP server for diagnosing an explicitly selected Chrome page. It collects normalized console/runtime issues, failed network requests, and main-thread performance findings. It can prepare an exact, reviewed source patch for an authorized local repository and run its test suite; it does not gain source access from a public website URL.
Prerequisites
- Python 3.11 or newer.
- uv for the release installer.
- Chrome or Chromium launched with a loopback-only DevTools debugging endpoint.
- VS Code with an MCP-capable agent, Codex CLI/IDE, or another coding agent that supports local stdio MCP servers.
The package is named devtools-inspector-mcp. Before publication, verify this name is still available on PyPI and replace the example installer host below with a domain you control.
Install
The installer is not hosted yet. These are the final public commands only after you publish the package to PyPI and host the matching scripts at a trusted HTTPS URL.
Windows PowerShell
irm https://YOUR-TRUSTED-DOMAIN/install.ps1 | iex
To avoid executing a remote script directly, download it, review it, then run it:
irm https://YOUR-TRUSTED-DOMAIN/install.ps1 -OutFile install.ps1
Get-FileHash .\install.ps1 -Algorithm SHA256
.\install.ps1 -Agent vscode -ProjectRoot .
macOS and Linux
curl --fail --location --proto '=https' --tlsv1.2 https://YOUR-TRUSTED-DOMAIN/install.sh | sh
The safer reviewed form is:
curl --fail --location --proto '=https' --tlsv1.2 https://YOUR-TRUSTED-DOMAIN/install.sh -o install.sh
shasum -a 256 install.sh
sh install.sh --agent vscode --project-root .
The installer asks for vscode, codex, or manual unless --agent is supplied. It requires uv, runs uv tool install --upgrade devtools-inspector-mcp, verifies live-devtools-mcp remains running as a stdio server, and configures only the chosen agent.
For development from this checkout:
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
python -m pytest -q
Automatic workspace detection
The server now automatically detects the VS Code workspace root with the following priority:
-
DEVTOOLS_PROJECT_ROOT environment variable (explicit opt-in) - If this is set and points to an existing directory, it will be used as the project root.
-
VS Code workspace detection - The server attempts to detect the workspace from the MCP client's roots notification. If Cline or another MCP client provides workspace folder information, the first workspace folder will be used.
-
Current working directory - If neither of the above is available, the server falls back to
Path.cwd()with a clear warning message.
You can set the DEVTOOLS_PROJECT_ROOT environment variable explicitly if auto-detection doesn't work:
$env:DEVTOOLS_PROJECT_ROOT="C:\path\to\your\project"
Or using the setup tool:
live-devtools-mcp-setup --project-root .
VS Code configuration
Run the setup command from the repository you authorize for potential repair:
live-devtools-mcp-setup --agent vscode --project-root .
It safely merges the following entry into .vscode/mcp.json, preserving unrelated servers and making a timestamped backup before a change:
{
"servers": {
"live-devtools-inspector": {
"type": "stdio",
"command": "live-devtools-mcp",
"env": {
"DEVTOOLS_PROJECT_ROOT": "${workspaceFolder}"
}
}
}
}
Open that folder in VS Code, trust the workspace only after reviewing the MCP configuration, then use MCP: List Servers to start or inspect the server. Use MCP: Reset Cached Tools after upgrades if the new tools do not appear. VS Code uses a top-level servers object for .vscode/mcp.json; see the VS Code MCP configuration reference.
Codex configuration
Run setup from the authorized repository:
live-devtools-mcp-setup --agent codex --project-root .
The setup command uses the Codex CLI rather than editing TOML directly:
codex mcp add live-devtools-inspector --env DEVTOOLS_PROJECT_ROOT="/your/authorized/repository" -- live-devtools-mcp
It first runs codex mcp get live-devtools-inspector; a matching existing entry is left unchanged. Restart the Codex CLI or IDE extension after setup and use codex mcp list or /mcp to verify it is available. Codex supports local stdio MCP servers through codex mcp add, ~/.codex/config.toml, or project .codex/config.toml; see the official Codex MCP documentation.
Other MCP clients
Run the installer with --agent manual to print this portable configuration. Add it only to the configuration location documented by your coding agent:
{
"mcpServers": {
"live-devtools-inspector": {
"command": "live-devtools-mcp",
"args": []
}
}
}
Agents do not share a universal local configuration path or schema, so the installer intentionally does not guess or overwrite another agent's settings.
Chrome setup and security
Use a dedicated profile and keep the debugging endpoint bound to loopback. Never expose or forward this port.
Windows
& "$env:ProgramFiles\Google\Chrome\Application\chrome.exe" `
--remote-debugging-address=127.0.0.1 `
--remote-debugging-port=9222 `
--user-data-dir="$env:TEMP\devtools-inspector-chrome"
macOS
open -na "Google Chrome" --args \
--remote-debugging-address=127.0.0.1 \
--remote-debugging-port=9222 \
--user-data-dir="${TMPDIR:-/tmp}/devtools-inspector-chrome"
Linux
google-chrome \
--remote-debugging-address=127.0.0.1 \
--remote-debugging-port=9222 \
--user-data-dir="${TMPDIR:-/tmp}/devtools-inspector-chrome"
Use a different local port if required, then provide that endpoint to list_browser_targets. The server permits only unauthenticated HTTP loopback endpoints and page WebSockets from the selected endpoint. It redacts common secrets and query-string credentials, and it does not collect request/response bodies or headers.
First scan
- Open your website in the dedicated debug Chrome profile.
- Call
list_browser_targetswithhttp://127.0.0.1:9222. - Call
connect_browserusing the selected page target ID. - Exercise the page, then call
get_live_diagnostics,inspect_console,inspect_network, andinspect_performance. - Use the evidence, severity, and source metadata in the returned findings to investigate. A clean result covers only events observed while monitoring.
inspect_performance reports long main-thread tasks from the Long Tasks API when Chrome produces entries. It can also return an explicitly labeled CDP Tracing fallback finding. An action is labeled timing_correlated only when browser timing intervals overlap; that label is not a causation claim.
Safe repair workflow
- Open or explicitly authorize the local source repository first and set
DEVTOOLS_PROJECT_ROOTto it. - Inspect diagnostics and source evidence.
- Call
propose_fixwith a project-relative path, the current SHA-256, and one unique old/new snippet. - Review the proposal. Call
apply_patchonly withapproved=true. - Run
run_project_checksand rescan the browser page. - Report failed checks, incomplete browser verification, and unresolved diagnostics accurately.
The server never treats a public URL as repository authorization, never edits a production deployment, and refuses patch paths outside the authorized project root.
Troubleshooting
uvnot found: install uv, then rerun the installer.- Server is missing from the agent: restart or reload the agent, then inspect its MCP server list and logs.
- Chrome cannot be found: start Chrome with the loopback command above, open the target page, and call
list_browser_targetsagain. - No performance finding: exercise the page after connecting. If neither the Long Tasks API nor the collected trace yields evidence,
inspect_performancereturns an empty list. - A configuration conflict: the setup tool refuses to replace a different server with the same name. Review the existing entry manually.
Uninstall
Remove the agent configuration first, then uninstall the isolated tool:
uv tool uninstall devtools-inspector-mcp
For Codex, run codex mcp remove live-devtools-inspector. For VS Code, remove only the live-devtools-inspector entry from .vscode/mcp.json after reviewing that file's other servers.
Release preparation
- Recheck the PyPI package name immediately before upload.
- Build and inspect artifacts:
uv build. - Test the wheel in a clean virtual environment on each supported platform.
- Publish only after review:
uv publish. - Host
scripts/install.ps1andscripts/install.shon a versioned HTTPS release URL you control. - Publish SHA-256 checksums and replace
YOUR-TRUSTED-DOMAINin the release instructions.
Do not publish the package or installer scripts until the artifacts, URLs, checksums, and release version have been reviewed.
Metadata
Release files for devtools-inspector-mcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| devtools_inspector_mcp-0.1.1.tar.gz | 17.3 MB | Without provenance | Details for devtools_inspector_mcp-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| devtools_inspector_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for devtools_inspector_mcp-0.1.1-py3-none-any.whl |
Total release size: 17.3 MB
Release files / devtools_inspector_mcp-0.1.1.tar.gz
| Download URL | devtools_inspector_mcp-0.1.1.tar.gz |
|---|---|
| Size | 17.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a7d194ca4cfd5c591fc2102c4e0fe7af03ebf51259b52d361bd45758760089e
|
|
BLAKE2b-256 checksum How to use checksums |
800b78d02d7247beec08da5461898144e7df372d818cbb4d1ad6f60729e1ed8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / devtools_inspector_mcp-0.1.1-py3-none-any.whl
| Download URL | devtools_inspector_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3b6c164e302c527258a9c8d1849e080429957d17c915ea8d6ecf96691da31c5b
|
|
BLAKE2b-256 checksum How to use checksums |
d9b0b15393cd06541f7973acbbdff5a4b88e9efbe5e2b7d9d244bc7c21841200
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Security for devtools-inspector-mcp 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.