Charlotte
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| charlotte_navigateA | Load 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_backA | Navigate back in browser history. Returns page representation after navigation. |
| charlotte_forwardA | Navigate forward in browser history. Returns page representation after navigation. |
| charlotte_reloadA | Reload the current page. Returns page representation after reload. |
| charlotte_observeA | Get 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_findA | Search 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_screenshotA | Capture 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_screenshotsA | List all saved screenshot artifacts. Returns metadata for each saved screenshot including ID, filename, page URL, and timestamp. |
| charlotte_screenshot_getA | Retrieve a previously saved screenshot artifact by its ID. Returns the image data and metadata. |
| charlotte_screenshot_deleteA | Delete a saved screenshot artifact by its ID. Removes the file from disk. |
| charlotte_diffA | Compare current page state to a previous snapshot. Returns structural diff showing added, removed, moved, and changed elements. |
| charlotte_clickA | Click an interactive element on the page. Returns full page representation after the click. |
| charlotte_click_atA | Click 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_typeA | Type text into an input element. Returns full page representation after typing. |
| charlotte_selectA | Select an option in a select/dropdown element. Returns full page representation after selection. |
| charlotte_toggleA | Toggle a checkbox or switch element. Returns full page representation after toggle. |
| charlotte_submitB | Submit a form. Can submit by form ID or by clicking its submit button. Returns full page representation after submission. |
| charlotte_scrollA | Scroll the page or a specific container. Returns full page representation after scrolling. |
| charlotte_tabsA | List all open browser tabs with their URLs, titles, and active status. |
| charlotte_tab_openA | Open a new browser tab. Optionally navigate to a URL. The new tab becomes the active tab. |
| charlotte_tab_switchA | Switch to a different browser tab by its tab ID. Returns the page representation of the activated tab. |
| charlotte_tab_closeA | Close a browser tab by its ID. If the closed tab was active, switches to the first remaining tab. |
| charlotte_toolsA | Manage 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TickTockBent/charlotte'
If you have feedback or need assistance with the MCP directory API, please join our Discord server