novada-mcp
OfficialThe Novada MCP server is a comprehensive web data platform offering 22+ tools across these categories:
Search & Research
Web Search: Search across 5 engines (Google, Bing, DuckDuckGo, Yahoo, Yandex) with filters for date, domain, country, and language.
Multi-Source Research: One call triggers 3–10 parallel searches, deduplicates results, extracts content, and returns a cited synthesized report.
Fact Verification: Check claims against live web sources with verdicts (supported/unsupported/contested/insufficient data).
AI Brand Monitoring: Monitor brand mentions across AI platforms (ChatGPT, Perplexity, Claude, Gemini, Grok).
Content Extraction & Crawling
Extract: Clean content (markdown, JSON, HTML) from any URL (batch up to 10), with automatic anti-bot handling (Cloudflare, DataDome, Kasada).
Crawl: BFS/DFS crawl up to 20 pages with path filtering and content extraction.
Map: Discover URLs via sitemap or BFS without downloading content.
Unblock: Force JS rendering or full browser CDP to get raw HTML from bot-protected pages.
Monitor: Detect field-level page changes over time (e.g., price drops, availability).
Structured Scraping
Platform Scraping: Structured data from 129+ platforms (Amazon, LinkedIn, TikTok, GitHub, YouTube, Instagram, Reddit, Zillow, etc.).
Async Scraping: Submit, poll, and retrieve async scraping tasks.
Proxy Network
Route requests through residential, ISP, datacenter, mobile, static, or dedicated proxies across 195 countries with sticky session support.
Create and manage proxy sub-accounts with data caps.
Browser Automation
Browser: Full cloud browser interaction via CDP — navigate, click, type, scroll, screenshot, evaluate JS, hover, manage sessions.
Browser Flows: Multi-step automation sequences with persistent session state.
Account & Operations
Health checks, tool discovery, environment setup, wallet balance, usage history, per-product quotas, daily traffic analytics, capture logs, and a unified account dashboard.
Extract structured product data (title, price, rating, reviews, BSR, availability) from Amazon product pages via novada_scrape.
Web search engine used by novada_search tool for performing searches.
Extract repository data (stars, forks, issues, description, languages) from GitHub via novada_scrape.
Extract reviews, ratings, and salary data from Glassdoor company pages via novada_scrape.
Web search engine used by novada_search tool for performing searches.
Extract profile data (posts, followers, engagement) from Instagram via novada_scrape.
AI brand monitoring tool to check how Perplexity mentions your brand via novada_ai_monitor.
Extract posts, scores, comments, and timestamps from Reddit subreddits via novada_scrape.
Extract video stats, engagement, and profile data from TikTok via novada_scrape.
Supported as a hard target for scraping with automatic anti-bot bypass via novada_scrape.
Extract video titles, views, duration, and channel data from YouTube via novada_scrape.
Extract property data (price, beds, baths, sqft, Zestimate) from Zillow via novada_scrape.
Novada MCP
One MCP server for the entire live web. Search, extract, scrape, crawl, proxy, browser automation, and AI-powered research — behind a single hosted connection, or one local install if you'd rather run it yourself.
[screenshot: Novada connected in an MCP client, tool list visible]
Quickstart · Get your key · How to choose a tool · Why Novada · Repository layout · Links

✅ Works with any MCP client — Claude, Cursor, Windsurf, VS Code, or | 🎯 15 typed per-platform scrapers — Amazon, Google, LinkedIn, TikTok, … each a closed |
🎁 $10 free credits — no credit card needed — up to 1,000 calls/month | ⚡ Hosted-first, zero install — point at one URL, or self-host in one command |
Quickstart
Novada is hosted-first — there's nothing to install. Point your client at the hosted URL and you're done.
Security note: the hosted URL contains your API key in the
?token=parameter — treat it like a password. Never share it, never post it publicly, and never configure it as a shared or organization-level connector.
claude.ai (web)
Go to Settings → Connectors → Add custom connector.
Name it
Novada.Paste the URL (contains your key — see security note above):
https://mcp.novada.com/mcp?token=YOUR_KEYClick Add.
Claude Code
claude mcp add --transport http novada "https://mcp.novada.com/mcp?token=YOUR_KEY"Full per-client install (Cursor/Windsurf/VS Code + local self-host) → npm-package/README.md.
Try it
novada_setup() — validates your key, shows balance
novada_search({query: "Claude MCP tutorials"}) — web search
novada_extract({url: "https://example.com"}) — read any URL
novada_research({question: "how do MCP servers work?"}) — parallel multi-source research[screenshot: agent calling novada_search and returning results]
Related MCP server: open-search-mcp
Get your key
Sign up at novada.com — no credit card required.
Copy your API key from novada.com.
You start with $10 in free credits, capped at 1,000 calls/month. Check what's left any time with
novada_account({section: "balance"})ornovada_setup().
How to choose a tool

