Charlotte vs Shiplight
A side-by-side look at the Charlotte and Shiplight MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Charlotte for browser automation work as a local process; choose Shiplight for browser automation. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose Charlotte when
- You need dedicated capabilities in the Browser Automation domain.
- You prefer a local stdio subprocess transport.
- You want tools like
charlotte_navigate, charlotte_back, charlotte_forward.
SChoose Shiplight when
- You need dedicated capabilities in the Browser Automation domain.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | S Shiplight | |
|---|---|---|
| Category | Browser Automation | Browser Automation |
| Quality signal | 68/100 · Great | 36/100 · Fair |
| Install command | Confirmed | Not confirmed yet |
| Transport | Local subprocess (stdio) | — |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 183 | — |
| Directory activity | 2 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 23 | Not listed |
| Full listing | View Charlotte | View Shiplight |
Tools & capabilities
Charlotte tools 23
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_backNavigate back in browser history. Returns page representation after navigation.charlotte_forwardNavigate forward in browser history. Returns page representation after navigation.charlotte_reloadReload the current page. Returns page representation after reload.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/input is which).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.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_screenshotsList all saved screenshot artifacts. Returns metadata for each saved screenshot including ID, filename, page URL, and timestamp.charlotte_screenshot_getRetrieve a previously saved screenshot artifact by its ID. Returns the image data and metadata.charlotte_screenshot_deleteDelete a saved screenshot artifact by its ID. Removes the file from disk.charlotte_diffCompare current page state to a previous snapshot. Returns structural diff showing added, removed, moved, and changed elements.charlotte_clickClick an interactive element on the page. Returns full page representation after the click.- +11 more on the listing page
Shiplight tools
No tool names declared yet. Check the project README from the listing page.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
Charlotte
{
"mcpServers": {
"charlotte": {
"command": "npx",
"args": [
"@ticktockbent/charlotte"
]
}
}
}
Shiplight
No confirmed install command for Shiplight yet — follow the setup steps linked from its listing page rather than a guessed package name.