Charlotte logo

Charlotte

Token-efficient browser automation through structured page summaries, targeted element queries, and persistent headless Chromium sessions.

Install Charlotte

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "charlotte": {
      "command": "npx",
      "args": [
        "@ticktockbent/charlotte"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 23 tools correctly (25d ago).

Overview

The charlotte MCP server gives AI agents structured, token-efficient access to web pages through a persistent headless Chromium session. It summarizes pages into landmarks, headings, interactive elements, forms, and content details, then exposes targeted observation and interaction tools over MCP. Use it when full accessibility-tree snapshots create excessive context, or when an agent needs browser navigation, form interaction, screenshots, monitoring, or web development checks.

Use cases

  • Browse content-heavy websites without loading full accessibility trees
  • Find and interact with targeted web elements
  • Automate multi-step forms and browser workflows
  • Inspect page requests and console output
  • Audit local pages for accessibility, SEO, and performance

Key features

  • Structured, token-efficient page representations
  • Persistent headless Chromium sessions
  • Semantic, spatial, and CSS-selector element search
  • Browser interaction, forms, dialogs, and file uploads
  • Screenshots, page diffs, console, and request monitoring
  • Selectable tool profiles with runtime activation

Tools23

What Charlotte lets your agent do. Expand a tool for its parameters.

Verified live~3.6k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

15/19 checks healthy over the last 91d

What it can do

From the 23 tools this server returned when we ran it.

Can delete or modify data · 2Handles credentials · 1Makes network requests · 6Read-only tools · 21
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceNot published
Package age234 days
Maintainers1

Observed 2026-10-15 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 6d ago via OSV.dev · @ticktockbent/charlotte (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars184Stargazers on the source repository.
npm downloads1.3kPackage downloads in the last 30 days.
Last commit9d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed23Callable tools this server registers over MCP.
Directory activity3 viewsConfig copies, upvotes, and views on AllMCPs.

How Charlotte works

What charlotte MCP server does

The charlotte MCP server connects an MCP-compatible agent to a persistent headless Chromium browser. It converts each loaded page into a structured representation containing landmarks, headings, interactive elements, typed metadata, bounding boxes, form structures, and content summaries.

Rather than returning the complete accessibility tree after every navigation, Charlotte starts with a compact orientation. Agents can then request a more detailed structural view or search for a specific element by semantic or spatial criteria. This approach is useful for content-heavy pages where returning the entire page tree would consume substantial context.

The browser session supports normal navigation and interaction, including multiple tabs, forms, dialogs, file inputs, scrolling, hovering, dragging, keyboard input, cookies, headers, viewport emulation, and network controls. Charlotte also provides screenshots, console and request inspection, JavaScript evaluation, and development-oriented checks.

How it works

Charlotte maintains Chromium instead of starting a separate browser for each request. Its renderer derives the agent-facing representation from the browser's current page state and sends that representation through MCP.

Three observation detail levels are available. The default navigation response provides orientation, while observe can return a structural tree and find can narrow results using element types, text, spatial conditions, or CSS selectors. Large search results can be written to an output file. diff compares page structure against snapshots, and screenshot tools manage captured browser artifacts.

Tool loading is configurable. The browse profile is the default and provides 23 tools. core loads seven basic tools, while full exposes all 43 registered tools. Other profiles focus on interaction, development, or auditing. The charlotte_tools meta-tool can enable or disable groups during a session.

Setup and configuration

The charlotte MCP server requires Node.js 20 or newer and npm for the documented package installation path. It is published as @ticktockbent/charlotte and is listed in the MCP Registry as io.github.TickTockBent/charlotte.

The startup profile is selected with a command-line option, such as charlotte --profile browse, charlotte --profile core, or charlotte --profile full. Profiles affect which tool definitions are loaded into the agent context; they do not require restarting when additional tool groups are enabled during a session.

A remote deployment is also documented through Docker. The provided command publishes port 3737 and uses --cap-add SYS_ADMIN and --shm-size 2g. The container prints a temporary connector URL and operator token. The documented remote flow connects through Claude's custom connector settings, while stable production hosting requires an operator-controlled domain, tunnel, or reverse proxy.

Tools and capabilities

  • Navigate with navigate, back, forward, and reload.
  • Inspect pages with observe, find, screenshots, and structural diffs.
  • Interact with links, controls, forms, dialogs, iframes, files, and keyboard input.
  • Manage tabs, viewport and device emulation, cookies, headers, throttling, and URL blocking.
  • Inspect console messages and HTTP request history with filters.
  • Serve local development files, inject CSS or JavaScript, and run accessibility, performance, SEO, contrast, and broken-link audits.
  • Execute arbitrary JavaScript in the page context with evaluate.

Limitations and notes

Charlotte's context savings depend on page complexity. The structured orientation can be much smaller than a full accessibility-tree snapshot on content-heavy sites, but the difference is limited on very small pages. Full detail remains available when an agent explicitly requests it.

The remote Docker connector's URL and token are ephemeral and rotate when the container restarts. Production use therefore needs deployment infrastructure and should account for the documented trust model and network-guard considerations.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Charlotte

charlotte is an MCP server that connects AI agents to a persistent headless Chromium browser. Its main tools navigate pages, return structured observations, find targeted elements, interact with forms and controls, capture screenshots, inspect requests and console output, and run JavaScript in page context.

Install it from npm as `@ticktockbent/charlotte` using the documented Node.js 20-or-newer and npm prerequisites.

Start Charlotte with a smaller profile such as `--profile core` or the default `--profile browse`. Core loads seven tools and browse loads 23; additional tool groups can be enabled during a session with the `charlotte_tools` meta-tool.

Yes. Run the documented Docker image with the required shared-memory and capability flags, publish port 3737, and use the printed connector URL and operator token. The documented remote connection flow uses Claude's custom connector settings, with ephemeral credentials that rotate on restart.

Charlotte can inspect browser console messages and HTTP request history, including filtering by severity, method, status, or resource type. It also supports screenshots, structural comparisons, cookies, viewport settings, network controls, and development audits.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewCharlotte AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/charlotte?style=directory)](https://allmcps.com/mcp/charlotte)
HTML Embed
<a href="https://allmcps.com/mcp/charlotte"><img src="https://allmcps.com/api/badge/charlotte?style=directory" alt="Charlotte on AllMCPs" /></a>