wraith-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HEADLESS | No | Set to 'true' to run browser headless. Default is false. | |
| OLLAMA_MODEL | No | Ollama model name for local fallback. | |
| PROXY_SERVER | No | Proxy server URL (e.g., 'http://proxy:8080'). | |
| BROWSER_LOCALE | No | Browser locale (e.g., 'en-US'). | |
| GOOGLE_API_KEY | No | Google Gemini API key for fallback autonomous tools. | |
| OPENAI_API_KEY | No | OpenAI API key for fallback autonomous tools. | |
| OPENAI_BASE_URL | No | Base URL for OpenAI-compatible API (e.g., DeepSeek, Groq, Together). | |
| BROWSER_TIMEZONE | No | Browser timezone (e.g., 'America/New_York'). | |
| BROWSER_VIEWPORT | No | Viewport dimensions (e.g., '1280x720'). | |
| ANTHROPIC_API_KEY | No | Anthropic API key for fallback autonomous tools. | |
| BROWSER_USE_MODEL | No | Override the default model or provide a sampling model hint. | |
| BROWSER_TRACES_DIR | No | Path to save traces. | |
| OPENROUTER_API_KEY | No | OpenRouter API key for fallback autonomous tools. | |
| BROWSER_PERMISSIONS | No | Comma-separated permissions to grant. | |
| BROWSER_TASK_TIMEOUT | No | Task timeout in seconds (default 120). | |
| BROWSER_STORAGE_STATE | No | Path to a file to restore cookies and localStorage from. | |
| BROWSER_USER_DATA_DIR | No | Path to browser user data directory. | |
| BROWSER_DOWNLOADS_PATH | No | Path to save downloads (default './downloads'). | |
| BROWSER_ALLOWED_DOMAINS | No | Comma-separated list of allowed domains. | |
| BROWSER_RECORD_HAR_PATH | No | Path to save HAR file. | |
| BROWSER_RECORD_VIDEO_DIR | No | Path to record video. | |
| BROWSER_BLOCK_IP_ADDRESSES | No | Set to 'true' to block direct IP navigation. | |
| BROWSER_PROHIBITED_DOMAINS | No | Comma-separated list of prohibited domains. | |
| BROWSER_WAIT_BETWEEN_ACTIONS | No | Wait time between actions in seconds. | |
| BROWSER_MINIMUM_WAIT_PAGE_LOAD_TIME | No | Minimum wait time for page load in seconds. | |
| BROWSER_WAIT_FOR_NETWORK_IDLE_PAGE_LOAD_TIME | No | Wait time for network idle in seconds. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browseA | Execute a browser task described in natural language. The AI agent navigates and interacts with pages automatically. Resilient to site layout changes — no CSS selectors needed. Args: task: What to do, e.g. "Search for 'AI news' and return top 3 results" url: Optional starting URL to navigate to first max_steps: Maximum interaction steps (capped at 50) session_id: Optional session ID to reuse an existing browser session |
| extractA | Extract structured data from a webpage using natural language. Args: url: Target URL data_description: What to extract, e.g. "all product names and prices in JSON" max_steps: Maximum interaction steps (capped at 50) session_id: Optional session ID to reuse an existing browser session |
| close_sessionC | Close a persistent browser session. Args: session_id: The session ID returned when the session was created |
| list_sessionsA | List active persistent browser session IDs. |
| close_all_sessionsA | Close all active persistent browser sessions. |
| save_storage_stateA | Save a session's cookies + localStorage (auth state) to a JSON file. The file holds live authentication secrets — store it securely and never commit it. Restore it by setting BROWSER_STORAGE_STATE= before the session starts. Args: session_id: An existing session ID (create one via browse/extract with session_id) path: File path to write the storage-state JSON to |
| tabsA | Manage browser tabs within a persistent session. Args: session_id: An existing session ID action: One of "list", "open", "close" url: URL to open (action="open"; validated http/https) target_id: Tab target_id to close (action="close"; from action="list") |
| navigateA | Open a URL and return a snapshot of the page's interactive elements. Keyless — the calling AI drives the browser directly, with no server-side LLM. Follow up with snapshot/click/type_text/scroll/press_key to interact, and get_content to read the page as markdown. Stealth (Patchright) is applied. Args: url: URL to open (http/https only) session_id: Persistent session to use (default: "default") |
| snapshotA | Return the current page's interactive elements as Pass an index to click/type_text. Re-run after the page changes. Args: session_id: Session to inspect (default: "default") |
| clickA | Click the element with the given index (from snapshot). Returns a new snapshot. Args: index: Element index from snapshot session_id: Session to act on (default: "default") |
| type_textA | Type text into the element with the given index. Returns a new snapshot. Args: index: Element index from snapshot text: Text to type session_id: Session to act on (default: "default") |
| scrollA | Scroll the page, then return a new snapshot. Args: direction: up, down, left, or right amount: pixels to scroll (default 500) session_id: Session to act on (default: "default") |
| press_keyA | Press a key or chord (e.g. "Enter", "Control+a"), then return a new snapshot. Args: keys: Key or chord to send session_id: Session to act on (default: "default") |
| get_contentB | Return the current page as clean markdown (no LLM, no screenshot). Args: session_id: Session to read (default: "default") |
| list_downloadsA | List files downloaded in this session, with their paths. Files are saved to ./downloads by default (override with BROWSER_DOWNLOADS_PATH). Call this after a click/navigate that triggers a download to find the saved file. Args: session_id: Session to inspect (default: "default") |
| screenshotA | Take a screenshot of a webpage and return it as base64-encoded PNG. Keyless — navigates and captures directly, no LLM. Args: url: URL to screenshot full_page: Capture the full scrollable page (default: visible viewport only) |
| pdfA | Render a webpage to PDF and return it as a base64-encoded PDF. Keyless — navigates and renders directly, no LLM. Headless only (Chromium prints PDF only in headless mode). Args: url: URL to render |
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/Koreahwan/wraith-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server