mcp-chrome-server

mcp-chrome-server

3.4

A Chrome server based on MCP (Model-Controller-Prompt) for browser automation.

MCP Chrome Server

smithery badge Buy Me A Coffee

A Chrome server based on MCP (Model-Controller-Prompt) for browser automation.

Installation

Prerequisites

  • Python 3.12
  • Google Chrome browser installed
  • uv (Python package installer) or Docker

Installing via Smithery

npx -y @smithery/cli install @dlwjdtn535/mcp-chrome-server --client claude

Configuration Setup

Choose one of the following setup methods based on your environment:

1. Using uv (Recommended)

Windows Setup:

{
  "mcpServers": {
    "mcp-chrome-server": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "%LOCALAPPDATA%\\Programs\\mcp-chrome-server\\src",
        "mcp-chrome-server"
      ],
      "env": {
        "CHROME_PROFILE_PATH": "%LOCALAPPDATA%\\Google\\Chrome\\User Data"
      }
    }
  }
}

macOS Setup:

{
  "mcpServers": {
    "mcp-chrome-server": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/usr/local/bin/mcp-chrome-server/src",
        "mcp-chrome-server"
      ],
      "env": {
        "CHROME_PROFILE_PATH": "$HOME/Library/Application Support/Google/Chrome"
      }
    }
  }
}

Linux Setup:

{
  "mcpServers": {
    "mcp-chrome-server": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/usr/local/bin/mcp-chrome-server/src",
        "mcp-chrome-server"
      ],
      "env": {
        "CHROME_PROFILE_PATH": "$HOME/.config/google-chrome"
      }
    }
  }
}

Configuration

Chrome Profile Paths

Default Chrome profile paths for each operating system:

OSPath
Windows%LOCALAPPDATA%\Google\Chrome\User Data
macOS~/Library/Application Support/Google/Chrome
Linux~/.config/google-chrome

Important Notes

  • Close all running Chrome instances before starting the automation server
  • Ensure proper permissions for the Chrome profile directory
  • For Docker setup, make sure the volume mount path matches your system's Chrome profile path

Credential Management

Securely store and manage login information using the system keychain:

# Save credentials
result = tool_save_credentials(
    site="example.com",
    username="your_username",
    password="your_password"
)

# Retrieve saved credentials
result = tool_get_credentials(
    site="example.com",
    username="your_username"
)

Key Features

Browser Control

# Open browser
result = tool_open_browser()

# Navigate to URL
result = tool_navigate(url="https://example.com")

# Close browser
result = tool_close_browser()

Web Login

result = tool_web_login(
    url="https://example.com/login",
    credentials={
        "username": "your_username",
        "password": "your_password"
    },
    selectors={
        "username": "#id",
        "password": "#pw",
        "submit": ".login-button"
    }
)

Special handling:

  • Waits for user to solve CAPTCHA when detected
  • Automatic detection of 2-factor authentication
  • Detailed analysis of login failure scenarios

Element Manipulation

# Click element
result = tool_click(selector=".button")

# Type text
result = tool_type(
    selector="#input-field",
    text="Hello, World!"
)

# Get text
result = tool_get_text(selector=".content")

# Get multiple elements
result = tool_get_elements(selector=".items")

Important Considerations

  1. Chrome Profile Usage

    • Verify correct profile path configuration
    • Close all other Chrome windows using the profile
  2. Automation Detection Prevention

    • Simulation of natural user behavior
    • Maintain appropriate delays between login attempts
  3. Security

    • Always use system keychain for important credentials
    • Never expose credentials directly in environment variables or configuration files