MCP Chrome Server

MCP Chrome Server

By dlwjdtn535 GitHub

-

Overview

what is MCP Chrome Server?

MCP Chrome Server is a browser automation tool based on the Model-Controller-Prompt (MCP) architecture, designed to facilitate automated interactions with web browsers.

how to use MCP Chrome Server?

To use MCP Chrome Server, install it via Smithery or Docker, configure the Chrome profile paths according to your operating system, and run the server to start automating browser tasks.

key features of MCP Chrome Server?

  • Control web browsers programmatically (open, navigate, close)
  • Securely manage web login credentials
  • Manipulate web elements (click, type, get text)
  • Handle automation detection and CAPTCHA challenges

use cases of MCP Chrome Server?

  1. Automating repetitive web tasks such as form submissions.
  2. Testing web applications by simulating user interactions.
  3. Scraping data from websites while managing login sessions.

FAQ from MCP Chrome Server?

  • What are the prerequisites for using MCP Chrome Server?

You need Python 3.12 and Google Chrome installed on your machine.

  • Can I use MCP Chrome Server with Docker?

Yes! MCP Chrome Server can be set up using Docker for easier deployment.

  • How does MCP Chrome Server handle security?

It uses the system keychain to securely store and manage login credentials.

Content

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:

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
No tools information available.
No content found.