Chrome Debug MCP Server
Provides support for running Chrome instances in Docker containers, automatically discovering and connecting to Chrome debugging ports in containerized environments.
Uses Puppeteer as the browser engine to connect to Chrome debug ports, enabling browser automation with persistent login sessions.
Enables e-commerce automation for Taobao while maintaining logged-in state, supporting product search and monitoring operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Chrome Debug MCP Servergo to github.com and log me in"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Chrome Debug MCP Server
A Model Context Protocol (MCP) server for Chrome browser automation via debugging protocol, specifically designed to connect to Chrome debugging ports and enable browser automation with persistent login sessions.
🎯 Project Advantages
🚀 Core Technical Advantages
🔧 Zero-Dependency Deployment
No Chrome extensions required
No Chrome Web Store approval needed
Fully autonomous in enterprise environments
📦 Container-Friendly
Perfect support for Docker/Kubernetes deployment
No extension permission or installation issues
Ideal for cloud-native architecture
⚡ Two-Step Launch
# Launch with just two commands # 1. Start Chrome in debug mode /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug # 2. Run MCP server npx chrome-debug-mcp🛡️ Enterprise-Grade Security
Based on standard Chrome DevTools Protocol
No third-party extension permissions required
Complete local operation
Related MCP server: Electron MCP Server
🚀 Quick Start
Option 1: Direct Usage (Recommended)
Launch with npx - no installation required:
# 1. Start Chrome in debug mode
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# 2. Run MCP server directly
npx chrome-debug-mcpOption 2: Local Development
git clone https://github.com/rainmenxia/chrome-debug-mcp.git
cd chrome-debug-mcp
npm install
npm run build
npm startCore Features
✅ Chrome Debug Port Connection: Based on standard Chrome DevTools Protocol, no extensions required
🏢 Enterprise-Grade Deployment: Zero-dependency deployment, no Chrome Web Store approval needed
📱 Intelligent Tab Management: Reuse tabs for same domains, avoid duplicate openings
🖼️ Real-time Screenshot Feedback: Automatic screenshots after each operation for visual feedback
🌐 Network Activity Monitoring: Auto-wait for page load completion
🐳 Native Docker Support: Perfect support for containerized Chrome instances, no extension limitations
⚡ Two-Step Launch: Start Chrome in debug mode then run
npx chrome-debug-mcp, no complex installation required🔍 Smart Browser Discovery: Auto-discover Chrome instances in local and Docker environments
Configuration & Usage
1. Start Chrome Debug Mode (Required)
The server needs to connect to a Chrome instance with debugging port enabled:
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# Windows
chrome.exe --remote-debugging-port=9222 --user-data-dir=c:\temp\chrome-debug
# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debugImportant Notes:
--user-data-dirparameter points to a temporary directory, ensuring Chrome starts in debug modeAfter startup, you can log into websites normally, and login sessions will be preserved
The server will reuse this Chrome instance, no need to re-login
2. Configure MCP Client
Add the following configuration to your MCP client:
{
"mcpServers": {
"browser-automation": {
"command": "npx",
"args": ["chrome-debug-mcp"]
}
}
}That's it! No installation, no downloads, no complex path configuration needed.
💡 Alternative Installation Methods:
Global Installation:
npm install -g chrome-debug-mcp{ "mcpServers": { "browser-automation": { "command": "chrome-debug-mcp" } } }Local Project Installation:
npm install chrome-debug-mcp{ "mcpServers": { "browser-automation": { "command": "npx", "args": ["chrome-debug-mcp"] } } }
Available Tools
1. launch_browser
Connect to Chrome debug port and initialize browser session.
{
"name": "launch_browser",
"arguments": {
"remote_host": "http://localhost:9222" // optional
}
}2. navigate_to
Navigate to specified URL with intelligent tab management.
{
"name": "navigate_to",
"arguments": {
"url": "https://example.com"
}
}3. click
Click at specified coordinates.
{
"name": "click",
"arguments": {
"coordinate": "100,200"
}
}4. type_text
Input text content.
{
"name": "type_text",
"arguments": {
"text": "Hello World"
}
}5. scroll_down / scroll_up
Scroll the page.
{
"name": "scroll_down",
"arguments": {}
}6. hover
Hover mouse at specified position.
{
"name": "hover",
"arguments": {
"coordinate": "100,200"
}
}7. resize_browser
Resize browser window.
{
"name": "resize_browser",
"arguments": {
"size": "1200,800"
}
}8. get_page_content
Get current page HTML content.
{
"name": "get_page_content",
"arguments": {}
}9. close_browser
Close browser connection.
{
"name": "close_browser",
"arguments": {}
}Typical Use Cases
1. Social Media Automation
# Manually log into Twitter/Weibo in Chrome first
# Then use MCP tools for automation
launch_browser -> navigate_to -> click -> type_text2. E-commerce Operations
# Keep logged-in state for Taobao/JD
# Automate product search, price monitoring, etc.
launch_browser -> navigate_to -> type_text -> click3. Data Scraping
# Scrape data from login-required websites
# Bypass login verification, direct operations
launch_browser -> navigate_to -> get_page_contentAdvanced Features
Intelligent Tab Management
Same domains (e.g.,
example.com) reuse existing tabsDifferent domains automatically create new tabs
Avoid duplicate openings of same websites
Auto-wait Mechanisms
Monitor network activity, wait for complete page loading
HTML content stability detection
Automatic handling of dynamic content loading
Error Recovery
Auto-reconnect on connection drops
Cache successful connection endpoints
Detailed error logs and feedback
Docker Environment Support
If Chrome runs in a Docker container:
# Start Chrome in Docker
docker run -d --name chrome-debug \
-p 9222:9222 \
--shm-size=2gb \
zenika/alpine-chrome \
--no-sandbox \
--disable-dev-shm-usage \
--remote-debugging-address=0.0.0.0 \
--remote-debugging-port=9222The server will automatically discover Chrome instances in Docker environments.
Troubleshooting
Chrome Connection Failed
Confirm Chrome is started with
--remote-debugging-port=9222Check if port 9222 is occupied:
lsof -i :9222Ensure no other Chrome instances are running
Operation Timeout
Check network connection
Increase page load timeout
Confirm target website is accessible
Screenshot Failed
Confirm page is fully loaded
Check browser window size settings
Try refreshing page and retry operation
Technical Architecture
MCP Client ←→ stdio ←→ MCP Server ←→ Chrome Debug Port ←→ Chrome BrowserTransport Protocol: stdio (standard input/output)
Browser Engine: Puppeteer + Chrome DevTools Protocol
Connection Method: WebSocket (Chrome debug port)
Image Format: WebP/PNG base64 encoding
Development & Debugging
# Watch mode compilation
npm run dev
# View MCP communication logs
DEBUG=mcp* npm startPublishing to npm
# Build project
npm run build
# Publish to npm
npm publishAcknowledgments
This project's design philosophy and core concepts were inspired by the RooCode project. RooCode is an excellent browser automation MCP server implementation that provided valuable technical references and design insights.
Special thanks to the RooCode team for their contributions in the following areas:
🎯 MCP Protocol Integration: Provided technical solutions for combining MCP servers with browser automation
🔗 Browser Connection: Demonstrated elegant browser connection and session management
📋 Tool API Design: Provided reference frameworks for standardizing browser operations
Building upon RooCode's foundation, this project further focuses on browser automation with persistent login sessions, achieving more practical automation capabilities by connecting to existing Chrome debug ports to maintain user sessions.
License
MIT License
Core Advantage: The biggest feature of this MCP server is its ability to connect to existing Chrome instances and maintain login sessions, making it ideal for automation scenarios requiring user authentication. Through Chrome debug ports, it can take over user-logged browser sessions, achieving true "session-persistent" browser automation.
Available Tools
10 toolsclickC
在指定坐标位置点击
| Name | Required | Description | Default |
|---|---|---|---|
| coordinate | Yes | 点击位置的坐标,格式为 'x,y' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action (click) but doesn't disclose behavioral traits like what happens after clicking (e.g., page navigation, element interaction), error conditions, or dependencies (e.g., requires an active browser session). This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and target, making it easy to parse. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a mutation action with no annotations and no output schema), the description is incomplete. It doesn't cover what the click does (e.g., triggers UI events), potential side effects, or response format. For a tool that performs an interactive operation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning beyond the input schema. Schema description coverage is 100%, with the parameter 'coordinate' documented as '点击位置的坐标,格式为 'x,y''. The description implies coordinate usage but doesn't provide additional context like coordinate system origin or valid ranges. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '在指定坐标位置点击' clearly states the action (click) and target (specified coordinate position). It uses a specific verb+resource pattern, though it doesn't explicitly distinguish from sibling tools like 'hover' which might be similar. The purpose is unambiguous but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., browser must be launched), exclusions, or comparisons to similar tools like 'hover'. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_browserC
关闭浏览器连接
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action ('close browser connection') but lacks behavioral details: it doesn't specify if this is destructive (e.g., terminates processes, loses data), requires specific states, has side effects, or what happens post-execution. This leaves gaps for safe agent operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('关闭浏览器连接') that directly states the purpose with zero waste. It's appropriately sized for a simple, parameterless tool and is front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple action but potentially destructive), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like what 'close' entails, return values, or error conditions, which are crucial for an agent to use it correctly in context with siblings like 'launch_browser'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description doesn't need to add parameter semantics, so a baseline of 4 is appropriate as it avoids redundancy. No additional parameter context is required or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '关闭浏览器连接' (close browser connection) states a clear verb ('close') and resource ('browser connection'), but it's somewhat vague about what 'browser connection' entails compared to siblings like 'launch_browser' or 'resize_browser'. It doesn't explicitly differentiate itself from potential alternatives, such as whether this terminates a session or just disconnects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., must have an active browser session from 'launch_browser'), exclusions, or related tools. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_contentB
获取当前页面的HTML内容
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe behavioral traits such as whether it returns raw HTML, handles dynamic content, requires page load completion, or has any side effects. For a tool with zero annotation coverage, this leaves significant gaps in understanding its operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Chinese that directly states the tool's function without any unnecessary words. It's front-loaded and efficiently communicates the core purpose, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is adequate as a minimum viable explanation. However, it lacks details on output format (e.g., whether it returns a string or structured data) and behavioral context, which could be important for an agent to use it effectively in a browser automation scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, but since there are no parameters, a baseline score of 4 is appropriate as it doesn't need to compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('获取' meaning 'get') and resource ('当前页面的HTML内容' meaning 'current page's HTML content'), making the purpose immediately understandable. However, it doesn't differentiate from potential sibling tools like 'get_page_text' or 'get_page_screenshot' that might exist in other contexts, though none are listed among the provided siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an active browser session), exclusions, or comparisons to siblings like 'hover' or 'type_text'. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hoverC
将鼠标悬停在指定坐标位置
| Name | Required | Description | Default |
|---|---|---|---|
| coordinate | Yes | 悬停位置的坐标,格式为 'x,y' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It states what the tool does but doesn't disclose: whether this requires an active browser session, if it waits for page loads, what happens on invalid coordinates, if it triggers hover events on elements, or any side effects. The description is functionally accurate but lacks operational details needed for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Chinese that directly states the tool's function with zero wasted words. It is front-loaded with the core action ('将鼠标悬停在') and immediately specifies the target. Every part of the sentence earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a browser interaction tool with no annotations and no output schema, the description is incomplete. It doesn't address context like browser state requirements, error conditions, or what constitutes success. Siblings like 'launch_browser' and 'get_page_content' suggest a richer ecosystem that this description doesn't integrate with, leaving gaps for the agent to navigate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'coordinate' fully documented in the schema as a string in 'x,y' format. The description adds no additional parameter semantics beyond implying coordinate targeting. Since the schema does the heavy lifting, the baseline score of 3 is appropriate—the description doesn't enhance parameter understanding but doesn't detract either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('将鼠标悬停在' - hover the mouse) and the target ('指定坐标位置' - specified coordinate position). It distinguishes from siblings like 'click' (which performs a click action) and 'type_text' (which inputs text). However, it doesn't explicitly mention the browser/UI context that siblings imply, making it slightly less specific than a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing an active browser session from 'launch_browser'), when hovering is appropriate versus clicking, or any coordination with other tools like 'get_page_content' for element identification. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
launch_browserB
启动浏览器连接,连接到Chrome调试端口以保持登录状态
| Name | Required | Description | Default |
|---|---|---|---|
| remote_host | No | 可选的远程Chrome主机URL (例如: http://localhost:9222) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions connecting to Chrome debugging ports and maintaining login state, which hints at session persistence and potential authentication needs. However, it lacks details on error handling, timeouts, whether this is a one-time or reusable connection, or any rate limits—critical for a tool that establishes external connections.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's action and purpose without unnecessary words. It's front-loaded with the core function ('启动浏览器连接') and adds just enough context about Chrome debugging and login state, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (establishing external browser connections with login state persistence), lack of annotations, and no output schema, the description is incomplete. It misses critical details like what happens on success/failure, how the connection is managed, or what the agent can expect after launching (e.g., a session ID or confirmation). For a tool with potential side effects and no structured safety hints, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'remote_host' documented as an optional Chrome host URL. The description doesn't add any semantic details beyond what the schema provides (e.g., no examples of default behavior if omitted, no explanation of why this parameter matters for login state). Baseline 3 is appropriate as the schema handles the parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '启动浏览器连接' (launch browser connection) and specifies it connects to Chrome debugging ports to maintain login state. It uses specific verbs and identifies the resource (browser/Chrome), but doesn't explicitly differentiate from sibling tools like 'close_browser' or 'navigate_to' beyond its unique connection-establishing function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning '保持登录状态' (maintain login state), suggesting this tool is for establishing persistent sessions. However, it doesn't provide explicit guidance on when to use it versus alternatives (e.g., no mention of prerequisites or comparisons to other browser-related siblings), leaving usage somewhat inferred rather than clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_browserB
调整浏览器窗口大小
| Name | Required | Description | Default |
|---|---|---|---|
| size | Yes | 窗口大小,格式为 'width,height' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While '调整浏览器窗口大小' implies a mutation action, it doesn't specify whether this requires a browser to be already launched, what happens if the browser isn't open, whether the size change is immediate or animated, or if there are any constraints on valid dimensions. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('调整浏览器窗口大小') that directly communicates the core function without any unnecessary words. It's perfectly front-loaded and every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (a mutation action with one parameter) and the absence of both annotations and an output schema, the description is minimally adequate but incomplete. It states what the tool does but lacks crucial context about behavioral aspects, usage prerequisites, and expected outcomes, which would be important for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'size' clearly documented as '窗口大小,格式为 'width,height''. The description doesn't add any additional meaning beyond what the schema already provides about parameters, so it meets the baseline score when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '调整浏览器窗口大小' clearly states the verb ('调整' meaning adjust/resize) and resource ('浏览器窗口' meaning browser window), making the purpose immediately understandable. However, it doesn't specifically differentiate from sibling tools like 'launch_browser' or 'close_browser' beyond the obvious action difference, so it doesn't reach the highest level of sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (like needing an active browser session), when-not-to-use scenarios, or how it relates to sibling tools such as 'launch_browser' (which might create the window) or 'close_browser' (which terminates it).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scroll_downB
向下滚动页面一个视口高度
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action but doesn't describe what happens if no page is loaded, whether scrolling is smooth or instant, if it respects page boundaries, or what visual/state changes occur. For a browser interaction tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's function without any wasted words. It's appropriately sized for a simple action tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a browser interaction tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address what the tool returns (e.g., success status, new page position), error conditions, or dependencies on other tools like 'launch_browser' or 'navigate_to'. For a tool that modifies browser state, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema fully documents the empty parameter set. The description appropriately doesn't add parameter information beyond what's already covered, maintaining focus on the tool's purpose without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('向下滚动' - scroll down) and the target ('页面' - page) with specific scope ('一个视口高度' - one viewport height). It distinguishes from siblings like 'scroll_up' by direction, but doesn't fully differentiate from other navigation tools like 'navigate_to' beyond the scrolling action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description implies usage for scrolling down a page, but doesn't specify when to choose this over 'scroll_up' or other navigation methods, nor does it mention prerequisites like requiring an active browser session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scroll_upB
向上滚动页面一个视口高度
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action ('scroll up one viewport height') but lacks behavioral details such as whether it requires a loaded page, handles errors (e.g., if at the top), or interacts with page elements. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's function without any waste. It is appropriately sized and front-loaded, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and 0 parameters, the description is minimal. It explains the basic action but lacks context on prerequisites, error handling, or integration with sibling tools (e.g., 'launch_browser' must be used first). For a browser interaction tool, this is incomplete and could lead to misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description adds no parameter information, which is acceptable here as there are no parameters to explain. Baseline is 4 for zero parameters, as the schema fully covers the absence of inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('向上滚动' meaning 'scroll up') and the resource ('页面' meaning 'page'), specifying it scrolls by one viewport height. It distinguishes from sibling 'scroll_down' by direction, though not explicitly. However, it doesn't fully differentiate from other navigation tools like 'navigate_to' beyond the scroll action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description implies usage for scrolling up a page, but it doesn't mention prerequisites (e.g., requires an active browser session), exclusions, or comparisons to other tools like 'scroll_down' or 'navigate_to' for different navigation needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
type_textC
输入文本内容
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | 要输入的文本内容 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but fails completely. It doesn't indicate whether this tool requires a browser session to be active, what happens if the target element isn't focused, whether it simulates keystrokes or pastes text, or any error conditions. For a browser automation tool with zero annotation coverage, this is a critical gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just three Chinese characters. While this represents severe under-specification in terms of content, from a pure conciseness perspective, it's maximally efficient with zero wasted words. Every character directly relates to the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a browser automation tool with no annotations, no output schema, and sibling tools that suggest complex interaction scenarios, the description is completely inadequate. It doesn't explain what the tool actually does, when to use it, what behavioral characteristics it has, or what results to expect. This fails to provide the contextual understanding needed for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'text' clearly documented in the schema as '要输入的文本内容' (text content to input). The description '输入文本内容' adds no additional meaning beyond what the schema already provides. With complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '输入文本内容' (input text content) is a tautology that essentially restates the tool name 'type_text' in Chinese. It doesn't specify what resource the text is being typed into or provide any meaningful context about the action. While it's clear this involves typing text, it lacks the specificity needed to distinguish it from similar text-input operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides absolutely no guidance about when to use this tool versus alternatives. There are multiple sibling tools (click, hover, navigate_to, etc.) that might be used in browser automation scenarios, but the description offers no context about whether this tool types into form fields, search boxes, or other UI elements, or what prerequisites might be needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
- First observed
click - First observed
close_browser - First observed
get_page_content - First observed
hover - First observed
launch_browser - First observed
navigate_to - First observed
resize_browser - First observed
scroll_down - First observed
scroll_up - First observed
type_text
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose with no overlap: click, hover, type_text handle different user interactions; navigate_to, scroll_up/down manage navigation; launch_browser, close_browser, resize_browser control browser state; get_page_content retrieves content. The descriptions clearly differentiate actions like click vs hover or scroll_up vs scroll_down.
Tool names follow a consistent snake_case pattern throughout (e.g., get_page_content, navigate_to). The verb-noun structure is mostly predictable, though some tools use simple verbs like click or hover without objects, which is a minor deviation from the full verb_noun pattern seen in others like resize_browser.
With 10 tools, the count is well-scoped for a Chrome debugging server. Each tool earns its place by covering essential browser automation tasks: launching/closing, navigation, interaction (click, hover, type), scrolling, resizing, and content retrieval. This provides a balanced set without being overwhelming or too sparse.
The toolset covers core browser automation workflows well, including setup (launch_browser), navigation (navigate_to, scroll), interaction (click, hover, type_text), and teardown (close_browser). Minor gaps exist, such as no explicit tool for handling pop-ups, taking screenshots, or executing JavaScript, but agents can work around these with the provided tools for most debugging tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Model Context Protocol server for Studex tools, notifications, and profile integrations
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants to control Chrome browsers through the Chrome DevTools Protocol, allowing for navigation, clicking, typing, and extracting page information.14949MIT
- AlicenseBqualityBmaintenanceA Model Context Protocol server that provides comprehensive Electron application automation, debugging, and observability capabilities through Chrome DevTools Protocol integration.425471MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server for web automation that enables browser control, element interaction, content extraction, and monitoring using Playwright.74ISC
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for browser automation using Playwright to control Chrome browsers.30MIT