Back to MCP Servers

Chrome Mcp Secure

Security-hardened Chrome automation with post-quantum encryption (ML-KEM-768 + ChaCha20-Poly1305), secure credential vault, memory scrubbing, and audit logging. 22 tools for browser automation and secure logins.

browser-automationsecuritybrowserautomation
By Pantheon-Security
62Updated 5 months agoTypeScriptMIT

Installation

npx -y chrome-mcp-secure

Configuration

{
  "mcpServers": {
    "chrome-mcp-secure": {
      "command": "npx",
      "args": ["-y", "chrome-mcp-secure"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes
<div align="center">

Chrome MCP Server (Security Hardened)

Enterprise-grade Chrome automation for AI agents with compliance-ready logging

Version TypeScript MCP Security Post-Quantum SOC2 CEF License

Enterprise FeaturesCompliance LoggingSecurity FeaturesQuick StartDocker Deploy

</div>

Enterprise Ready

Built for corporate environments where security, compliance, and auditability are non-negotiable.

RequirementSolution
Audit TrailsHash-chained audit logs with tamper detection
SIEM IntegrationCEF (Splunk, ArcSight, QRadar) + Syslog (RFC 5424)
Credential SecurityPost-quantum encryption (ML-KEM-768 + ChaCha20-Poly1305)
Data ProtectionAuto-redaction of PII in screenshots and logs
Session ControlConfigurable timeouts, auto-expiry, inactivity lockout
Access ControlToken-based authentication with brute-force protection
Compliance LoggingOWASP-compliant event categories, correlation IDs

Compliance Standards Support

StandardCoverage
SOC 2 Type IIAudit logging, access controls, encryption at rest
GDPRData minimization, right to erasure, audit trails
PCI DSSCredential protection, access logging, encryption
HIPAAAudit controls, access management, encryption

Compliance Logging

SIEM-ready logging in industry-standard formats. Every tool execution, credential access, and security event is logged.

Output Formats

FormatUse CaseExample
CEFSplunk, ArcSight, QRadarCEF:0|Pantheon-Security|Chrome-MCP-Secure|2.3.0|...
SyslogCentralized logging (RFC 5424)<134>1 2025-12-16T10:30:00Z ...
JSONLElastic, custom pipelines{"timestamp":"...","category":"audit",...}

Event Categories (OWASP-Compliant)

  • authentication - Login attempts, session creation
  • authorization - Access control decisions
  • credential - Vault operations (store, retrieve, delete)
  • audit - Tool executions with timing
  • security - Rate limits, injection attempts, anomalies
  • data_access - Sensitive data retrieval

Quick Configuration

# Enable CEF logging for Splunk
COMPLIANCE_LOG_FORMAT=cef
COMPLIANCE_LOG_DIR=./logs/compliance

# Forward to remote syslog
SYSLOG_HOST=siem.company.com
SYSLOG_PORT=514

Example CEF Output

CEF:0|Pantheon-Security|Chrome-MCP-Secure|2.3.0|audit:tool:navigate|tool:navigate|3|rt=1702732800000 outcome=success msg=Tool navigate executed: success request=https://internal.company.com cn1=1702732800-abc123 cn1Label=correlationId

Security-hardened fork of lxe/chrome-mcp Maintained by Pantheon Security


Real-World Results

"We used this MCP for hours building out our security dashboard - the reliability was incredible. The amount of work we produced was huge compared to manual browser interaction." — Pantheon Security team

Production Tested

MetricResult
Session Duration4+ hours continuous use
StabilityZero crashes or disconnects
Credential SecurityAll logins encrypted, auto-wiped
Productivity Gain10x faster than manual browser work

This isn't just a security enhancement - it's a reliable workhorse for AI-assisted browser automation. When you need Claude to interact with web apps for extended sessions, this MCP delivers.


Security Features

Core Security (v2.1.0)

FeatureDescription
Post-Quantum EncryptionML-KEM-768 + ChaCha20-Poly1305 hybrid
Secure Credential VaultEncrypted at rest, auto-wiped from memory
Memory ScrubbingZeros sensitive data after use
Audit LoggingTamper-evident logs with hash chains
Profile IsolationDedicated Chrome profile for secure sessions
Log SanitizationCredentials masked in all output
Rate Limiting100 requests per minute per operation
Input ValidationCSS selector sanitization, URL validation

Advanced Security Modules (v2.2.0+)

ModuleDescription
Secrets ScannerDetects 25+ credential patterns (AWS, GitHub, Slack, OpenAI keys, private keys, JWTs, credit cards, SSNs)
Response ValidatorPrompt injection detection (15 patterns), suspicious URL blocking, encoded payload detection
Session ManagerCredential session lifecycle with 8h max lifetime and 30min inactivity timeout
MCP AuthenticationToken-based auth with auto-generation, SHA256 hashing, brute-force lockout
Certificate PinningSPKI-style pinning for Google, GitHub, Microsoft, Anthropic, OpenAI domains
Screenshot RedactionAuto-redacts password fields, credit cards, CVV, SSN, API keys in screenshots
Cross-Platform PermissionsSecure file permissions on Linux, macOS, and Windows (icacls)

Post-Quantum Ready

Traditional encryption will be broken by quantum computers. This fork uses hybrid encryption:

ML-KEM-768 (Kyber) + ChaCha20-Poly1305
  • ML-KEM-768: NIST-standardized post-quantum key encapsulation
  • ChaCha20-Poly1305: Modern stream cipher (immune to timing attacks)

Even if one algorithm is broken, the other remains secure.

Why Post-Quantum Now?

TimelineThreat
2024-2030"Harvest now, decrypt later" attacks - adversaries collecting encrypted data today
2030-2035Early cryptographically-relevant quantum computers expected
2035+Current RSA/ECC encryption potentially broken

Your browser credentials stored today could be decrypted in 10 years. This fork protects against that future threat now.


Docker Deployment

Recommended for production environments.

# Clone and start
git clone https://github.com/Pantheon-Security/chrome-mcp-secure.git
cd chrome-mcp-secure
docker-compose up -d

Production Configuration

# Copy example config
cp env.example .env

# Edit for your environment
vim .env

# Start with custom config
docker-compose up -d

Key Environment Variables

# SIEM Integration
COMPLIANCE_LOG_FORMAT=cef              # cef, syslog, jsonl, json
SYSLOG_HOST=siem.company.com           # Remote syslog server
SYSLOG_PORT=514

# Encryption (REQUIRED for production)
CHROME_MCP_ENCRYPTION_KEY=$(openssl rand -base64 32)

# Session Security
CHROME_MCP_SESSION_MAX_LIFETIME=28800000   # 8 hours
CHROME_MCP_SESSION_INACTIVITY=1800000      # 30 minutes

Log Collection

Logs are written to ./logs/compliance/ in your chosen format:

# View compliance logs
tail -f logs/compliance/compliance-2025-12-16.cef

# Forward to Splunk via syslog
docker-compose logs chrome-mcp | nc -u siem.company.com 514

See env.example for all configuration options.


Installation

One-Command Setup (Recommended)

Linux / macOS:

git clone https://github.com/Pantheon-Security/chrome-mcp-secure.git
cd chrome-mcp-secure
./setup.sh

Windows (PowerShell):

git clone https://github.com/Pantheon-Security/chrome-mcp-secure.git
cd chrome-mcp-secure
.\setup.ps1

This will:

  1. Install dependencies and build the project
  2. Register the MCP server with Claude Code
  3. Start Chrome with remote debugging
  4. Create an isolated Chrome profile

Manual Setup

npm install && npm run build
claude mcp add chrome-mcp-secure --scope user -- node /path/to/chrome-mcp-secure/dist/index.js
google-chrome --remote-debugging-port=9222 --user-data-dir=~/.chrome-mcp-profile

Platform-Specific Notes

PlatformSetup ScriptChrome Profile Location
Linux./setup.sh~/.chrome-mcp-profile
macOS./setup.sh~/.chrome-mcp-profile
Windows.\setup.ps1%USERPROFILE%\.chrome-mcp-profile

Quick Start

1. Start Chrome with debugging

./setup.sh --start-chrome

2. Use in Claude Code

"Check Chrome connection with health tool"
"Navigate to https://example.com"
"Take a screenshot"

3. Secure Login Flow

"Store a credential for my GitHub account"
"Navigate to github.com/login"
"Use secure_login with the stored credential"

Available Tools

Browser Automation (15 tools)

ToolDescription
healthCheck Chrome connection and version
navigateNavigate to URL
get_tabsList all Chrome tabs
click_elementClick element by CSS selector
clickClick at coordinates
typeType text at cursor
get_textExtract text from element
get_page_infoGet URL, title, interactive elements
get_page_stateGet scroll position, viewport size
scrollScroll to coordinates
screenshotCapture page screenshot
wait_for_elementWait for element to appear
evaluateExecute JavaScript
fillFill form field
bypass_cert_and_navigateNavigate with HTTPS cert bypass

Secure Credential Tools (7 tools)

ToolDescription
store_credentialStore encrypted login credentials
list_credentialsList stored credentials (no passwords shown)
get_credentialGet credential metadata
delete_credentialRemove a stored credential
update_credentialUpdate an existing credential
secure_loginAuto-fill login forms using stored credentials
get_vault_statusCheck vault encryption status

Secure Credential Usage

Storing Credentials

Store a credential for my Google account:
- Name: "Google Work"
- Type: google
- Email: me@example.com
- Password: mypassword123
- Domain: google.com

Using Credentials for Login

1. Navigate to https://accounts.google.com
2. Use secure_login with the credential ID from list_credentials

The secure_login tool will:

  • Retrieve and decrypt the credential from the vault
  • Auto-fill the username/email field
  • Auto-fill the password field
  • Click the submit button
  • Wipe credentials from memory after use

What Gets Protected

DataProtection
Login credentialsPost-quantum encrypted at rest
Passwords in memoryAuto-wiped after 5 min TTL
Log outputCredentials auto-masked
Chrome profileIsolated from default browser
Audit trailHash-chained for tamper detection

Configuration

Environment Variables

# Chrome connection
CHROME_HOST=localhost
CHROME_PORT=9222
CHROME_PROFILE_DIR=~/.chrome-mcp-profile

# Encryption (recommended for production)
CHROME_MCP_ENCRYPTION_KEY=<base64-32-bytes>
CHROME_MCP_USE_POST_QUANTUM=true

# Credential vault
CHROME_MCP_CONFIG_DIR=~/.chrome-mcp
CHROME_MCP_CREDENTIAL_TTL=300000  # 5 minutes

# Logging
LOG_LEVEL=info
AUDIT_LOGGING=true

Generate Strong Encryption Key

openssl rand -base64 32

See [SECURITY.md](./S

View source on GitHub