Skip to main content
Glama
Rainmen-xia

Chrome Debug MCP Server

by Rainmen-xia

Chrome Debug MCP Server

Language: English | 中文

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

  1. 🔧 Zero-Dependency Deployment

    • No Chrome extensions required

    • No Chrome Web Store approval needed

    • Fully autonomous in enterprise environments

  2. 📦 Container-Friendly

    • Perfect support for Docker/Kubernetes deployment

    • No extension permission or installation issues

    • Ideal for cloud-native architecture

  3. ⚡ 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
  4. 🛡️ 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

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-mcp

Option 2: Local Development

git clone https://github.com/rainmenxia/chrome-debug-mcp.git
cd chrome-debug-mcp
npm install
npm run build
npm start

Core 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-debug

Important Notes:

  • --user-data-dir parameter points to a temporary directory, ensuring Chrome starts in debug mode

  • After 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_text

2. E-commerce Operations

# Keep logged-in state for Taobao/JD
# Automate product search, price monitoring, etc.
launch_browser -> navigate_to -> type_text -> click

3. Data Scraping

# Scrape data from login-required websites
# Bypass login verification, direct operations
launch_browser -> navigate_to -> get_page_content

Advanced Features

Intelligent Tab Management

  • Same domains (e.g., example.com) reuse existing tabs

  • Different 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=9222

The server will automatically discover Chrome instances in Docker environments.

Troubleshooting

Chrome Connection Failed

  1. Confirm Chrome is started with --remote-debugging-port=9222

  2. Check if port 9222 is occupied: lsof -i :9222

  3. Ensure no other Chrome instances are running

Operation Timeout

  1. Check network connection

  2. Increase page load timeout

  3. Confirm target website is accessible

Screenshot Failed

  1. Confirm page is fully loaded

  2. Check browser window size settings

  3. Try refreshing page and retry operation

Technical Architecture

MCP Client ←→ stdio ←→ MCP Server ←→ Chrome Debug Port ←→ Chrome Browser
  • Transport 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 start

Publishing to npm

# Build project
npm run build

# Publish to npm
npm publish

Acknowledgments

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 tools
clickC

在指定坐标位置点击

ParametersJSON Schema
NameRequiredDescriptionDefault
coordinateYes点击位置的坐标,格式为 'x,y'

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

关闭浏览器连接

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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内容

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

将鼠标悬停在指定坐标位置

ParametersJSON Schema
NameRequiredDescriptionDefault
coordinateYes悬停位置的坐标,格式为 'x,y'

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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调试端口以保持登录状态

ParametersJSON Schema
NameRequiredDescriptionDefault
remote_hostNo可选的远程Chrome主机URL (例如: http://localhost:9222)

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

调整浏览器窗口大小

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeYes窗口大小,格式为 'width,height'

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

向下滚动页面一个视口高度

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

向上滚动页面一个视口高度

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

输入文本内容

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes要输入的文本内容

TDQS

C2/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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.

  1. 10 tool updates
    • First observedclick
    • First observedclose_browser
    • First observedget_page_content
    • First observedhover
    • First observedlaunch_browser
    • First observednavigate_to
    • First observedresize_browser
    • First observedscroll_down
    • First observedscroll_up
    • First observedtype_text

TDQS

B3.1/5.0

Scored across 10 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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.
    149
    49
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server for web automation that enables browser control, element interaction, content extraction, and monitoring using Playwright.
    7
    4
    ISC