← All tools

chrome-devtools-mcp

MCP

MCP server for Chrome DevTools

v0.16.0 Apache-2.0 Tested 7 Feb 2026
7.3

Dimension scores

Security 6.0
Reliability 7.0
Agent usability 7.0
Compatibility 9.0
Code health 9.0

Compatibility

Framework Status Notes
Claude Code
OpenAI Agents SDK Some complex nested schemas may require adapter mapping, SSE transport not explicitly shown but stdio works with most setups
LangChain Minor: State management in McpContext could conflict with LangChain's stateless tool model

Security findings

HIGH

Command injection risk in browser launch

In src/browser.js, user-provided chrome arguments (--chrome-arg CLI flag) are passed directly to puppeteer.launch() without sanitization. An attacker controlling CLI args could inject shell commands via crafted chrome flags.

HIGH

Path traversal in file operations

User-provided --user-data-dir and --executable-path are used without validation. While limited to CLI context, a malicious config could point to sensitive system directories. Tests show paths like '/tmp/test 123/chrome' are accepted without sanitization.

MEDIUM

Verbose error messages expose internal state

MEDIUM

API key exposure in test code

MEDIUM

Insufficient input validation on viewport dimensions

Reliability

Success rate

82%

Calls made

100

Avg latency

850ms

P95 latency

2500ms

Failure modes

  • Browser connection failures when Chrome is already running with same profile - no graceful fallback
  • Timeout errors under CPU/network throttling without proper timeout adjustment in all code paths
  • Crashes on malformed page IDs or missing page references - many code paths assume page exists without validation
  • Race conditions during concurrent tool calls due to shared browser state without proper locking
  • Resource leaks when browser/page cleanup fails - dispose() method exists but error handling is minimal
  • DevTools protocol errors not consistently wrapped into structured MCP responses
  • Edge cases with special characters in selectors/XPath may cause unexpected behavior
  • Network request tracking may miss requests during rapid navigation or concurrent page operations
  • Puppeteer errors (TimeoutError, TargetClosedError) sometimes propagate as raw exceptions rather than structured errors

Code health

License

Apache-2.0

Has tests

Yes

Has CI

No

Dependencies

45

Excellent code health. Active development with comprehensive documentation (25KB README, 48KB CHANGELOG, tool reference, troubleshooting guides). Well-structured TypeScript codebase with ESLint config, Prettier formatting, and extensive test coverage across multiple test files (McpContext.test.ts, PageCollector.test.ts, browser.test.ts, e2e index.test.ts, etc.). Release automation configured (release-please). Published to npm as MCP server (v0.16.0). Strong documentation includes contributing guidelines, security policy, design principles, and debugging guides. Has evaluation scripts for Gemini integration and automated doc generation. Build tooling includes Rollup and proper module structure. Minor gaps: no visible CI config file in provided listing (though .github not shown), test coverage percentage not reported in configs. Overall a mature, well-maintained project following best practices.