ticktockbent avatar

Charlotte

ticktockbent/charlotte

Gives agents structured access to web pages through headless Chromium without dumping entire accessibility trees on every call. Navigate, observe with three detail levels, find elements spatially or semantically, interact with clicks and typing, manage tabs, monitor console output and network requests, take screenshots. The default navigate returns 336 characters for Hacker News versus 61,000+ in comparable tools. Ships with tool profiles to control which of 43 operations load at startup: core (7 tools), browse (23), full set, or specialized modes for development and auditing. Agents can activate additional tool groups mid-session. Designed to cut token costs on production browsing workloads by letting agents request only the page structure they need.

GitHub stars
147
tools
43
transport
STDIO
last updated
Feb 22, 2026

Tools

43 tools

Public tool metadata for what this MCP can expose to an agent.

navigateNavigates to a URL and returns a compact page summary.

Navigates to a URL and returns a compact page summary.

No parameter schema in public metadata yet.

back

No parameter schema in public metadata yet.

forward

No parameter schema in public metadata yet.

reload

No parameter schema in public metadata yet.

observeObserves the page at 3 detail levels, with a structural tree view.

Observes the page at 3 detail levels, with a structural tree view.

No parameter schema in public metadata yet.

findSearches for elements by spatial and semantic criteria, with CSS selector mode and output_file for large result sets.

Searches for elements by spatial and semantic criteria, with CSS selector mode and output_file for large result sets.

No parameter schema in public metadata yet.

screenshotTakes a screenshot with persistent artifact management.

Takes a screenshot with persistent artifact management.

No parameter schema in public metadata yet.

screenshots

No parameter schema in public metadata yet.

screenshot_get

No parameter schema in public metadata yet.

screenshot_delete

No parameter schema in public metadata yet.

diffCompares the page structurally against snapshots.

Compares the page structurally against snapshots.

No parameter schema in public metadata yet.

click

No parameter schema in public metadata yet.

click_atClicks at coordinates.

Clicks at coordinates.

No parameter schema in public metadata yet.

typeTypes text into an element, with slow typing support.

Types text into an element, with slow typing support.

No parameter schema in public metadata yet.

select

No parameter schema in public metadata yet.

toggle

No parameter schema in public metadata yet.

submit

No parameter schema in public metadata yet.

scroll

No parameter schema in public metadata yet.

hover

No parameter schema in public metadata yet.

drag

No parameter schema in public metadata yet.

keySends a single key or a key sequence, with element targeting.

Sends a single key or a key sequence, with element targeting.

No parameter schema in public metadata yet.

wait_forPolls for an async condition.

Polls for an async condition.

No parameter schema in public metadata yet.

uploadUploads a file to a file input.

Uploads a file to a file input.

No parameter schema in public metadata yet.

fill_formFills a form in batch.

Fills a form in batch.

No parameter schema in public metadata yet.

dialogAccepts or dismisses JavaScript dialogs.

Accepts or dismisses JavaScript dialogs.

No parameter schema in public metadata yet.

consoleRetrieves console output at all severity levels, with filtering and timestamps.

Retrieves console output at all severity levels, with filtering and timestamps.

No parameter schema in public metadata yet.

requestsRetrieves HTTP request history with method, status, and resource type filtering.

Retrieves HTTP request history with method, status, and resource type filtering.

No parameter schema in public metadata yet.

tabs

No parameter schema in public metadata yet.

tab_open

No parameter schema in public metadata yet.

tab_switch

No parameter schema in public metadata yet.

tab_close

No parameter schema in public metadata yet.

viewportSets the viewport using generic presets or named devices with DPR, touch, and user agent emulation.

Sets the viewport using generic presets or named devices with DPR, touch, and user agent emulation.

No parameter schema in public metadata yet.

networkConfigures network throttling and URL blocking.

Configures network throttling and URL blocking.

No parameter schema in public metadata yet.

set_cookies

No parameter schema in public metadata yet.

get_cookies

No parameter schema in public metadata yet.

clear_cookies

No parameter schema in public metadata yet.

set_headers

No parameter schema in public metadata yet.

configure

No parameter schema in public metadata yet.

dev_serveStarts a static server with file watching and auto-reload.

Starts a static server with file watching and auto-reload.

No parameter schema in public metadata yet.

dev_injectInjects CSS or JS into the page.

Injects CSS or JS into the page.

No parameter schema in public metadata yet.

dev_auditAudits the page for a11y, performance, SEO, contrast, and broken links.

Audits the page for a11y, performance, SEO, contrast, and broken links.

No parameter schema in public metadata yet.

evaluateExecutes arbitrary JavaScript in the page context.

Executes arbitrary JavaScript in the page context.

No parameter schema in public metadata yet.

charlotte_toolsMeta-tool to enable, disable, and list tool groups mid-session.

Meta-tool to enable, disable, and list tool groups mid-session.

No parameter schema in public metadata yet.

Sponsors

Readme

Charlotte

The Web, Readable.

Your AI agent burns ~50,000 characters of accessibility tree just to look at the Hacker News front page. Charlotte does it in 364.

Charlotte is an MCP server that gives AI agents structured, token-efficient access to the web. Instead of dumping the full accessibility tree on every call, Charlotte returns only what the agent needs: a compact page summary on arrival, targeted queries for specific elements, and full detail only when explicitly requested. On content-heavy pages that orientation is up to ~140x smaller than a full accessibility-tree snapshot from Playwright MCP; on trivially small pages the two are roughly the same size.

Why Charlotte?

Most browser MCP servers dump the entire accessibility tree on every call — a flat text blob that can exceed a million characters on content-heavy pages. Agents pay for all of it whether they need it or not.


View the full README on GitHub

Details

Repository
github.com/ticktockbent/charlotte
Categories
Web & Browser Automation, AI & LLM Tools
Package
@ticktockbent/charlotte
Transport
STDIO
Registry
MCP registry, active

Related Web & Browser Automation MCP servers

View all
1bzsasson avatarScreaming Frog SEO Spider MCP Server (headless)bzsasson/screaming-frog-mcpHeadless Screaming Frog SEO Spider via its CLI: run crawls, export and filter data, no GUI needed.94stars
2apireno avatarDOMShellapireno/domshellDrive Chrome with filesystem commands (ls, cd, grep, click, type). One MCP tool, multi-agent.59stars
3retio-ai avatarPageMapretio-ai/retio-pagemapStructured web intelligence for AI agents. 5x fewer tokens than Playwright/Firecrawl, 84.7% accuracy32stars
4harusame64 avatarDesktop Touch Mcpharusame64/desktop-touch-mcpComputer-use MCP for Windows 10/11: 32 tools — screenshot, UIA, Chrome CDP, type/click/scroll, VBA.25stars
5codelipenghui avatarMcp Matcodelipenghui/mcp-matHeadless Eclipse MAT MCP server for Java heap dump analysis19stars
6browserless avatarBrowserlessbrowserless/browserless-mcpOfficial Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.19stars