These are the tools you reach for most:
Tool | Use it when |
| First run — validate your key and see your balance. Start here. |
| Find pages by query (google / duckduckgo / yandex; time, domain, geo filters). |
| Read one known URL — or up to 10 in parallel — through anti-bot pages. |
| Answer a complex question — parallel multi-source search + extraction in one call. |
| Structured records from 16 platforms (Amazon, LinkedIn, TikTok, …). Plus 15 typed per-platform tools — |
| Pull content from a bounded set of related pages (≤20) on one site. |
| Discover what URLs exist on a site before fetching. |
| Interact with a page — click, type, screenshot, run JS. |
| Route your own HTTP client through a specific IP type / country / session. |
Not sure? Call novada_discover and it returns the full catalog with each tool's status.
📚 Full reference — all 38 tools →
38 tools across 6 categories. Self-host (npx novada-mcp) exposes all 38. The hosted default surface (mcp.novada.com) exposes 30 — the same registry minus 8 tools that don't apply to a stateless serverless endpoint: novada_browser_flow (needs a persistent browser session), novada_site_copy (writes files to disk), novada_ip_whitelist / novada_static_ip_mgmt / novada_capture_apikey (write-gated account ops), novada_session_stats / novada_search_feedback (per-process in-memory state), and novada_verify — it is core-derived, not a hand-curated subset. Call novada_discover on your connection to see exactly what's available on it.
Why Novada
15 dedicated per-platform scrapers.
novada_scrape_amazon,_google,_bing,_duckduckgo,_yandex,_youtube,_instagram,_facebook,_tiktok,_x,_walmart,_shein,_linkedin,_github,_perplexity— each exposes a closed, typedoperationenum scoped to that platform instead of the genericnovada_scrape's openplatform+operationstring pair, so an agent can't guess an invalid operation for the wrong platform.Honest tool surface. Every listed
operationis verified-working — operations we can't currently deliver are marked and excluded, not left in to fail on you mid-task.Contract-tested self-report. Tool descriptions are tested against actual behavior, not just written and forgotten — what a tool claims to return is checked against what it actually returns.
Drift-guarded tool registry.
npm-package/src/tools/registry.tsis the single source of truth for the tool catalog; a test asserts the registered tools, the wired tools, and thenovada_discoveroutput can never diverge.confirm:truewrite-gate. Every mutating tool (proxy sub-account creation, IP whitelist changes, static IP purchases, capture-key resets) requires an explicit two-step confirmation — no silent writes.Callable onboarding.
novada_discoverandnovada_setupare tools your agent can call itself to find the right tool or validate a key, without ever reading this README.
Repository layout
This is a monorepo with two artifacts:
npm-package/— thenovada-mcpnpm package. Local stdio MCP server (npx novada-mcp); source of truth for all tool logic.hosted-server/— what runs athttps://mcp.novada.com. An HTTP wrapper (auth, quota, rate-limit) on Vercel around the npm package's built output.
Full architecture map (entrances, dispatch core, where-does-X-live) → ARCHITECTURE.md; contributor routing → CONTRIBUTING.
Links
Website: novada.com
Get an API key: novada.com
Sign up (free): novada.com
GitHub: github.com/NovadaLabs/novada-mcp
License
MIT
Available Tools
34 toolsnovada_account_summaryARead-onlyIdempotent
Single-call account dashboard. Calls wallet_balance + plan_balance_all + capture_logs (last 5 rows) in PARALLEL and returns a unified headline + per-section detail.
Best for: "What's my Novada account status?" / "How much do I have left?" / one-shot health snapshot.
Returns: headline (one-line human summary), sections.{wallet,plans,capture_recent} (raw per-tool output), agent_instruction (next-step hint — e.g. "all plans expired, buy at dashboard").
Why not 3 calls: Halves round-trip cost for the most common account-status query. Plans section already includes derived expired/expires_at_human and unavailable_products so agents don't compute timestamps.
Auth: NOVADA_DEVELOPER_API_KEY (falls back to NOVADA_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, which are consistent with the description. The description adds valuable behavioral details: parallel execution of three internal tools, derived fields (expired/expires_at_human, unavailable_products), and the return structure (headline, sections, agent_instruction). No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: purpose, best-for scenarios, return structure, rationale for combining calls, and authentication. Every sentence adds necessary context, and the length is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description fully explains the tool's behavior, including the aggregated output format (headline, sections, agent_instruction) and the derived fields. It also covers authentication fallback. All necessary context for an agent to invoke and use the tool correctly is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to explain parameter meaning. It implicitly conveys that no input is required. The baseline for zero-parameter tools is 4, and the description adds value by explaining what the tool does with its implicit inputs (auth tokens).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a 'single-call account dashboard' that aggregates wallet, plan, and capture data. It explicitly answers the purpose: 'What's my Novada account status?' and distinguishes itself from sibling tools like novada_wallet_balance and novada_plan_balance_all by combining them into one call with parallel execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit best-for scenarios ('What's my Novada account status?', 'How much do I have left?', 'one-shot health snapshot') and explains why it is better than making three separate calls (halves round-trip cost). Also mentions authentication requirements and fallback behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_ai_monitorARead-onlyIdempotent
Use when you need to check how AI models (ChatGPT, Perplexity, Grok, Claude, Gemini) reference a brand or product. Searches each AI platform's indexed content for brand mentions, analyzes sentiment, extracts claims, and identifies competitor mentions.
Best for: Brand monitoring across AI search engines, competitive positioning analysis, detecting how AI recommends or compares your product. Not for: General web search (use novada_search), real-time social monitoring (use novada_scrape with twitter/reddit). Output: Per-model sentiment (positive/neutral/negative), key claims, competitor mentions, source URLs. Models supported: chatgpt, perplexity, grok, claude, gemini. Default checks: chatgpt, perplexity, grok.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | Yes | Brand or product name to monitor across AI models. E.g. 'novada', 'firecrawl', 'stripe'. | |
| models | No | AI models to check. Options: 'chatgpt', 'perplexity', 'grok', 'claude', 'gemini'. Default: ['chatgpt', 'perplexity', 'grok']. | |
| topics | No | Topic filters to narrow the search. E.g. ['pricing', 'comparison', 'recommendation']. Default: general brand mentions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds meaningful behavioral context like analyzing sentiment, extracting claims, identifying competitor mentions, and listing output components. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (Best for, Not for, Output, Models supported). No redundant sentences; every line adds value. Front-loaded with purpose and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Input parameters fully documented. No output schema, but description covers output components (sentiment, claims, competitor mentions, source URLs). Could mention pagination or limits, but not critical for this use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description repeats model list and output expectations but doesn't add new semantics beyond the schema descriptions. Topics parameter remains generic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool monitors AI model references for a brand, with specific verbs 'check how AI models reference'. Explicitly distinguishes from sibling tools like novada_search and novada_scrape in the 'Not for' section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use ('Use when you need to check how AI models...'), best-for, and not-for sections with specific tool alternatives (novada_search, novada_scrape), giving clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_browserA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| actions | Yes | Array 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. | |
| country | No | ISO 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. | |
| timeout | Yes | Total timeout for all actions in ms. Default 60000. | |
| session_id | No | Optional 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. |
TDQS
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.
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.
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.
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.
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.
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.
novada_browser_flowA
Execute multi-step browser automation with Novada's cloud browser. Use for JS-heavy sites, login flows, or multi-page sequences.
Best for: Automating sequences of clicks, form fills, scrolls, and screenshots on a single page or across a multi-step flow. Maintains session state across calls when session_id is provided. Actions: click, scroll, wait, type, screenshot — up to 20 per call. Sessions: Pass session_id to reuse the same browser instance across calls (preserves cookies, login state). Sessions expire after 10 minutes of inactivity. Fallback: If this tool fails, use novada_browser — it uses CDP directly and supports more action types (navigate, aria_snapshot, evaluate, hover, press_key, select). Not for: Single URL reading without interaction (use novada_extract or novada_unblock), structured platform data (use novada_scrape).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to open in the cloud browser. Must be a publicly accessible HTTP/HTTPS URL. | |
| actions | Yes | Ordered sequence of browser actions to execute. Each action has a type and optional selector/value/delay. | |
| country | Yes | Optional 2-letter ISO 3166-1 country code for geo-targeting the browser session (e.g. 'us', 'gb', 'de'). | |
| session_id | No | Optional session ID for sticky sessions. When provided, the same browser session is reused across calls — preserving cookies, login state, and localStorage. Sessions expire after 10 minutes of inactivity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: session expiration (10 min), action limit (20 per call), and that sessions preserve state. While annotations indicate non-destructive and non-idempotent behavior, the description clarifies operational 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Best for, Actions, Sessions, Fallback, Not for). It is concise with no wasted words, yet covers all essential information for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description adequately covers use cases, constraints (action limit, session expiry), and fallback. It could mention the return format, but given the complexity and the presence of sibling tools for comparison, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by summarizing action types and explaining session_id usage, which goes beyond the schema's property descriptions. This helps agents understand the tool's capabilities beyond raw parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Execute' and the resource 'multi-step browser automation with Novada's cloud browser'. It specifies use cases like JS-heavy sites, login flows, and multi-page sequences, distinguishing it from siblings such as novada_browser, novada_extract, and novada_scrape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Best for', 'Not for', and 'Fallback' sections provide direct guidance on when to use this tool and when to use alternatives. It also details session reuse and expiration, giving agents clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_capture_logsARead-only
Paginated capture-task logs. Wraps developer-api POST /v1/capture/logs.
Best for: Auditing what was captured, debugging failed capture jobs. Params: start_time/end_time (YYYY-MM-DD, optional — emits both start_time AND strat_time), page, page_size (max 200), status filter. Auth: NOVADA_DEVELOPER_API_KEY (falls back to NOVADA_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| start_time | No | Inclusive start date YYYY-MM-DD. Tool emits both start_time AND strat_time (server typo compat). | |
| end_time | No | Inclusive end date YYYY-MM-DD. | |
| page | Yes | ||
| page_size | Yes | ||
| status | No | Filter by capture task status. | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds behavioral details: it wraps a POST endpoint, supports pagination with 'page' and 'page_size' (max 200), and reveals a server-side typo compatibility where 'start_time' also emits 'strat_time.' No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five lines: three sentences and a bullet list. The first sentence clearly states the tool's purpose. Every line adds value—purpose, usage, parameters, auth—without unnecessary fluff. Could be slightly more streamlined, but it's well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (2 required), pagination, a status filter, and no output schema, the description covers purpose, usage, parameter details (including a known bug), auth fallback, and pagination limits. It is complete enough for an agent to use effectively, though response format is not described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% (3 of 5 params have descriptions). The description supplements the schema by listing all parameters, noting date formats (YYYY-MM-DD), the 'strat_time' bug, pagination max (200), and status filter options. This adds meaningful context beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'Paginated capture-task logs' and specifies its use for 'auditing what was captured, debugging failed capture jobs.' It also mentions the underlying API endpoint, distinguishing it from sibling tools that focus on scraping, proxies, or other non-log actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with 'Best for: Auditing what was captured, debugging failed capture jobs.' It also notes the optional parameters and auth fallback. While it doesn't explicitly state when not to use the tool, the guidance is sufficient for an agent to determine appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_crawlARead-only
Use when you need content from multiple pages of a site and don't have the URLs yet. Crawls BFS or DFS up to 20 pages, extracts content from each. Use select_paths regex to target specific sections (e.g. "/docs/api/.*").
Best for: Doc site ingestion, competitive content analysis, building knowledge bases from a domain. Not for: A single page (use novada_extract), URL discovery without content extraction (use novada_map — much faster).
Common mistakes:
Do NOT set max_pages > 10 for large sites — crawl time scales linearly (~1.4s/page). At max_pages=20, expect 28s minimum.
Do NOT use novada_crawl to fetch one page — use novada_extract which is faster and simpler.
Use select_paths to restrict to relevant URL patterns before setting max_pages high.
When to use:
You need content from multiple pages on one domain (e.g., all /docs/* pages).
You need BFS discovery of related content under a path prefix.
Not for:
Single-URL extraction — use novada_extract.
Finding all URLs on a site without downloading content — use novada_map.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| max_pages | Yes | ||
| strategy | Yes | Crawl traversal order. 'bfs' (default): breadth-first — visits all pages at current depth before going deeper, good for broad discovery. 'dfs': depth-first — follows links deeply before backtracking, good for exploring specific paths. | bfs |
| instructions | No | Natural language hint for which pages to prioritize. E.g. 'only API reference pages', 'skip blog and changelog'. Applied as path-level filtering; semantic filtering is agent-side. | |
| select_paths | No | Regex patterns to restrict crawled URL paths. E.g. ['/docs/.*', '/api/.*']. | |
| exclude_paths | No | Regex patterns for URL paths to skip entirely. E.g. ['/blog/.*', '/changelog/.*']. | |
| format | Yes | Output format. 'markdown': human-readable (default). 'json': structured object for programmatic agent use. | markdown |
| render | Yes | Rendering mode. 'auto': uses static, escalates to render on first JS-heavy page detection. 'static': always static. 'render': always render (slower, handles JS sites). | auto |
| limit | No | Alias for max_pages — use max_pages for the canonical name. Max 20. | |
| mode | No | Alias for strategy — use strategy for the canonical name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral details beyond annotations: crawl time scaling (~1.4s/page), minimum 28s at max_pages=20, and that instructions are path-level filtering. Annotations already indicate safe read (readOnlyHint=true) and open world, so good complement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Best for, Not for, Common mistakes, When to use). Every sentence adds value, no fluff, front-loaded with key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description and parameter descriptions for 'format' cover return format. The tool's complexity is addressed with usage advice and performance caveats, making it complete for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so schema already documents most parameters. The tool description adds some usage tips (e.g., not to exceed 10 pages for large sites) but doesn't significantly expand parameter semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool description clearly states it crawls multiple pages from a site using BFS/DFS up to 20 pages. It specifies use cases like doc site ingestion and contrasts with siblings novada_extract and novada_map, making its purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides 'Best for' and 'Not for' sections, including alternatives like novada_extract and novada_map. Lists common mistakes and when to use, offering clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_discoverARead-onlyIdempotent
List all available Novada tools with name, description, category, and status (active/todo).
agent_instruction: Call this first to see all available Novada tools and capabilities — especially useful when starting a new task and you need to find the right tool. Returns: Markdown table grouped by category — Content Retrieval, Scraping & Verification, Proxy, Browser & Rendering, Health & Discovery, Auth. Filter: Pass category to narrow to a specific group (e.g. category="Proxy" to see all proxy tools). Status legend: active = available now; todo = planned but not yet implemented.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Optional category filter. One of: 'Content Retrieval', 'Scraping & Verification', 'Proxy', 'Browser & Rendering', 'Health & Discovery', 'Auth'. Omit to list all tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent. Description adds return format (Markdown table), grouping, and status legend, enhancing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections (agent_instruction, Returns, Filter, Status legend). Slightly verbose but clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description explains return format and status legend. Single optional param with full coverage. Complete for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with enum and description. Description adds value by explaining omitting lists all, and using filter to narrow. Provides usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all available Novada tools with name, description, category, and status. It distinguishes from siblings by being a discovery tool, while siblings are specific actions like scraping or monitoring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call first for new tasks to find the right tool. Mentions filtering by category. No explicit when-not, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_extractARead-onlyIdempotent
Extract clean content from any URL. Handles Cloudflare, DataDome, Kasada automatically via auto-escalation (static → JS render → Browser CDP). Batch mode: pass url as array for up to 10 pages in parallel.
Use for: Reading pages, batch-extracting search results, pulling structured fields (price, author, date). Works on anti-bot pages automatically. Not for: URL discovery (novada_map), multi-page crawl (novada_crawl), platform data like Amazon/LinkedIn (novada_scrape is richer). Key rule: Leave render="auto" (default). Only set render="render" for known JS-heavy SPAs. Auto mode is 15-100x faster on static sites.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL or array of URLs (max 10) to extract. Batch mode processes in parallel. For multiple URLs, use the urls array param instead. | |
| urls | No | Array of URLs to extract in parallel (max 10). Alias for url when passing multiple URLs. Use for batch research workflows extracting from several pages in one call. Returns a structured markdown document with one labeled section per URL (### [1/N] url). Single url param still returns a single markdown document. | |
| format | Yes | Output format. 'markdown' (default): structured readable output. 'text': plain text. 'html': raw HTML (truncated at 10K). 'json': structured JSON object with typed fields — best for programmatic agent consumption. | markdown |
| query | No | Optional query for relevance context. Helps the calling agent focus on relevant sections. | |
| render | Yes | Rendering mode. 'auto' (default): tries static first, escalates if JS-heavy. 'static': static HTML only. 'js' (or 'render'): force JS rendering via Web Unblocker. 'browser': force Browser API CDP (requires NOVADA_BROWSER_WS). | auto |
| fields | No | Specific fields to extract (e.g. ['price', 'author', 'availability', 'rating']). Returns a structured ## Requested Fields block. JSON-LD structured data is checked first; falls back to pattern matching. | |
| max_chars | No | Maximum characters to return (default: 25000, max: 100000). When content exceeds this limit, it is truncated and a notice is appended. Common mistake: do not set max_chars=100000 by default — use 25000 for most pages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only, idempotent, and non-destructive. Description adds context: auto-escalation mechanism (static -> JS -> Browser CDP), batch parallelism for up to 10 URLs, and performance notes (auto is 15-100x faster). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with headings, bullet points, and key rules. Every sentence adds value. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description explains all return formats (markdown, text, html, json) and the structured markdown document for batch. All 7 parameters are adequately described, including edge cases like max_chars truncation. For a complex extraction tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds significant value: explains the alias relationship between url and urls, describes the structured batch output format, warns about max_chars default, and clarifies render modes beyond enum values. For fields, it explains the extraction order (JSON-LD first, then pattern matching).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with a clear verb+resource: 'Extract clean content from any URL.' It explicitly distinguishes from sibling tools (novada_map, novada_crawl, novada_scrape) by contrasting their purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Has explicit 'Use for:' and 'Not for:' sections listing specific use cases and alternatives. Provides a key rule about leaving render='auto' and when to override, which guides correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_healthARead-onlyIdempotent
Check which Novada API products are active on your API key.
Best for: First-time setup, diagnosing why a tool is failing, confirming your account has the right products activated. Returns: Status table for Search, Extract, Scraper API, Proxy, and Browser API — with activation links for anything not yet enabled.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, so no contradiction. Description adds value by specifying the return type (status table with activation links), which is beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two sentences plus a bullet point for returns. All information is front-loaded and succinct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, output schema, or complex behavior, the description is fully complete. It clearly explains purpose, use cases, and output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, baseline 4. Description doesn't need to add parameter info, but it implies the tool uses the API key contextually.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Check' and resource 'which Novada API products are active'. It distinguishes from sibling tools by focusing on account-level health and first-time setup, not a specific product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists best use cases: first-time setup, diagnosing failures, confirming account activation. No explicit alternatives, but the context of siblings implies when to use other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_health_allARead-onlyIdempotent
Extended health check that tests ALL Novada product endpoints in parallel and returns detailed per-product status.
agent_instruction: Call this when novada_health shows an issue and you need per-product details, or when setting up Novada for the first time and want to confirm every product is reachable. Returns: Per-product table — product | status | latency | notes — covering Search, Extract, Scraper, Proxy, Browser, and Unblock APIs. Degraded mode: If one product probe fails, all others still return — never hard-fails. Activation links: Any PRODUCT_UNAVAILABLE result includes a direct link to activate that product on your dashboard. Difference from novada_health: This tool tests 6 products (vs 5), includes the Unblock API probe, and provides richer notes per product.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behaviors beyond annotations: degraded mode (one probe failure does not hard-fail the whole check), returns per-product table with latency and notes, and provides activation links for unavailable products. Annotations only indicate read-only and idempotent; description adds rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bold headings and bullet points. It is front-loaded with the core purpose, then uses clear sections for agent instruction, returns, degraded mode, activation links, and difference from sibling. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no parameters and no output schema, the description fully covers what the agent needs to know: return format, error handling behavior, activation links, and comparison to sibling. It is complete for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so baseline is 4. The description adds no parameter-level detail because none exist, but it explains the tool's output and behavior, which is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Extended health check that tests ALL Novada product endpoints in parallel and returns detailed per-product status.' It also explicitly distinguishes from its sibling 'novada_health' by noting it tests 6 products (including Unblock API) instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an agent instruction: 'Call this when novada_health shows an issue and you need per-product details, or when setting up Novada for the first time and want to confirm every product is reachable.' It also details the difference from novada_health, helping the agent choose the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_mapARead-onlyIdempotent
Use when you need to know what URLs exist on a site before deciding what to read. Tries sitemap.xml first (fast), falls back to BFS crawl. Returns URL list only — no content.
Best for: Site structure discovery, finding the correct subpage URL when you extracted the wrong page. Not for: Reading page content (follow with novada_extract or novada_crawl). Note: Limited results on JavaScript SPAs — will flag this in output.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| search | No | ||
| limit | Yes | ||
| include_subdomains | Yes | ||
| max_depth | Yes | Link-hops from root to follow. Default 2. Higher = more pages found but slower. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral details beyond annotations: fallback mechanism from sitemap to BFS crawl, output format (URL list only), and limitation on JavaScript SPAs with a flag. Annotations already declare read-only and idempotent, consistent with description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single paragraph and bullet points, no redundant text. Structure is clear: usage context, best for, not for, and a note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage guidance, behavioral details, and limitations. No output schema, but description mentions output format. Could add more on return structure or error handling, but sufficient for a URL-discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (20%), and the description does not explain individual parameters like search, limit, or include_subdomains in detail. However, the overall purpose and behavior context somewhat compensate, and simple parameters like url and limit are self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to discover URLs on a site using sitemap or BFS crawl, returning only a URL list. It distinguishes itself from siblings like novada_extract and novada_crawl.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Best for' and 'Not for' sections provide clear guidance on when to use (site structure discovery, finding correct subpage) and when not to (reading page content), with alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_monitorARead-onlyIdempotent
Detect changes on a web page over time. Extracts content, computes a hash, compares with previous check. Returns changed/unchanged + field-level diffs.
Use for: E-commerce price monitoring, stock availability tracking, content change detection, competitive pricing alerts. How: First call = baseline. Subsequent calls compare against baseline and report changes. Pass fields=["price","availability"] for field-level diffs with % change. Session-scoped: State lives in memory for the MCP session duration. Not persisted across restarts. Not for: One-time extraction (novada_extract), full crawl (novada_crawl).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to monitor for changes. E.g. a product page, pricing page, or any content page. | |
| fields | No | Specific fields to track for changes (e.g. ['price', 'availability', 'rating']). When provided, change detection focuses on these fields. Without fields, tracks full page content hash. | |
| format | Yes | Output format. 'markdown' (default): human-readable change report. 'json': structured object for programmatic agent use. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds session-scoped state persistence (not persisted across restarts) and details the hash comparison process. This adds value beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bold section headers and bullet points. It is fairly concise, though slightly long, but every section adds distinct value. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return type (changed/unchanged + field-level diffs) despite no output schema. It also covers session scoping and the baseline mechanism. Could mention error handling, but it is sufficiently complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description enriches parameters with context: for 'fields', it gives an example with price and availability and mentions percentage change; for 'format', it explains the output difference. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Detect changes on a web page over time' with a specific verb (detect), resource (web page), and temporal scope. It also distinguishes from sibling tools like novada_extract and novada_crawl by specifying what it is not for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases (e.g., price monitoring, stock tracking) and explicitly states when not to use (one-time extraction, full crawl) with alternatives. Also explains the baseline and comparison workflow, giving clear context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_plan_balance_allARead-onlyIdempotent
Per-product balance across all 6 Novada flow products in PARALLEL (residential/isp/mobile/datacenter/static/capture).
Best for: "Do we have quota left on product X?" / pre-flight check before launching a scrape job. Not for: Master wallet currency balance — use novada_wallet_balance. Returns: per_product[].balance (raw server response — typical fields: balance_mb, remaining_mb, plan_mb). Partial failures isolated per product. Params: products (optional subset). Auth: NOVADA_DEVELOPER_API_KEY (falls back to NOVADA_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| products | No | Subset of products to query. Omit to query ALL 6 in parallel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, non-destructive, idempotent. Description adds key behaviors: parallel execution, partial failure isolation, raw server response fields (balance_mb, remaining_mb, plan_mb), and auth fallback. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Highly structured with sections, very concise. Every sentence adds value. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema covers parameters fully, annotations cover safety, and description explains parallel execution, partial failures, and return structure, the description is complete for the tool's moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% with enum on products. Description adds meaning: omitting queries all 6, 'optional subset', and documents typical response fields. Goes beyond schema by explaining behavior of optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides per-product balance across all 6 Novada flow products in parallel, with a specific verb ('balance') and resource ('products'). It distinguishes from sibling tool 'novada_wallet_balance' for master wallet currency balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Best for' (quota check, pre-flight) and 'Not for' (master wallet balance) sections, with direct sibling reference. Also notes partial failures isolation, guiding appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxyARead-onlyIdempotent
Use when you need to route your own HTTP requests through residential or mobile IPs — for geo-targeting, IP rotation, or bypassing IP-based rate limits. Returns proxy URL, shell export commands, or curl --proxy flag.
Best for: When you need a specific country/city IP, sticky sessions for multi-step workflows, or testing geo-restricted content. Not for: Web page extraction (use novada_extract — proxy is automatic), web search (use novada_search). Formats: "url" for Node.js/Python, "env" for shell variables, "curl" for CLI requests. Note: Requires NOVADA_PROXY_USER, NOVADA_PROXY_PASS, NOVADA_PROXY_ENDPOINT env vars. Specialized tools: For specific proxy types, use novada_proxy_residential, novada_proxy_isp, novada_proxy_datacenter, novada_proxy_mobile, novada_proxy_static, or novada_proxy_dedicated.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Proxy type. 'residential' for most anti-bot scenarios, 'mobile' for app automation, 'isp' for sticky sessions, 'datacenter' for high-volume/low-cost. | residential |
| country | No | ISO 2-letter country code (e.g. 'us', 'gb', 'de'). Omit for any country. | |
| city | No | City name for city-level targeting. Requires country to be set. | |
| session_id | No | Session ID for sticky routing — same session_id returns same IP across requests. | |
| format | Yes | Output format. 'url': proxy URL string. 'env': shell export commands. 'curl': curl --proxy flag. | url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint. Description adds valuable context: returns proxy URL/shell commands/curl flag, requires specific env vars. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections, front-loaded with purpose, every sentence is informative. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description explains return formats (url, env, curl) and prerequisites (env vars). Complete for a proxy-generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds guidance on type selection ('residential for most anti-bot scenarios') and format purpose. This goes beyond schema descriptions, earning above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: routing HTTP requests through residential/mobile IPs. It uses specific verbs like 'route' and 'bypass', and distinguishes itself from specialized siblings like novada_proxy_residential.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Best for' and 'Not for' sections direct when to use this tool vs alternatives (novada_extract, novada_search, and specialized proxy tools). Also mentions sticky sessions and geo-targeting scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxy_account_createA
⚠️ WRITE — Create a proxy sub-account. Two-step confirm gate.
Behavior: Without confirm: true the tool returns a confirmation_required JSON preview (password masked) and DOES NOT hit the API. Show preview to the human user; only re-call with confirm: true after explicit human approval.
Best for: Provisioning a team-member or per-project sub-account against your master plan. Params: product ("1"=Residential, "2"=Rotating ISP, "3"=Rotating Datacenter, "4"=Unlimited, "7"=Unblocker, "9"=Mobile), account (3-64, [a-zA-Z0-9_-]), password (8-64), status ("1" active default | "-3" disabled), remark?, limit_flow? (GB cap as string), confirm. Wire format: multipart/form-data (per developer-api spec). Auth: NOVADA_DEVELOPER_API_KEY (falls back to NOVADA_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | REQUIRED. Product type code as string: 1=Residential, 2=Rotating ISP, 3=Rotating Datacenter, 4=Unlimited, 7=Unblocker, 9=Mobile. Must match a product provisioned on the account. | |
| account | Yes | REQUIRED. Sub-account name. 3-64 chars, alphanumeric + underscore/hyphen only. | |
| password | Yes | REQUIRED. Sub-account password. 8-64 chars. Will be sent to server in multipart body — caller decides storage. | |
| status | Yes | REQUIRED. Account status: "1" = active (default), "-3" = personal disabled. | 1 |
| remark | No | Optional note/label for this sub-account. | |
| limit_flow | No | Optional data cap in GB, as a string (e.g. "10" = 10 GB). Omit for no cap. Server expects string, not number. | |
| confirm | No | REQUIRED for execution. Pass `true` ONLY after the human user has approved this account creation. If omitted, the tool returns a dry-run preview instead of calling the API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate write but not destructive or idempotent. The description adds critical behavioral details: two-step confirm gate, preview without confirm, dry-run behavior, wire format, and auth fallback. This goes well beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (warning, behavior, best for, params, wire format, auth). It is slightly long but every sentence adds value. Front-loaded with crucial warning and behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should cover return values and errors. It explains the preview and confirm gate well, but does not mention typical success response or error scenarios. Still, the key behavioral context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by summarizing all parameters in a list, clarifying product codes, that limit_flow is a string, and password storage. It provides additional context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a proxy sub-account' with a specific verb and resource. It distinguishes from siblings like novada_proxy_account_list by focusing on creation, and provides clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Best for: Provisioning a team-member or per-project sub-account' and explains the two-step confirm gate. It gives clear context but does not explicitly state when not to use or list alternatives, though the sibling list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxy_account_listARead-onlyIdempotent
List proxy sub-accounts. Wraps developer-api POST /v1/proxy_account/list.
Best for: Auditing sub-accounts, finding account names before rotating credentials. Params: product (REQUIRED — same codes as create), page, limit (max 200), status? ("1"|"-3"), account? (exact-match filter). Wire format: multipart/form-data. Auth: NOVADA_DEVELOPER_API_KEY (falls back to NOVADA_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | REQUIRED. Product type code as string: 1=Residential, 2=Rotating ISP, 3=Rotating Datacenter, 4=Unlimited, 7=Unblocker, 9=Mobile. Must match a product provisioned on the account. | |
| page | Yes | 1-based page index. | |
| limit | Yes | Entries per page, max 200. (API field is `limit`, not `page_size`.) | |
| status | No | Optional filter: "1" = active, "-3" = disabled. Omit for both. | |
| account | No | Optional filter — exact-match account name. (API field is `account`, not `username`.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds significant behavioral context beyond annotations: wire format (multipart/form-data), auth requirements (NOVADA_DEVELOPER_API_KEY fallback), and parameter details like status filter and exact-match filter. No contradictions with annotations (readOnlyHint, destructiveHint, idempotentHint).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, structured with bullet-like lines. First line states purpose, second gives best-for, third details parameters. No wasted words—every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, use cases, parameters, wire format, and auth. Missing response format details (no output schema), but for a read-only list tool, this is adequate. Minor gap but still robust.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds extra meaning: notes that product codes are same as create, clarifies API field names (limit vs page_size, account vs username), and mentions limit max of 200. This adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with 'List proxy sub-accounts' which is a specific verb+resource. It distinguishes from sibling tools like novada_proxy_account_create by focusing on listing, and adds context about wrapping a POST API.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Best for: Auditing sub-accounts, finding account names before rotating credentials', giving clear use-case guidance. While it doesn't explicitly say when not to use, the context is sufficient for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxy_datacenterARead-onlyIdempotent
Route requests through datacenter IPs — fastest and most cost-effective option for high-volume scraping of targets without aggressive anti-bot.
Best for: APIs, public data feeds, high-volume scraping of non-protected targets. Not for: novada_extract or novada_crawl — they handle proxy routing internally. These credentials are for your own HTTP clients (curl, requests, axios). Params: url (optional), country (ISO 2-letter, optional), session_id (optional for sticky IP). Formats: "url", "env", "curl". agent_instruction: Fastest proxies. Best for high-volume, non-anti-bot targets. Escalate to isp → residential if blocked. Requires: NOVADA_PROXY_USER, NOVADA_PROXY_PASS, NOVADA_PROXY_ENDPOINT env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional target URL. When provided, returns config scoped for that URL. Omit for generic proxy credentials. | |
| country | No | ISO 2-letter country code for geo-targeting (e.g. 'us', 'de'). Optional — omit for any country. | |
| session_id | No | Session ID for sticky datacenter IP routing. Use for multi-step workflows requiring consistent IP. | |
| format | Yes | Output format. 'url': proxy URL string (default). 'env': shell export commands. 'curl': curl --proxy flag. | url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds operational context: fastest/cost-effective, for non-anti-bot targets, requires env vars, and escalation behavior on block. No contradiction with annotations; the description enriches behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then bullet-style best-for/not-for, params, formats, and agent_instruction. Each section is concise. Minor redundancy between agent_instruction and best-for/not-for, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage guidelines, parameter summary (though schema covers details), required env vars, and formats. No output schema exists, but return value (proxy credentials) is implied by format options. Lacks explicit note on response structure, but adequate for tool simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with good parameter descriptions. The description's parameter section repeats schema info without adding new semantic value. Baseline 3 is appropriate as the description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: routing requests through datacenter IPs for high-volume scraping of targets without aggressive anti-bot. It distinguishes from siblings by explicitly noting that novada_extract and novada_crawl handle proxy routing internally, and that these credentials are for external HTTP clients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists best-for (APIs, public data feeds, high-volume non-protected targets), not-for (novada_extract, novada_crawl), and provides an agent_instruction with escalation path (isp → residential if blocked). This gives clear guidance on when and how to use the tool vs. alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxy_dedicatedARead-onlyIdempotent
Route requests through an exclusive datacenter IP not shared with any other user — clean reputation, zero contamination risk.
Best for: High-trust platforms, workflows needing a pristine IP with no negative history. Not for: novada_extract or novada_crawl — they handle proxy routing internally. These credentials are for your own HTTP clients (curl, requests, axios). Params: url (optional), session_id (REQUIRED — maps to your exclusive dedicated IP). Formats: "url", "env", "curl". agent_instruction: Exclusive datacenter IP. Best for high-trust platforms. No other user shares this IP. For human-like IP appearance, use novada_proxy_residential instead. Requires: NOVADA_PROXY_USER, NOVADA_PROXY_PASS, NOVADA_PROXY_ENDPOINT env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional target URL. When provided, returns config scoped for that URL. Omit for generic proxy credentials. | |
| session_id | Yes | Session ID required for dedicated proxy — determines your exclusive datacenter IP assignment. Same session_id always returns the same dedicated IP. | |
| format | Yes | Output format. 'url': proxy URL string (default). 'env': shell export commands. 'curl': curl --proxy flag. | url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnly, idempotent) are complemented by description details: exclusive IP, no sharing, session-to-IP mapping, and requirement for env vars. No contradiction; the description adds context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, best/not for, params, formats, agent_instruction, requires). Every sentence adds value, no redundancy. It is concise yet comprehensive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While there is no output schema, the description explains output formats (url, env, curl) and mentions environment variable requirements. It adequately describes the tool's purpose and usage, though it could mention error handling or rate limits. Given the annotations and sibling context, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value by summarizing parameters: 'url (optional)', 'session_id (REQUIRED — maps to your exclusive dedicated IP)', and listing formats. This clarifies the purpose of each parameter beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool routes requests through an exclusive datacenter IP with clean reputation, distinguishing it from siblings like novada_proxy_residential. It specifies the verb 'route' and resource 'requests', and explicitly indicates when not to use it (novada_extract/crawl).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides 'Best for' and 'Not for' sections, naming alternatives (novada_proxy_residential) and explaining that novada_extract/crawl handle proxy routing internally. Also mentions required environment variables, giving clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxy_ispARead-onlyIdempotent
Route requests through ISP-assigned IPs that look like real home users — ideal for social media and ecommerce platforms.
Best for: Social media scraping, ecommerce platforms, any site distinguishing home users from datacenter IPs. Not for: novada_extract or novada_crawl — they handle proxy routing internally. These credentials are for your own HTTP clients (curl, requests, axios). Params: url (optional), country (ISO 2-letter, optional), session_id (optional for sticky IP). Formats: "url", "env", "curl". agent_instruction: ISP proxies look like real home users. Best for social/ecommerce. Escalate to novada_proxy_residential for stronger anti-bot. Requires: NOVADA_PROXY_USER, NOVADA_PROXY_PASS, NOVADA_PROXY_ENDPOINT env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional target URL. When provided, returns config scoped for that URL. Omit for generic proxy credentials. | |
| country | No | ISO 2-letter country code for geo-targeting (e.g. 'us', 'gb'). ISP proxies are best for social and ecommerce. | |
| session_id | No | Session ID for sticky ISP IP routing. Use for multi-step workflows that require the same IP. | |
| format | Yes | Output format. 'url': proxy URL string (default). 'env': shell export commands. 'curl': curl --proxy flag. | url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations (readOnlyHint, destructiveHint, idempotentHint) by detailing that the proxy looks like a real home user and requires specific environment variables. It also explains output format options, which is not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear headings and bullet points, making key information easy to find. It is concise without unnecessary words, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (all well-documented in schema), no output schema, and annotations, the description covers purpose, usage guidelines, behavioral details, environment variable requirements, agent instructions, and output formats, making it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description restates parameters in a summary line but adds no additional meaning beyond what the schema provides. Therefore, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states that the tool routes requests through ISP-assigned IPs that resemble real home users, specifying its ideal use for social media and ecommerce platforms. This clearly distinguishes it from siblings such as novada_proxy_datacenter and novada_proxy_residential.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear best-for and not-for sections, explicitly stating it is not for novada_extract or novada_crawl as they handle proxy routing internally. It also advises escalating to novada_proxy_residential for stronger anti-bot needs, offering explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxy_mobileARead-onlyIdempotent
Route requests through 4G/5G mobile IPs — real mobile device IPs ideal for mobile-targeted content and apps.
Best for: Mobile-targeted content, app APIs, platforms serving different content to mobile vs desktop. Not for: novada_extract or novada_crawl — they handle proxy routing internally. These credentials are for your own HTTP clients (curl, requests, axios). Params: url (optional), country (ISO 2-letter, optional), carrier (optional, e.g. 'verizon'), session_id (optional for sticky IP). Formats: "url", "env", "curl". agent_instruction: Mobile IPs. Best for mobile-targeted content and apps. Pair with mobile User-Agent for full simulation. Requires: NOVADA_PROXY_USER, NOVADA_PROXY_PASS, NOVADA_PROXY_ENDPOINT env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional target URL. When provided, returns config scoped for that URL. Omit for generic proxy credentials. | |
| country | No | ISO 2-letter country code for geo-targeting (e.g. 'us', 'gb'). Use to access mobile-targeted content from a specific region. | |
| carrier | No | Mobile carrier name for carrier-level targeting (e.g. 'verizon', 'att', 't-mobile'). Optional. | |
| session_id | No | Session ID for sticky mobile IP routing. Use for multi-step workflows requiring consistent mobile IP. | |
| format | Yes | Output format. 'url': proxy URL string (default). 'env': shell export commands. 'curl': curl --proxy flag. | url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and the description adds practical behavioral context such as requiring environment variables and being for external HTTP clients, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with bold headers and bullet points, front-loading the key purpose. It is somewhat lengthy but every sentence adds value, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage context, parameter summary, required environment variables, and format options, and differentiates from sibling proxy tools, making it complete for a proxy configuration tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description summarizes parameters and adds minor context (e.g., 'sticky IP' for session_id), but the schema already provides sufficient meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool routes requests through 4G/5G mobile IPs, specifying the resource (mobile IPs) and verb (route), and distinguishes it from siblings by focusing on mobile-targeted content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists best-for and not-for scenarios, including specific sibling tools (novada_extract, novada_crawl) and clarifies these credentials are for external HTTP clients, providing excellent guidance on when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxy_residentialARead-onlyIdempotent
Route requests through residential IPs — real home ISP addresses from a 100M+ IP pool. Best anti-bot bypass for geo-restricted or protected pages.
Best for: Anti-bot protected pages, geo-restricted content, platforms that block datacenter IPs. Not for: novada_extract or novada_crawl — they handle proxy routing internally. These credentials are for your own HTTP clients (curl, requests, axios). Params: url (optional), country (ISO 2-letter), city (optional, requires country), session_id (optional for sticky IP). Formats: "url", "env", "curl". agent_instruction: Best for geo-restricted content. Use country param for targeting. Strongest anti-bot bypass — escalate here from isp/datacenter when blocked. Requires: NOVADA_PROXY_USER, NOVADA_PROXY_PASS, NOVADA_PROXY_ENDPOINT env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional target URL to route through the proxy. When provided, returns config scoped for that URL. Omit to get generic proxy credentials. | |
| country | No | ISO 2-letter country code for geo-targeting (e.g. 'us', 'gb', 'de'). Best for geo-restricted content. | |
| city | No | City-level targeting (e.g. 'london', 'new-york'). Requires country to be set. | |
| session_id | No | Session ID for sticky IP routing — same session_id returns the same residential IP across requests. | |
| format | Yes | Output format. 'url': proxy URL string (default). 'env': shell export commands. 'curl': curl --proxy flag. | url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint. Description adds environment variable requirements and notes that the tool returns proxy config for external clients, not internal use. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (Best for, Not for, Params, Formats, Requires). Every sentence is informative. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, parameter details, and environment setup. Although no output schema, the formats parameter explains possible return values. Could mention if other parameters are required for certain formats, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good per-parameter descriptions. The description adds a summary and clarifies the relationship between city and country (requires country). This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool routes requests through residential IPs for anti-bot bypass and geo-restricted content. It distinguishes from sibling tools like novada_proxy_datacenter and novada_proxy_isp by specifying 'real home ISP addresses' and 'best anti-bot bypass'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists best use cases (anti-bot protected, geo-restricted) and what not to use it for (novada_extract/crawl handle proxy internally). Provides escalation guidance ('escalate here from isp/datacenter when blocked').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_proxy_staticARead-onlyIdempotent
Route requests through a dedicated static ISP IP that never changes — same IP every request for a given session_id + country.
Best for: Account management, login-dependent workflows, platforms that flag IP changes as suspicious. Not for: novada_extract or novada_crawl — they handle proxy routing internally. These credentials are for your own HTTP clients (curl, requests, axios). Params: url (optional), country (ISO 2-letter, REQUIRED), session_id (REQUIRED — determines your dedicated IP). Formats: "url", "env", "curl". agent_instruction: Same IP every request. Best for accounts requiring consistent identity. Keep the same session_id for the entire account lifecycle. Requires: NOVADA_PROXY_USER, NOVADA_PROXY_PASS, NOVADA_PROXY_ENDPOINT env vars.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional target URL. When provided, returns config scoped for that URL. Omit for generic proxy credentials. | |
| country | Yes | ISO 2-letter country code (required for static ISP proxy — each country has a distinct pool of dedicated IPs). | |
| session_id | Yes | Session ID required for static proxy — determines which dedicated IP is assigned. Same session_id always returns the same IP. | |
| format | Yes | Output format. 'url': proxy URL string (default). 'env': shell export commands. 'curl': curl --proxy flag. | url |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds valuable behavioral context: 'same IP every request', 'dedicated ISP IP that never changes', 'same session_id always returns the same IP'. This explains the static nature beyond annotations, and there is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bold labels and bullet points, but slightly verbose. Repeats 'same IP every request' in both the intro and agent_instruction. However, front-loads key information and is easy to scan. Could be trimmed slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description explains return formats: 'url', 'env', 'curl'. Lists required env vars (NOVADA_PROXY_USER, etc.). Distinguishes from siblings by specifying this is a static ISP proxy. Covers prerequisites, use cases, and constraints for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds meaning: explains that country determines distinct IP pool, session_id determines dedicated IP, format options ('url', 'env', 'curl'). Provides additional context like 'each country has a distinct pool of dedicated IPs' and 'maxLength: 64' for session_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Route requests through a dedicated static ISP IP that never changes'. It specifies the verb ('Route'), resource ('static ISP IP'), and distinguishing scope ('same IP every request for a given session_id + country'). This differentiates it from sibling proxy tools like novada_proxy_datacenter or novada_proxy_dedicated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Best for:' and 'Not for:' sections provide clear guidance. 'Best for: Account management, login-dependent workflows, platforms that flag IP changes as suspicious.' 'Not for: novada_extract or novada_crawl — they handle proxy routing internally.' Also specifies that credentials are for own HTTP clients, not internal tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_researchARead-onlyIdempotent
The most powerful research tool in any MCP server. One call → 3-10 parallel searches across Google/Bing/DuckDuckGo → dedup → extract full content from top 5 sources → synthesized cited report. No other MCP server can do this.
Use for: Any complex question needing multiple sources. Comparative analysis, market research, technical deep dives, competitive intelligence. Replaces 5-10 manual search+extract calls. Not for: Single fact lookup (novada_search) or reading one URL (novada_extract). Depth: "quick" (3 queries), "deep" (5-6), "comprehensive" (8-10), "auto" (default). Key advantage: Agents call this ONCE instead of orchestrating search→extract→synthesize manually. Saves tokens, time, and complexity.
| Name | Required | Description | Default |
|---|---|---|---|
| question | No | ||
| query | No | Alias for 'question' — use either | |
| depth | Yes | 'quick'=3 searches, 'deep'=5-6, 'comprehensive'=8-10, 'auto'=server decides based on question complexity. | auto |
| focus | No | Optional focus area to guide sub-query generation. E.g. 'technical implementation', 'business impact', 'recent news only'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds concrete details: 3-10 parallel searches, dedup, top 5 sources, synthesized cited report, depth options.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections for use/not-use/depth/advantage, but each sentence earns its place. Slightly verbose but justified by complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity of the tool and no output schema, description fully explains behavior and output (synthesized cited report). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% (3 of 4 params have descriptions). Description adds value by explaining query as alias, depth options with search counts, focus with examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it performs parallel searches, extracts content, and synthesizes a cited report. Distinguishes from sibling tools novada_search and novada_extract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes when to use (complex questions, comparative analysis) and when not (single fact lookup, reading one URL), with alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_scrapeARead-only
Use when you need structured data from a specific platform — not raw HTML, but clean tabular records. Supports 129 platforms: Amazon, Reddit, TikTok, LinkedIn, Google Shopping, Glassdoor, GitHub, Zillow, Airbnb, and more.
Best for: E-commerce product data, social posts/comments, job listings, reviews, real estate, market data.
Not for: General web pages (use novada_extract), unknown domains not in the platform list (use novada_crawl).
Output formats: "markdown" (default, agent-optimized table), "json" (structured, for programmatic use).
Example: platform="amazon.com", operation="amazon_product_keywords", params={keyword:"iphone 16", num:5}
Discover platforms: Read the novada://scraper-platforms MCP resource for the complete platform list with operation IDs and required params.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | Platform domain to scrape. E.g. 'amazon.com', 'reddit.com', 'tiktok.com', 'linkedin.com', 'google.com'. | |
| operation | Yes | Scraping operation ID. Examples: 'amazon_product_keywords', 'amazon_product_asin', 'tiktok_posts_url', 'linkedin_company_information_url', 'github_repository_repo-url', 'twitter_profile_username', 'youtube_video_search_label'. Read novada://scraper-platforms resource for the complete list with required params. | |
| params | Yes | Operation-specific parameters. E.g. { keyword: 'iphone 16', num: 5 } for keyword search, { url: 'https://...' } for URL-based ops, { asin: 'B09...' } for ASIN lookup. | |
| limit | Yes | Max records to return. Default 20, max 100. | |
| format | Yes | Output format. 'markdown' (default): structured table, easy to read and reason over. 'json': raw records array for programmatic processing. 'toon': token-optimized pipe-separated format (40-65% smaller than JSON/markdown). | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly=true and destructive=false. The description adds context on output formats (markdown, json, toon), example usage, and references a resource for operation details. It doesn't contradict annotations and provides useful behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear sections, bullet points, and a code block example. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description covers all necessary aspects: purpose, usage guidance, parameter details with examples, output format options, and cross-referencing a resource for more info. It is fully complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have schema descriptions (100% coverage). The description adds significant value by providing concrete examples for platform, operation, and params, explaining the limit default/max, and describing each format. This greatly aids the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool extracts structured data from specific platforms, lists supported platforms, and distinguishes from sibling tools like novada_extract and novada_crawl, making the purpose crystal clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear when-to-use (best for e-commerce, social, etc.) and when-not-to-use (general web pages, unknown domains) guidance, with specific sibling tool names, and directs to a resource for discovering platforms and operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_scraper_resultARead-onlyIdempotent
Retrieve the completed result of an async scraping task by task_id.
Required: task_id (from novada_scraper_submit). Confirm status='complete' with novada_scraper_status first. Formats: 'markdown' (default — human-readable table), 'json' (structured array for programmatic use), 'raw' (unprocessed API response). agent_instruction: Call novada_scraper_status first to confirm task is complete before calling this tool. Calling this on a pending task returns a not_ready response. Note: If result is unavailable, check novada_scraper_status and contact Novada support at support@novada.com with the task_id if the endpoint is returning errors.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task_id of a completed scraping task. Use novada_scraper_status first to confirm status is 'complete'. | |
| format | Yes | Output format for the scraped result. 'markdown' (default): human-readable table. 'json': structured JSON for programmatic use. 'raw': raw API response without formatting. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations: it explains that the result is only available upon task completion, that a not_ready response is returned for pending tasks, and details the output formats. Annotations already indicate readOnly and idempotent, and the description is consistent with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points and clear sections. It is front-loaded with the main purpose, and every sentence adds value without redundancy. It earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description is complete. It explains the prerequisite (novada_scraper_status), the output formats, error handling (not_ready, contact support), and relates to sibling tools. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaningful context: task_id is linked to novada_scraper_submit, and format options are explained with real-world use cases (human-readable table, structured JSON, raw API response). This goes beyond the schema's simple enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the completed result of an async scraping task by task_id. It uses a specific verb ('Retrieve') and resource ('completed result'), and distinguishes from sibling tools like novada_scraper_submit (submit) and novada_scraper_status (check status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidelines are provided: call novada_scraper_status first to confirm task completion, and note that calling on a pending task returns a not_ready response. It also advises contacting support with the task_id if errors occur. This clearly tells when and when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_scraper_statusARead-onlyIdempotent
Check the status of an async scraping task by task_id. Returns: pending, running, complete, or failed.
Required: task_id (from novada_scraper_submit). Pending/running: Retry in 5–10 seconds. Use exponential backoff (5s → 10s → 20s → 40s). Complete: Call novada_scraper_result with the same task_id to retrieve formatted data. Failed: Re-submit with novada_scraper_submit, or use novada_extract / novada_unblock as alternatives. agent_instruction: Each response includes the next action to take — always follow it.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task_id returned by novada_scraper_submit. Used to poll scraping task progress. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations: status values, retry behavior, and next-action instruction. Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and description aligns with them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured, concise sentences with clear sections. Every sentence adds value, no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a polling tool with one parameter, no output schema. Explains return values, retry logic, and next steps. Annotations cover safety/idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (task_id) with 100% schema description coverage. The description reinforces its origin from novada_scraper_submit but adds no additional syntax or constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the status of an async scraping task by task_id, lists return values, and distinguishes itself from siblings by referencing novada_scraper_submit and novada_scraper_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (after novada_scraper_submit), retry instructions with exponential backoff, what to do on complete (call novada_scraper_result) and on failure (re-submit or use alternatives).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_scraper_submitB
Submit an async scraping task for any URL. Returns a task_id — use novada_scraper_status to poll progress, then novada_scraper_result to retrieve data.
Best for: Scraping URLs that require async processing (JS-heavy pages, rate-limited targets, long-running extractions). Workflow: submit → poll status → retrieve result. Three separate calls. Required: url (the page to scrape). Optional: scraper_type (default 'universal'), country (2-letter ISO code). Next step: After calling this tool, use novada_scraper_status with the returned task_id to check progress. Note: If the endpoint returns a placeholder task_id, contact Novada support at support@novada.com to confirm scraper_type availability. Alternative: For 129 supported platforms (Amazon, Reddit, TikTok), use novada_scrape instead — it's synchronous and returns results directly.
| Name | Required | Description | Default |
|---|---|---|---|
| platform | Yes | Platform domain to scrape. E.g. 'amazon.com', 'linkedin.com', 'tiktok.com'. Read novada://scraper-platforms for the full list. | |
| operation | Yes | Operation ID for this platform. E.g. 'amazon_product_asin', 'linkedin_company_information_url'. Read novada://scraper-platforms for valid IDs. | |
| params | Yes | Operation-specific parameters. E.g. { asin: 'B09...' } for amazon_product_asin, { url: 'https://...' } for URL-based ops. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true) are complemented by the description stating async behavior and polling requirement. However, the parameter mismatch between description and schema undermines reliability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections, front-loaded with purpose, and provides workflow steps without redundancy. Slightly longer due to useful usage notes, but every sentence adds value except the parameter mismatch.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex (async, 3 required params including nested objects), but the description fails to explain the actual schema parameters or return value format (no output schema). The missing parameter mapping makes it incomplete for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description contradicts the schema by stating 'Required: url' and optional 'scraper_type' and 'country', which are not in the schema. The actual parameters (platform, operation, params) are not explained beyond schema descriptions, so the description adds confusion rather than value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it submits an async scraping task and returns a task_id, distinguishing from synchronous novada_scrape. However, the description mentions URL as required while the schema requires platform, operation, and params, causing confusion about the actual parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides a workflow (submit → poll → retrieve), describes when to use (async for JS-heavy, rate-limited, long-running), and offers an alternative (novada_scrape for 129 platforms). Also includes a note about contacting support for placeholder task_ids.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_searchARead-onlyIdempotent
Search the web via 5 engines (Google, Bing, DuckDuckGo, Yahoo, Yandex). Returns titles, URLs, snippets — reranked by relevance. For complex questions needing multiple sources, use novada_research instead (it's faster and more thorough).
Use for: Current events, finding URLs, fact lookup, competitive research. Set enrich_top=true to auto-extract the #1 result. Not for: Reading a known URL (novada_extract), multi-source report (novada_research). Tip: engine='duckduckgo' is 3x faster than Google and works for most queries.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| engine | Yes | Search engine to use. 'google': best general relevance (default). 'bing': good for news and local. 'duckduckgo': privacy-focused. 'yahoo': broad index. 'yandex': Russian/Eastern European content. | |
| num | Yes | ||
| country | Yes | ||
| language | Yes | ||
| time_range | No | Limit results to a time window. 'day'=last 24h, 'week'=last 7 days, 'month'=last 30 days, 'year'=last 12 months. | |
| start_date | No | ISO date YYYY-MM-DD. Return results published on or after this date. | |
| end_date | No | ISO date YYYY-MM-DD. Return results published on or before this date. | |
| include_domains | No | Only return results from these domains. E.g. ['github.com', 'arxiv.org']. Max 10. | |
| exclude_domains | No | Exclude results from these domains. E.g. ['reddit.com', 'quora.com']. Max 10. | |
| format | Yes | Output format. 'markdown': human-readable (default). 'json': structured object for programmatic agent use. | markdown |
| enrich_top | No | Auto-extract full content from the top result. Shorthand for extract_options.top_n=1. Adds ~2-4s latency. Default: false. | |
| extract_options | No | When provided, automatically extracts content from the top top_n search result URLs and appends it to each result. Eliminates a separate novada_extract call. Note: adds latency proportional to top_n * extract_latency. Use top_n=1-3 for most queries. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, open-world. Description adds behavioral details: reranking, optional enrichment with latency cost, engine speed differences. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: main description plus bullet points for use/not-for/tip. Every sentence provides useful guidance without redundancy. Front-loaded with key facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers tool purpose, parameter highlights, use vs. alternatives. No output schema, but return content is described. Could mention result count limits, but overall sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 69% (high). Description adds value by clarifying enrich_top as shorthand for extract_options.top_n=1 and noting DuckDuckGo speed. Guide helps parameter selection beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches the web via 5 engines, returns titles/URLs/snippets reranked by relevance, and distinguishes itself from sibling tools like novada_research and novada_extract. It provides specific use cases and exclusions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists 'Use for' (current events, fact lookup, etc.) and 'Not for' (reading a URL, multi-source report) with alternative tools named. Also includes a tip about engine speed for DuckDuckGo.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_setupARead-onlyIdempotent
Check environment configuration and get step-by-step setup instructions. Safe to call before NOVADA_API_KEY is configured.
Use for: First-time setup, diagnosing missing credentials, getting exact config snippets for Claude Code / Claude Desktop / Cursor / VS Code / Windsurf. Output: Status of all env vars (NOVADA_API_KEY, NOVADA_BROWSER_WS, NOVADA_PROXY_*), setup commands for all MCP clients, and which tools are currently active. No auth required: This tool works even when NOVADA_API_KEY is not set.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by stating 'No auth required: This tool works even when NOVADA_API_KEY is not set,' which is critical behavioral insight. It also details the output (env var status, setup commands, active tools). Annotations already indicate read-only, non-destructive, idempotent behavior, and the description reinforces and contextualizes that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the main purpose, and structured with bullet-style points. Every sentence adds value: purpose, use cases, output details, and auth requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description thoroughly explains the output (status of env vars, setup commands, active tools). For a simple diagnostic tool, this is complete and leaves no ambiguity about what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100%. The description adds meaning by explaining what the tool does and what it outputs, compensating for the lack of parameters. A baseline of 4 is appropriate for a parameterless tool with clear purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool checks environment configuration and provides step-by-step setup instructions. It clearly distinguishes from sibling tools, which focus on account summaries, browsing, scraping, etc., by positioning itself as the first-time setup and diagnostic tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies 'Use for: First-time setup, diagnosing missing credentials, getting exact config snippets' and notes it is safe to call before API key is configured. While it doesn't explicitly list when not to use it, the use cases are clear. No direct alternative tool is mentioned, but the sibling list implies this is the only setup-oriented tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_traffic_dailyARead-only
Aggregate daily traffic consumption across all 5 Novada proxy products in PARALLEL. Fans out to residential/isp/mobile/datacenter/static *_flow/consume_log endpoints.
Best for: "How much have we spent on proxies in the last N days?" / dashboarding spend per product. Returns: total_mb_across_products + per_product[].raw (server's day-by-day breakdown) + per-product error flags. Partial failures (e.g. a product not provisioned) do NOT block successful ones. Params: start_time/end_time (YYYY-MM-DD, optional — emits both start_time AND typo'd strat_time), products (optional subset). Auth: NOVADA_DEVELOPER_API_KEY (falls back to NOVADA_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| start_time | No | Inclusive start date YYYY-MM-DD. Defaults to 7 days ago server-side. Tool emits both start_time AND strat_time for server typo-compat. | |
| end_time | No | Inclusive end date YYYY-MM-DD. Defaults to today. | |
| products | No | Subset of proxy products to query. Omit to query ALL 5 in parallel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=true, describing a safe read operation. Description adds significant context: parallel fan-out, partial failure handling, return structure (total_mb, per-product, error flags), and the typo parameter behavior. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections (main action, best for, returns, params, auth). Each sentence is informative; a minor reduction in length would be possible but current length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description fully explains return values (total_mb, per-product, error flags) and handling of partial failures. Covers all essential aspects for a traffic aggregation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds defaults (7 days ago, today), typo behavior ('emits both start_time AND strat_time'), and optional products subset. This meaningfully extends the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('aggregate') and resource ('daily traffic consumption') with specific scope ('across all 5 Novada proxy products in PARALLEL'). Distinguishes from siblings by mentioning fan-out to multiple endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit best-for use cases: 'How much have we spent on proxies in the last N days?' and dashboarding. Also explains partial failure behavior, but does not explicitly state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_unblockARead-onlyIdempotent
Use when you need the raw rendered HTML of a blocked or JS-heavy page. Forces JS rendering via Web Unblocker or Browser API. Returns raw HTML, not cleaned text.
Best for: When you need raw HTML (not cleaned text) for custom DOM parsing. When novada_extract with render="render" still fails. Returns the full JS-rendered HTML source. Tip: For most anti-bot pages, try novada_extract with render="render" first — it returns clean text. Use novada_unblock when you specifically need the raw HTML source. Not for: Reading cleaned text (use novada_extract with render="render"), structured platform data (use novada_scrape). Methods: "render" (Web Unblocker, faster/cheaper), "browser" (full Chromium CDP, handles complex SPAs). Wait hint: Use wait_for to specify a CSS selector to wait for before capturing HTML. Note: wait_ms, block_resources, auto_runs are accepted but not yet implemented — they have no effect in the current version.
Common mistakes:
This tool returns RAW HTML, not parsed/cleaned text. Passing the output directly to an LLM expecting markdown will produce garbled, token-heavy responses.
For extracted content from bot-protected pages, use novada_extract (it calls the unblocker internally with render='render').
Do not use novada_unblock for simple static pages — it adds 9-16 seconds of latency vs 112ms for novada_extract.
When to use:
You need the original DOM structure for CSS selector parsing in a processing pipeline.
You are feeding the HTML into a downstream parser, not directly to an LLM.
You need raw access to a page's complete HTML before novada_extract's content selection.
Not for:
Getting readable content from protected pages — use novada_extract with render='render'.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| method | Yes | Rendering method. 'render': JS rendering via Web Unblocker (requires NOVADA_WEB_UNBLOCKER_KEY). 'browser': full Chromium CDP (requires NOVADA_BROWSER_WS). Unlike novada_extract which uses 'render=', this tool uses 'method='. | render |
| country | No | ISO 2-letter country code for geo-targeted rendering. | |
| wait_for | No | CSS selector to wait for before capturing HTML. E.g. '.price', '#product-title'. | |
| wait_ms | No | [NOT_IMPLEMENTED — reserved for future use] Max time in ms to wait for page to fully load before capture. Use when wait_for selector is unavailable. Max 100000ms. | |
| block_resources | No | [NOT_IMPLEMENTED — reserved for future use] Block images, CSS, and video loading for faster captures. Reduces bandwidth and latency on image-heavy pages. | |
| auto_runs | No | [NOT_IMPLEMENTED — reserved for future use] Number of retry attempts if the page load fails or returns incomplete content. Default 2, max 10. | |
| timeout | Yes | Timeout in ms. Default 30000, max 120000. | |
| max_chars | No | Maximum characters of raw HTML to return (default: 100000, max: 500000). When content exceeds this limit, it is truncated and a notice is appended. Raw HTML is typically much larger than extracted text — increase this if you need the full DOM. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds behavioral details not in annotations: returns raw HTML (not cleaned text), latency 9-16 seconds, unimplemented parameters (wait_ms, block_resources, auto_runs). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but well-structured with sections (best for, tip, not for, common mistakes, when to use). Every sentence adds value, though slightly verbose. Front-loaded with primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description is highly complete: explains return type (raw HTML), use cases, limitations, latency, errors to avoid, alternatives. Covers all critical aspects for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 89%, and description adds valuable context: method parameter clarifies distinction from novada_extract, wait_for explained, max_chars with truncation, unimplemented parameters noted. Provides meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Use when you need the raw rendered HTML of a blocked or JS-heavy page.' It specifies the verb (get raw HTML) and resource (blocked/JS-heavy page), and distinguishes from siblings like novada_extract (cleaned text) and novada_scrape (structured data). Clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides extensive when-to-use and when-not-to-use guidance: best for raw HTML when novada_extract fails, not for cleaned text (use novada_extract) or structured data (use novada_scrape). Includes common mistakes and alternatives. Explicit and comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_verifyARead-onlyIdempotent
Use when you have a factual claim and need to check if it's supported by web sources. Runs 3 parallel searches (supporting, skeptical, fact-check angles) and returns a verdict: supported / unsupported / contested / insufficient_data.
Best for: Checking claims before citing them, cross-validating research findings, detecting misinformation. Not for: Open-ended questions (use novada_research), reading a specific URL (use novada_extract). Note: Verdict is signal-based (search balance), not a definitive ruling. Confidence 0–100 indicates certainty.
| Name | Required | Description | Default |
|---|---|---|---|
| claim | Yes | The factual claim to verify (min 10 chars) | |
| context | No | Optional context to narrow the search (e.g. 'as of 2024', 'in the US') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, openWorld. Description adds valuable detail: runs supporting/skeptical/fact-check searches, returns verdict types and confidence 0-100. Warns verdict is not definitive, which is crucial context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short paragraphs efficiently covering purpose, usage guidance, and behavioral note. No wasted words; front-loaded with key info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description explains return types (verdict + confidence). Covers search strategy and limitations. Complete for a simple 2-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100% so baseline is 3. Description reinforces that 'claim' is a factual claim (min 10 chars) and 'context' optional for narrowing, but doesn't add substantial new meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it verifies factual claims against web sources using 3 parallel searches. It distinguishes from siblings novada_research (open-ended) and novada_extract (specific URLs), making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists 'Best for' and 'Not for' with specific alternative tools. Provides note about verdict being signal-based, guiding appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_wallet_balanceARead-onlyIdempotent
Read the master Novada wallet balance (currency). Wraps developer-api POST /v1/wallet/balance.
Best for: Confirming credit available before launching billable scraper/proxy jobs. Not for: Per-product MB/quota — use novada_plan_balance_all for residential/isp/mobile/datacenter/static/capture sub-balances. Auth: NOVADA_DEVELOPER_API_KEY (falls back to NOVADA_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds authentication details (NOVADA_DEVELOPER_API_KEY falls back to NOVADA_API_KEY) and that it wraps a POST endpoint, which is behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, focused sentences/paragraphs. First clause states purpose immediately. 'Best for' and 'Not for' sections are concise and actionable. Auth info appended without redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, complete annotations, and no output schema, the description covers purpose, usage guidance, and auth. Missing return value description, but for a simple balance read, the implied result (currency amount) is clear enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so schema coverage is trivially 100%. Description adds no parameter info (none needed). Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it reads the master Novada wallet balance (currency). Distinguishes from per-product balance tools by naming novada_plan_balance_all as the alternative. The verb 'Read' and resource 'wallet balance' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Best for: Confirming credit available before launching billable scraper/proxy jobs' and 'Not for: Per-product MB/quota — use novada_plan_balance_all', providing both when-to-use and when-not-to-use with an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
novada_wallet_usage_recordARead-only
Paginated wallet transaction / usage history. Wraps developer-api POST /v1/wallet/usage_record.
Best for: Auditing recent spend, exporting billing rows.
Not for: Aggregate by-product spend (use novada_traffic_daily) or current balances (use novada_plan_balance_all).
Params: start_time/end_time (YYYY-MM-DD, optional — server default ~30d), page, page_size (max 200). Tool emits both start_time AND server's typo'd strat_time for forward-compat.
Auth: NOVADA_DEVELOPER_API_KEY (falls back to NOVADA_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| start_time | No | Inclusive start date in YYYY-MM-DD. Defaults to 30 days ago on the server side. NOTE: this tool transparently emits both `start_time` and the server's typo'd `strat_time` for forward compat. | |
| end_time | No | Inclusive end date YYYY-MM-DD. Defaults to today. | |
| page | Yes | 1-based page index. | |
| page_size | Yes | Page size, max 200. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: the tool emits both start_time and a typo'd 'strat_time' for forward compatibility, and specifies authentication requirements, which go beyond annotation contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with bold headers for each section (Best for, Not for, Params, Auth), and every sentence adds unique value. No unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, parameters, pagination, auth, and a behavioral quirk. However, without an output schema, the response shape is not described, which is a minor gap for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds significant context beyond schema: clarifies optionality of date parameters with server defaults, page_size maximum, and the dual emission of start_time and strat_time, elevating the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Paginated wallet transaction / usage history' and explicitly distinguishes from siblings with 'Best for' and 'Not for' sections, naming alternative tools like novada_traffic_daily and novada_plan_balance_all.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use ('Auditing recent spend, exporting billing rows') and when-not-to-use ('Aggregate by-product spend', 'current balances') with specific alternative tool names, offering clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
34 tool updates
v0.1.0- First observed
novada_account_summary - First observed
novada_ai_monitor - First observed
novada_browser - First observed
novada_browser_flow - First observed
novada_capture_logs - First observed
novada_crawl - First observed
novada_discover - First observed
novada_extract - First observed
novada_health - First observed
novada_health_all - First observed
novada_map - First observed
novada_monitor - First observed
novada_plan_balance_all - First observed
novada_proxy - First observed
novada_proxy_account_create - First observed
novada_proxy_account_list - First observed
novada_proxy_datacenter - First observed
novada_proxy_dedicated - First observed
novada_proxy_isp - First observed
novada_proxy_mobile - First observed
novada_proxy_residential - First observed
novada_proxy_static - First observed
novada_research - First observed
novada_scrape - First observed
novada_scraper_result - First observed
novada_scraper_status - First observed
novada_scraper_submit - First observed
novada_search - First observed
novada_setup - First observed
novada_traffic_daily - First observed
novada_unblock - First observed
novada_verify - First observed
novada_wallet_balance - First observed
novada_wallet_usage_record
TDQS
Most tools have clearly distinct purposes, especially within categories like proxies and scraping. However, novada_browser and novada_browser_flow overlap significantly, and the large number of proxy types (residential, ISP, datacenter, mobile, static, dedicated) could confuse an agent despite detailed descriptions.
Tools consistently use 'novada_' prefix and underscores, but the verb/noun placement varies: some are verb-first (novada_crawl, novada_extract), others noun-first (novada_browser, novada_health). Within categories (e.g., novada_proxy_*) naming is consistent, but cross-category inconsistency is notable.
34 tools is high for an MCP server, bordering on excessive. While each tool has a distinct purpose, the number could be streamlined (e.g., merging redundant proxy tools or browser tools). It feels slightly bloated for the domain of web scraping and proxy services.
The tool set covers account management, content retrieval, proxy configuration, browser automation, platform scraping, monitoring, and verification. Minor gaps exist: no proxy account update/delete, no async task cancellation, and no explicit session management tools. Overall, it's fairly complete for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
One MCP for the Web. Easily search, crawl, navigate, and extract websites without getting blocked.…
One MCP server for 180+ live web-data APIs returning clean JSON from sites that block scrapers.
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
Live AI-native web search with citations. One tool for every MCP client. Flat per-request pricing.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive search capabilities including web search, content extraction, news search, academic search, and AI-powered multi-source research. Enables natural language access to web content and research through a production-ready MCP server.-
- AlicenseNot gradedqualityDmaintenanceWeb search, page fetching, and research from the terminal or any MCP client — no API key required.1MIT
- FlicenseNot gradedqualityCmaintenanceOpen-source web scraping MCP server with anti-bot bypass, enabling AI models to scrape, crawl, search, and extract data from any website without API keys or limits.-
- FlicenseNot gradedqualityCmaintenanceMCP server that enables AI agents to search the web and extract clean Markdown content, with support for JavaScript rendering, structured data extraction, and screenshots.1-
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/NovadaLabs/novada-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server