Skip to main content
Glama

novada_browser

Control a web browser to click, type, scroll, take screenshots, and run JavaScript. Chain up to 20 actions per call for login flows, form submission, or scraping interactive pages.

Instructions

Use when you need to interact with a web page — click buttons, fill forms, scroll, take screenshots, or execute JavaScript. Chain multiple actions in one call for efficiency.

Best for: Login flows, paginated content, interactive SPAs, form submission, visual verification, scraping behind user interactions. Not for: Simple page reading (use novada_extract), structured data (use novada_scrape), raw HTML (use novada_unblock). Actions: navigate, click, type, screenshot, aria_snapshot, evaluate, wait, scroll, hover, press_key, select — up to 20 per call. Sessions: Pass session_id to maintain state (cookies, login) across multiple calls. Sessions expire after 10 min of inactivity. Use close_session to release early. Requires: NOVADA_BROWSER_WS environment variable. Platform note: TikTok is geo-restricted in some regions — pass country="us" in actions that support it. Use wait with domcontentloaded (never networkidle) for SPAs. Constraint: close_session and list_sessions must be the only action in the call — they cannot be combined with other actions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionsYesArray of browser actions to execute sequentially. Max 20 per call. Each action MUST use the discriminated union format: {action: "<type>", ...fields}. Examples: {action: "navigate", url: "https://example.com"} | {action: "click", selector: "#btn"} | {action: "type", selector: "#input", text: "hello"} | {action: "wait", ms: 2000} | {action: "screenshot"} | {action: "aria_snapshot"}. Do NOT use string format ("navigate") or object-key format ({navigate: "url"}) — both are invalid.
countryNoISO 2-letter country code for browser exit node (e.g. 'us', 'gb'). Required for platforms with geo-restrictions (TikTok is banned in India — use country='us'). Omit for no targeting.
timeoutYesTotal timeout for all actions in ms. Default 60000.
session_idNoOptional session ID for persistent browser state across calls. Reuses the same browser page (cookies, localStorage, login state). Warm reuse is ~5x faster (~1.5s vs ~8s cold start). Sessions expire after 10 minutes of inactivity.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-readonly, non-destructive, non-idempotent, open-world. Description adds critical behavioral details: session expiration (10 min), environment variable requirement, and action constraints. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-organized with bullet points and clear sections. Each sentence adds value; no fluff. It front-loads the main use case and efficiently covers actions, sessions, and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers actions, sessions, constraints, platform notes, and environmental requirements. Missing output description (e.g., what screenshot returns), but the tool is complex and the description is fairly thorough. Could add return value hints for each action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with detailed descriptions for all parameters. Description adds extra context like chaining actions, max 20 actions, session reuse speed benefits, but the schema already explains each param well. The description adds value beyond schema but not dramatically.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's purpose: 'interact with a web page — click buttons, fill forms, scroll, take screenshots, or execute JavaScript.' It lists specific actions and explicitly distinguishes from siblings (novada_extract, novada_scrape, novada_unblock), making it unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit 'Best for:' and 'Not for:' sections with sibling tool names. Also includes platform-specific guidance (TikTok geo-restrictions, SPA wait strategies) and constraint that close_session/list_sessions must be alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/NovadaLabs/novada-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server