Charlotte
Renders web pages into structured, agent-readable representations using headless Chromium.
Connector by TickTockBent · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/ticktockbent-charlotte
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: browser-automation, web-scraping
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 10 read · 19 write · 1 delete · 13 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 43
Read from the source code; the running server may list different tools.
Read 10 · Look things up without changing anything.
charlotte_consolecharlotte_diffcharlotte_findcharlotte_get_cookiescharlotte_observecharlotte_requestscharlotte_screenshotcharlotte_screenshot_getcharlotte_screenshotscharlotte_tabs
Write 19 · Create, change, send or run things.
charlotte_backcharlotte_clickcharlotte_click_atcharlotte_dragcharlotte_fill_formcharlotte_forwardcharlotte_hovercharlotte_keycharlotte_navigatecharlotte_scrollcharlotte_selectcharlotte_set_cookies
Show 7 more tools
charlotte_set_headerscharlotte_submitcharlotte_tab_closecharlotte_togglecharlotte_toolscharlotte_typecharlotte_upload
Delete 1 · Delete, drop, revoke or wipe things.
charlotte_clear_cookies
Not yet classified 13 · We could not tell from the name and description.
charlotte_configurecharlotte_dev_auditcharlotte_dev_injectcharlotte_dev_servecharlotte_dialogcharlotte_evaluatecharlotte_networkcharlotte_reloadcharlotte_screenshot_deletecharlotte_tab_opencharlotte_tab_switchcharlotte_viewport
Show 1 more tools
charlotte_wait_for
Files it touches
- Any path the agent passes to its tools
Tools (43)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
charlotte_backNavigate back in browser history. Returns page representation after navigation.
charlotte_clear_cookiesClear cookies from the browser. Optionally filter by name(s) to remove specific cookies. Without a filter, clears all cookies for the current page.
charlotte_clickClick an interactive element on the page. Returns full page representation after the click.
charlotte_click_atClick at specific page coordinates. Use when target elements are not in the accessibility tree (custom widgets, canvas, non-semantic interactive divs). Dispatches real CDP-level mouse events. Returns full page representation after the click.
charlotte_configureConfigure Charlotte runtime settings. Changes take effect immediately.
charlotte_consoleRetrieve console messages from the active page. Returns messages at all severity levels (log, info, warning, error, debug, etc.) with timestamps. Useful for debugging JavaScript behavior.
charlotte_dev_auditRun accessibility and quality audits on the current page. Returns findings with severity levels and actionable recommendations.
charlotte_dev_injectInject CSS or JavaScript into the current page for testing modifications without editing files. Returns the page representation with a delta showing changes.
charlotte_dev_serveServe a local directory as a static website and optionally watch for file changes. Navigates to the served URL and returns the page representation. File changes trigger automatic reloads and surface as reload_event on the next tool response.
charlotte_dialogHandle a pending JavaScript dialog (alert, confirm, prompt, beforeunload). Accept or dismiss the dialog. Returns page representation after the dialog is resolved.
charlotte_diffCompare current page state to a previous snapshot. Returns structural diff showing added, removed, moved, and changed elements.
charlotte_dragDrag an element to another element. Uses mouse primitives to simulate drag-and-drop. Returns full page representation after the drag.
charlotte_evaluateExecute JavaScript in page context. Supports single expressions and multi-statement code. Returns the completion value of the last expression-statement.
charlotte_fill_formFill multiple form fields in a single call. Auto-detects element types (text input, select, checkbox, etc.) and applies the appropriate action. Returns a single page representation with delta covering all changes. All fields are validated up front before any field is mutated; if validation fails, no fields are changed. Note: if a field action fails mid-list (e.g. a handler throws after earlier fields succeeded), earlier fields remain applied.
charlotte_findSearch for elements matching criteria. Filters interactive elements by text, role, type, or spatial proximity. Use the selector parameter to find DOM elements by CSS selector — this reaches elements not in the accessibility tree (custom widgets, non-semantic divs). Selector results return Charlotte element IDs usable with click, hover, drag, etc.
Show 28 more tools
charlotte_forwardNavigate forward in browser history. Returns page representation after navigation.
charlotte_get_cookiesGet cookies for the active page. Optionally filter by URL(s). Returns cookie name, value, domain, path, and flags.
charlotte_hoverHover over an element to trigger hover states. Returns full page representation after hover.
charlotte_keySend keyboard input to the page or a specific element. Supports single key with modifiers, or a sequence of keys. Use for keyboard-driven UIs (games, terminals, code editors) and non-input elements with keydown listeners.
charlotte_navigateLoad a URL in the active page. Returns page representation after navigation. Default minimal detail includes landmarks, headings, and interactive element counts — use charlotte_find to locate specific elements, or pass detail: 'summary' to get the full element list.
charlotte_networkConfigure network conditions for the active page. Set throttling presets, block URL patterns, or enable request logging.
charlotte_observeGet current page state without performing any action. Use detail levels to control verbosity: "minimal" for landmarks, headings, and interactive element counts by landmark (use charlotte_find to get specific elements with actionable IDs, or observe({ detail: "summary" }) to see all elements), "summary" (default) for content summaries and full element list, "full" for all text content. Use view: "tree" for a compact structural outline (cheapest orientation tool), or view: "tree-labeled" to include labels on interactive elements (still much cheaper than minimal JSON, and shows which button/link/…
charlotte_reloadReload the current page. Returns page representation after reload.
charlotte_requestsRetrieve network request history from the active page. Returns all HTTP requests with method, status, resource type, and timestamps. Useful for debugging API calls and resource loading.
charlotte_screenshotCapture a visual screenshot. Fallback for when structured representation isn't sufficient (complex visualizations, canvas elements, images). Use save: true to persist as a file artifact that can be referenced later.
charlotte_screenshot_deleteDelete a saved screenshot artifact by its ID. Removes the file from disk.
charlotte_screenshot_getRetrieve a previously saved screenshot artifact by its ID. Returns the image data and metadata.
charlotte_screenshotsList all saved screenshot artifacts. Returns metadata for each saved screenshot including ID, filename, page URL, and timestamp.
charlotte_scrollScroll the page or a specific container. Returns full page representation after scrolling.
charlotte_selectSelect an option in a select/dropdown element. Returns full page representation after selection.
charlotte_set_cookiesSet cookies on the active page. Cookies persist for subsequent navigations within matching domains.
charlotte_set_headersSet extra HTTP headers for subsequent requests. Headers persist for all navigations on the active page.
charlotte_submitSubmit a form. Can submit by form ID or by clicking its submit button. Returns full page representation after submission.
charlotte_tab_closeClose a browser tab by its ID. If the closed tab was active, switches to the first remaining tab.
charlotte_tab_openOpen a new browser tab. Optionally navigate to a URL. The new tab becomes the active tab.
charlotte_tab_switchSwitch to a different browser tab by its tab ID. Returns the page representation of the activated tab.
charlotte_tabsList all open browser tabs with their URLs, titles, and active status.
charlotte_toggleToggle a checkbox or switch element. Returns full page representation after toggle.
charlotte_toolsManage Charlotte tool visibility. Lists available tool groups and their status. Use 'enable' or 'disable' to control which tools are loaded. Disabled tools don't appear in the tool list — enable a group to access its tools. Groups: 'interaction' for form filling, clicking, and drag-and-drop. 'session' for cookie/auth management, tab switching, viewport, and network. 'dev_mode' for local development serving and audits. 'evaluate' for JavaScript execution. 'monitoring' for console and network request logs. 'dialog' for JavaScript dialog handling.
charlotte_typeType text into an input element. Returns full page representation after typing.
charlotte_uploadSet files on a file input element. Validates that files exist and that the target is a file input. Returns full page representation after upload.
charlotte_viewportChange the browser viewport. Use custom width/height, a generic preset (dimensions only), or a named device like "iPhone 15" (any Puppeteer KnownDevices name), which also emulates device pixel ratio, touch, mobile mode, and user agent. Returns page representation at the new viewport size.
charlotte_wait_forWait for a condition to be met on the page. Returns page representation when the condition is satisfied, or a TIMEOUT error.
Compare and alternatives
Featured in
Signals
- Stars
- 183
- Forks
- 22
- Open issues
- 8
- Contributors
- 16
- Last commit
- Oct 22, 2026 (6 days ago)
- Last release
- Aug 9, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.TickTockBent/charlotte- Version
- 0.1.3
- Auth
- No auth
- Packages
- npm @ticktockbent/charlotte
- License
- MIT
- Repository
- github.com/ticktockbent/charlotte
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Charlotte MCP server. Agent Mart. https://agentmart.dev/connectors/ticktockbent-charlotte (last updated 2026-10-24)