1. Conduid
  2. Browser
  3. chromelink
MCP server · Browser

chromelink

Model Context Protocol (MCP) server for Chrome browser automation via AI agents

Unclaimed browser
39Low

Scored 3 months ago · breakdown

About chromelink

chromelink is an MCP server published by git+aikeymouse in the Browser category: model Context Protocol (MCP) server for Chrome browser automation via AI agents. It has been installed 0 times through Conduid.

Install

Install
npx @aikeymouse/chromelink-mcp
Claude Code
claude mcp add chrome-link -- npx -y @aikeymouse/chromelink-mcp
npx
npx -y @aikeymouse/chromelink-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about chromelink

Powered by Claude · Grounded in docs

I know everything about chromelink. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

ChromeLink

Remote Chrome tab control via WebSocket API with session management and side panel UI.

Patreon npm npm

Quick Start

Install NPM Client:

npm install @aikeymouse/chromelink-client

Or use with AI Agents (MCP):

npm install -g @aikeymouse/chromelink-mcp

See Installation for complete setup.

Features

  • WebSocket API: Control Chrome tabs remotely via WebSocket connection
  • Model Context Protocol (MCP): Official MCP server for AI agents (GitHub Copilot, Claude Desktop, etc.) with full browser automation capabilities
  • Session Management: Create sessions with configurable timeouts, resume existing sessions
  • Tab Operations: List, open, navigate, switch, close tabs in current active window
  • JavaScript Execution: Execute JavaScript in tabs with configurable timeout and result return
  • Script Injection: Register early script injections for WebView2 mocking, test configuration, and API interception without debugger warnings
  • Inspector Mode: Interactive element inspection with detailed DOM tree analysis and CSS selectors
  • Helper Functions: Comprehensive DOM operations for CSP-restricted pages including click, type, highlight, element bounds, viewport scrolling, and container analysis
  • Screenshot Capture: Full page or element-cropped screenshots with base64 PNG output
  • Side Panel UI: Monitor connected clients, view session details, manage script injections, track logs in real-time
  • Per-Session Logging: All requests/responses logged to dedicated session files with configurable retention
  • Chunked Messages: Handle large results with automatic 1MB chunking
  • Auto-Restart: Native host automatically restarts on extension updates

Screenshots

Session Logs Inspector Mode
Session Logs Inspector Mode

Architecture

Client App (WebSocket) ←→ Node.js Native Host ←→ Chrome Extension (Service Worker)
                                   ↓                           ↓
                          Session Log Files              Side Panel UI

Installation

See install-scripts/INSTALL.md for complete installation instructions.

Usage

Quick Start with Node.js Client

const ChromeLinkClient = require('@aikeymouse/chromelink-client');

async function example() {
  // Create client
  const client = new ChromeLinkClient();
  
  // Connect to ChromeLink server
  await client.connect('ws://localhost:9000');
  
  // List all tabs
  const { tabs } = await client.listTabs();
  console.log(`Found ${tabs.length} tabs`);
  
  // Open a new tab
  const { tab } = await client.openTab('https://example.com');
  const tabId = tab.id;
  
  // Wait for page to load and get heading
  await client.waitForElement('h1', 10000, tabId);
  const heading = await client.getText('h1', tabId);
  console.log('Page heading:', heading.value);
  
  // Execute JavaScript
  const result = await client.executeJS('document.title', tabId);
  console.log('Page title:', result.value);
  
  // Clean up
  await client.closeTab(tabId);
  client.close();
}

example().catch(console.error);

Common Operations

Open tab and interact with form:

const { tab } = await client.openTab('https://example.com/login');
await client.waitForElement('input[name="email"]', 5000, tab.id);
await client.type('input[name="email"]', 'user@example.com', tab.id);
await client.type('input[name="password"]', 'secret123', tab.id);
await client.click('button[type="submit"]', tab.id);

Capture screenshot:

const { screenshot } = await client.captureScreenshot({ 
  format: 'png',
  fullPage: true 
});
// screenshot is a base64 data URL

Use helper functions (works on CSP-restricted pages):

// Extract page elements with CSS and XPath selectors
const elements = await client.callHelper(
  'extractPageElements', 
  ['form', false], // containerSelector, includeHidden
  tabId
);

// Highlight an element
await client.callHelper('highlightElement', ['button.submit'], tabId);

See Node.js Client Documentation for complete API reference.

Advanced: Direct WebSocket API

For direct WebSocket control (without the Node.js client), see PROTOCOL.md for the complete WebSocket message format.

Response Format

{
  "requestId": "req-001",
  "result": { ... },
  "error": null
}

For large results (>1MB), responses are chunked:

{
  "requestId": "req-001",
  "chunk": "...",
  "chunkIndex": 0,
  "totalChunks": 3
}

Configuration

Log Retention

Configure log retention in the Side Panel UI:

  • Default: 100 entries
  • Adjustable via UI slider
  • Older entries auto-deleted when limit exceeded

Session Timeout

Set per-session when creating connection:

  • Default: 5 minutes (300000 ms)
  • Configurable via timeout parameter
  • Session extends on activity

Development

See docs/dev/DEVELOPMENT.md for development setup and guidelines.

Protocol Documentation

See docs/PROTOCOL.md for complete API documentation.

License

ChromeLink uses dual licensing to support both non-commercial and commercial use cases:

Non-Commercial Use (Free)

License: Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)

Permitted for:

  • Personal projects and learning
  • Educational institutions and students
  • Research and academic work
  • Open source projects (non-commercial)

You can:

  • ✅ Use ChromeLink for free
  • ✅ Share and redistribute (with attribution)

Restrictions:

  • ❌ No commercial use
  • ❌ No derivative works
  • ✅ Attribution required

Commercial Use (Paid License Required)

License: Commercial License

Required for:

  • Commercial products or services
  • Revenue-generating applications
  • Internal business automation
  • SaaS applications
  • Consulting or client work

Benefits:

  • ✅ Full commercial usage rights
  • ✅ Modification and integration rights
  • ✅ Priority support
  • ✅ Updates and maintenance

Contact: https://github.com/aikeymouse/chrome-link/issues

Published NPM Packages (MIT License)

The following NPM packages are MIT licensed and can be freely used:

Important: While these NPM packages are MIT licensed, they require the ChromeLink browser extension to function. The extension uses dual licensing (CC BY-NC-ND 4.0 or Commercial), so commercial applications need a commercial license.

Complete Licensing Details

See LICENSE file for complete dual-licensing terms and conditions.

Questions? Open an issue: https://github.com/aikeymouse/chrome-link/issues

README mirrored from the source repository 3 months ago. The original is authoritative.

Questions

About chromelink

How do I install chromelink?

Run npx @aikeymouse/chromelink-mcp, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is chromelink safe to use with an AI agent?

Its trust score is 39 out of 100 (low). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is chromelink still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.