npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

mcp-chrome-control

v1.5.1

Published

Browser automation for AI assistants - Chrome control via JSON-RPC and MCP

Downloads

134

Readme

Chrome Control

GitHub license npm version PRs Welcome Node version

Overview

Chrome Control is a powerful browser automation server that enables AI assistants and applications to control Chrome through a JSON-RPC interface, with special support for the Model Context Protocol (MCP). Built on Puppeteer with enhanced features for AI integration, it allows AI systems to navigate websites, interact with elements, capture screenshots, and extract structured data.

Key Benefits:

  • 🧠 AI-Optimized: Designed specifically for AI assistants like Claude, GPT, and Bard
  • 🛡️ Bot-Detection Avoidance: Stealth features to navigate modern websites without being blocked
  • 🚀 Token Efficient: Customizable responses to minimize token usage in AI contexts
  • 👁️ Visual Feedback: Option to run in windowed mode for users to see AI actions in real-time
  • 🔄 Session Persistence: Support for user profiles to maintain login sessions and cookies

Website | Documentation | Examples

Quick Start

Installation

# Install globally
npm install -g mcp-chrome-control

# Or use without installation via npx
npx mcp-chrome-control

MCP Integration

Using NPX (Recommended for Production)

Add to your .mcp.json file:

{
  "chrome": {
    "type": "stdio",
    "command": "npx",
    "args": ["mcp-chrome-control"],
    "env": {}
  }
}

Using Local Installation (Recommended for Development)

For development, you can install the package globally and use the binary directly:

  1. Link the package globally:

    git clone https://github.com/CodingButterBot/chrome-control.git
    cd chrome-control
    npm install
    npm link
  2. Add to your .mcp.json file:

    {
      "chrome": {
        "type": "stdio",
        "command": "mcp-chrome-control",
        "args": [],
        "env": {}
      }
    }

Direct Client Usage

import { ChromeControlClient } from 'mcp-chrome-control/client';

async function runDemo() {
  const client = new ChromeControlClient();
  await client.start();
  
  // Create a browser (visible to user)
  const browserId = await client.createBrowser({ headless: false });
  
  // Navigate and interact
  await client.navigate('https://example.com', browserId);
  await client.screenshot(browserId, { path: 'screenshot.png' });
  
  // Clean up
  await client.closeBrowser(browserId);
  await client.stop();
}

Features

  • Full Browser Automation: Navigation, clicking, form filling, keyboard/mouse control
  • Visual Feedback: Run Chrome in windowed mode for users to see AI's actions
  • DOM Filtering: Extract only relevant elements and attributes
  • Screenshot Capabilities: Capture full-page or element-specific screenshots
  • Anti-Detection Measures: Avoid bot detection through stealth techniques
  • Session Persistence: Maintain login sessions and cookies between runs
  • Action Chaining: Execute multiple browser operations in a single request
  • Comprehensive Logging: Detailed logs for debugging and error tracking
  • JavaScript Execution: Run custom JS in the browser context
  • Context Persistence: Automatic tracking of browser and tab information across calls
  • Robust Error Handling: Better error messages and recovery mechanisms
  • Comprehensive Test Suite: Extensive tests covering all functionality

Core Tools

| Category | Tools | |----------|-------| | Browser Management | Create, list, and close browsers | | Navigation | Navigate to URLs with custom response formats | | Interaction | Click, hover, fill forms, select options | | Mouse & Keyboard | Direct control of mouse and keyboard actions | | Screenshots | Take full-page or element-specific screenshots | | JavaScript | Execute custom JavaScript in browser context |

View the complete tool reference →

Use Cases

  • AI Web Research: Allow AI assistants to search and analyze web content
  • Automated Testing: Script tests for websites and web applications
  • Data Extraction: Scrape and structure web data for analysis
  • Website Monitoring: Capture screenshots for visual monitoring
  • Form Submission: Automate form filling and submission
  • Visual Demonstrations: Show users how to perform actions on websites

Development & Contributing

We welcome contributions! Here's how to get started:

# Clone the repository
git clone https://github.com/CodingButterBot/chrome-control.git
cd chrome-control

# Install dependencies
npm install

# Start development server
npm run dev

# Run all tests
npm run test:all

# Run unit tests with pretty formatting
npm run test:units

# Run specific test categories
npm run test:nav          # Navigation tests
npm run test:form         # Form interaction tests  
npm run test:screenshot   # Screenshot and evaluation tests
npm run test:zod          # Zod schema conversion tests

# Test MCP tools directly with the MCP testing utility
npm run mcp:add chrome_create_browser '{}'
npm run mcp:run

MCP Testing Utility

For development and debugging, we provide a dedicated MCP testing utility that allows you to:

  1. Create sequences of MCP tool calls in a JSON file
  2. Execute them without needing an LLM integration
  3. Test individual tool calls in isolation
  4. Debug tool responses and context handling

To use it:

# Add a tool call to the sequence
npm run mcp:add chrome_navigate '{"url":"https://example.com"}'

# Execute the entire sequence
npm run mcp:run

This utility is particularly helpful for LLM developers who want to understand exactly how Chrome Control's MCP tools behave before integrating them with an AI system.

See our Contributing Guide for more details.

Resources

License

MIT