scraperapi-mcp-server
OfficialThe ScraperAPI MCP server enables web scraping, structured data extraction, site crawling, and AI-powered parsing — all bypassing anti-bot protections (CAPTCHAs, IP blocks).
General Web Scraping
Fetch any web page or image with optional JavaScript rendering, geo-targeting, premium proxies, device emulation, and output formats (markdown, text, CSV, JSON)
Structured Data Endpoints (SDEs) Pre-parsed, structured data from major platforms — no manual HTML parsing needed:
Google: Search (SERP), News, Jobs, Shopping, Maps
Amazon: Product details (by ASIN), search results, seller offers
Walmart: Search, product details (by ID), category browsing, customer reviews
eBay: Search, product details (by item ID)
Redfin: For-sale/rental property listings, search results, agent profiles
Web Crawling
Start asynchronous crawl jobs from a seed URL, following links to a configurable depth or credit budget
Control URL inclusion/exclusion via regex, receive results via webhooks, and poll or cancel jobs
AI-Powered Custom Parsing
Create reusable AI parsers from 1–3 example URLs to extract structured JSON from similar pages
Manage parsers: create, retrieve status/details, apply to new URLs, list, update fields, or delete
Configuration
Behavior is customizable via environment variables: API key, request timeout, rate limits, and image size limits
Provides tools for retrieving structured product details, search results, and seller offers from Amazon, enabling programmatic product research and price monitoring.
Provides tools for retrieving structured listing details and search results from eBay, useful for product discovery and market research.
Provides tools for retrieving structured Google Search, Jobs, and Shopping results, enabling SERP analysis, job listing aggregation, and product price comparison.
Provides a tool for retrieving structured local business/place results from Google Maps based on a query and geographic coordinates.
Provides a tool for retrieving structured news article results from Google News, with support for date filtering and time windows.
Provides tools for retrieving structured product details, search results, category browsing, and customer reviews from Walmart, enabling product research and sentiment analysis.
ScraperAPI MCP server
The ScraperAPI MCP server enables LLM clients to retrieve and process web scraping requests using the ScraperAPI services.
This is the self-hosted (local) server. A hosted (remote) version is also available.
Table of Contents
Related MCP server: ma-browser
Features
Full implementation of the Model Context Protocol specification
Seamless integration with ScraperAPI for web scraping
Simple setup with Python or Docker
Architecture
┌───────────────┐ ┌───────────────────────┐ ┌───────────────┐
│ LLM Client │────▶│ Scraper MCP Server │────▶│ AI Model │
└───────────────┘ └───────────────────────┘ └───────────────┘
│
▼
┌──────────────────┐
│ ScraperAPI API │
└──────────────────┘Installation
The ScraperAPI MCP Server is designed to run as a local server on your machine, your LLM client will launch it automatically when configured.
Prerequisites
Python 3.11+
Docker (optional)
Using Python
Install the package:
pip install scraperapi-mcp-serverAdd this to your client configuration file:
{
"mcpServers": {
"ScraperAPI": {
"command": "python",
"args": ["-m", "scraperapi_mcp_server"],
"env": {
"API_KEY": "<YOUR_SCRAPERAPI_API_KEY>"
}
}
}
}Using Docker
Add this to your client configuration file:
{
"mcpServers": {
"ScraperAPI": {
"command": "docker",
"args": [
"run",
"-i",
"-e",
"API_KEY=${API_KEY}",
"--rm",
"scraperapi-mcp-server"]
}
}
}If your command is not working (for example, you see a package not found error when trying to start the server), double-check the path you are using. To find the correct path, activate your virtual environment first, then run:
which <YOUR_COMMAND>Available tools
API
Retrieve the content of a web page, or download an image, from a URL.
Parameter | Type | Description | Required |
| string | Target URL to scrape | Yes |
| boolean | Enable JavaScript rendering for dynamic pages (default: | No |
| string | ISO 2-letter country code for geo-targeting | No |
| boolean | Use premium residential/mobile proxies (default: | No |
| boolean | Advanced anti-bot bypass; incompatible with | No |
| string |
| No |
| string |
| No |
| boolean | Auto-parse supported sites into structured data (default: | No |
Returns: the scraped content as a string, or image data for image URLs.
SDEs
Structured Data Endpoints (SDEs) return pre-parsed JSON (or CSV) instead of raw HTML. Every SDE tool also accepts output_format (json by default, or csv), tld, and country_code, shown in each tool's table.
Parameter | Type | Description | Required |
| string | Search query, as typed into Google | Yes |
| integer | Number of results to return on the page | No |
| integer | Zero-based result offset for pagination | No |
| string | Interface/host language code (e.g. | No |
| string | Country edition to search (2-letter code) | No |
| string | Google | No |
| string | Start of a custom date range, | No |
| string | End of a custom date range, | No |
| string | Recent window: | No |
| boolean | Include raw HTML alongside parsed data (default: | No |
| string | Raw Google | No |
| string |
| No |
| string | Top-level domain (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Search query | Yes |
| integer | Number of results to return on the page | No |
| integer | Zero-based result offset for pagination | No |
| string | Interface/host language code | No |
| string | Country edition to search (2-letter code) | No |
| string | Google | No |
| string | Start of a custom date range, | No |
| string | End of a custom date range, | No |
| string | Recent window: | No |
| string |
| No |
| string | Top-level domain (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Search query | Yes |
| integer | Number of results to return on the page | No |
| integer | Zero-based result offset for pagination | No |
| string | Interface/host language code | No |
| string | Country edition to search (2-letter code) | No |
| string | Google | No |
| string |
| No |
| string | Top-level domain (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Search query | Yes |
| integer | Number of results to return on the page | No |
| integer | Zero-based result offset for pagination | No |
| string | Interface/host language code | No |
| string | Country edition to search (2-letter code) | No |
| string | Google | No |
| boolean | Include raw HTML alongside parsed data (default: | No |
| string |
| No |
| string | Top-level domain (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Search query (e.g. | Yes |
| number | Latitude of the map center, in decimal degrees | Yes |
| number | Longitude of the map center, in decimal degrees | Yes |
| integer | Map zoom level (roughly 3=country, 10=city, 15=street) | No |
| boolean | Include raw HTML alongside parsed data (default: | No |
| string |
| No |
| string | Top-level domain (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Amazon
Parameter | Type | Description | Required |
| string | 10-character Amazon product identifier (e.g. | Yes |
| string | Language code for localized content (e.g. | No |
| boolean | Include raw HTML alongside parsed data (default: | No |
| string |
| No |
| string | Amazon TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Search query, as typed into Amazon | Yes |
| integer | 1-based results page number | No |
| string | Sort order (e.g. | No |
| string | Restrict search to a department/category (e.g. | No |
| string | Amazon | No |
| string | Language code for localized content | No |
| string |
| No |
| string | Amazon TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | 10-character Amazon product identifier | Yes |
| string | Comma-separated condition filters (e.g. | No |
| boolean | Include only New-condition offers | No |
| boolean | Include Used - Like New offers | No |
| boolean | Include Used - Very Good offers | No |
| boolean | Include Used - Good offers | No |
| boolean | Include Used - Acceptable offers | No |
| string | Language code for localized content | No |
| string |
| No |
| string | Amazon TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Walmart
Parameter | Type | Description | Required |
| string | Product search query, as typed into Walmart | Yes |
| integer | 1-based results page number | No |
| string |
| No |
| string | Walmart TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Walmart product ID | Yes |
| string |
| No |
| string | Walmart TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Walmart category ID | Yes |
| integer | 1-based results page number | No |
| string |
| No |
| string | Walmart TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Walmart product ID | Yes |
| integer | 1-based results page number | No |
| string | Sort order (e.g. | No |
| string | Comma-separated star ratings to filter by (e.g. | No |
| boolean | Include only reviews with a "Verified Purchase" badge (default: | No |
| string |
| No |
| string | Walmart TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
eBay
Parameter | Type | Description | Required |
| string | Search keywords | Yes |
| integer | 1-based results page number | No |
| integer | Number of items per page | No |
| string | Restrict results to a specific seller | No |
| string | Comma-separated: | No |
| string |
| No |
| string | Comma-separated: | No |
| string |
| No |
| string |
| No |
| string | eBay TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | eBay item ID | Yes |
| string |
| No |
| string | eBay TLD (e.g. | No |
| string | ISO 2-letter country code for geo-targeting | No |
Redfin
Every Redfin tool takes a full Redfin URL matching the tool (property, search, or agent page).
Parameter | Type | Description | Required |
| string | Full Redfin for-sale property URL | Yes |
| boolean | Return raw extracted JSON instead of parsed data (default: | No |
| string |
| No |
| string | Redfin TLD ( | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Full Redfin rental property URL | Yes |
| boolean | Return raw extracted JSON instead of parsed data (default: | No |
| string |
| No |
| string | Redfin TLD ( | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Full Redfin search-results URL (with filters) | Yes |
| string |
| No |
| string | Redfin TLD ( | No |
| string | ISO 2-letter country code for geo-targeting | No |
Parameter | Type | Description | Required |
| string | Full Redfin agent profile URL | Yes |
| string |
| No |
| string | Redfin TLD ( | No |
| string | ISO 2-letter country code for geo-targeting | No |
Crawler
The crawler is asynchronous: crawler_job_start returns a job id immediately, then you poll crawler_job_status until the crawl finishes. Per-page results can also be pushed to a callback_url webhook.
Parameter | Type | Description | Required |
| string | The URL where crawling begins (depth 0) | Yes |
| string | Regex selecting which links to follow. Use | Yes |
| integer | Maximum crawl depth (start URL is depth 0). Provide | No* |
| integer | Maximum ScraperAPI credits the crawl may consume. Provide | No* |
| string | Regex for URLs to exclude from crawling | No |
| object | Per-scrape controls applied to each page (e.g. | No |
| string | Webhook URL to receive per-page results and the final summary | No |
| object | Arbitrary metadata to attach to the job | No |
| object | Recurring schedule: | No |
| boolean | For scheduled projects, whether the schedule is enabled (default: | No |
* Provide either max_depth or crawl_budget.
Returns: JSON with the job id and initial status (e.g. {"status": "initiated", "jobId": "..."}).
Parameter | Type | Description | Required |
| string | The job id returned by | Yes |
Returns: JSON with the job's page counts (done/failed/active).
Parameter | Type | Description | Required |
| string | The job id returned by | Yes |
AI Parser
Build a reusable parser from a few example URLs, then apply it to any similar page for structured extraction. Two-phase: ai_parser_create returns a parser id immediately and generation runs in the background — poll ai_parser_get_details until its status is FINISHED, then call ai_parser_parse_url.
Parameter | Type | Description | Required |
| string | A name for the parser | Yes |
| array<string> | 1–3 example URLs of the same page type (same structure) | Yes |
| object | ScraperAPI fetch options for the example pages: | No |
| array | Pre-declared fields to extract: | No |
Returns: JSON with the new parser's id and version. Generation is asynchronous — poll ai_parser_get_details until status is FINISHED.
Parameter | Type | Description | Required |
| string | The parser id returned by | Yes |
| integer | Specific parser version (default: latest) | No |
Returns: JSON with the parser's status (GENERATING/FINISHED/FAILED), fields, and example results.
Parameter | Type | Description | Required |
| string | The parser id to run | Yes |
| string | The URL to scrape and parse | Yes |
| integer | Specific parser version (default: latest) | No |
Returns: JSON {"parser": ..., "version": ..., "result": {...}}. Costs 1 credit per call.
No parameters. Returns a JSON array of parser summaries (id, name, status, version, generation time).
Parameter | Type | Description | Required |
| string | The parser id to delete | Yes |
Parameter | Type | Description | Required |
| string | The parser id to update | Yes |
| integer | Version to base the update on (default: latest) | No |
| array | Fields to add: | No |
| array | Fields to modify (triggers async regeneration) | No |
| array | Renames: | No |
| array<string> | Field names to remove (applied immediately) | No |
Prompt templates
Please scrape this URL
<URL>. If you receive a 500 server error identify the website's geo-targeting and add the corresponding country_code to overcome geo-restrictions. If errors continues, upgrade the request to use premium proxies by adding premium=true. For persistent failures, activate ultra_premium=true to use enhanced anti-blocking measures.Can you scrape URL
<URL>to extract<SPECIFIC_DATA>? If the request returns missing/incomplete<SPECIFIC_DATA>, set render=true to enable JS Rendering.
Configuration
Settings
Configure the server through environment variables. Only API_KEY is required.
Variable | Default | Description |
| — | Required. Your ScraperAPI API key. |
|
| Per-request timeout, in seconds. |
|
| Maximum tool calls allowed per rate-limit window. |
|
| Length of the rate-limit window, in seconds. |
|
| Maximum size of an image the |
Client Setup
Use the JSON configuration file from the Installation section. Below are steps for common clients.
Claude Desktop:
Open Claude Desktop and click the settings icon
Select the "Developer" tab
Click "Edit Config" and paste the JSON configuration file
Claude Code:
Add the server manually to your
.claude/settings.jsonwith the JSON configuration file, or run:claude mcp add scraperapi -e API_KEY=<YOUR_SCRAPERAPI_API_KEY> -- python -m scraperapi_mcp_server
Open Cursor
Access the Settings Menu
Open Cursor Settings
Go to Tools & Integrations section
Click '+ Add MCP Server'
Choose Manual and paste the JSON configuration file
More here
Open Windsurf
Access the Settings Menu
Click on the Cascade settings
Click on the MCP server section
Click on the gear icon, the
mcp_config.jsonfile will open
More here
Open VS Code and click the Cline icon in the activity bar to open the Cline panel
Click the MCP Servers icon in the top navigation bar of the Cline pane
Select the "Configure" tab
Click "Configure MCP Servers" at the bottom of the pane — this opens
cline_mcp_settings.json
More here
Development
Local setup
Clone the repository:
git clone https://github.com/scraperapi/scraperapi-mcp cd scraperapi-mcpInstall dependencies:
Using Poetry:
poetry installUsing pip:
# Create virtual environment and activate it python -m venv .venv source .venv/bin/activate # MacOS/Linux # OR .venv/Scripts/activate # Windows # Install the local package in editable mode pip install -e .Using Docker:
# Build the Docker image locally docker build -t scraperapi-mcp-server .
Run the server
Using Python:
python -m scraperapi_mcp_serverUsing Docker:
# Run the Docker container with your API key docker run -e API_KEY=<YOUR_SCRAPERAPI_API_KEY> scraperapi-mcp-server
Debug
python3 -m scraperapi_mcp_server --debugTesting
This project uses pytest for testing.
Install Test Dependencies
Using Poetry:
poetry install --with devUsing pip:
pip install -e . pip install pytest pytest-mock pytest-asyncio
Running Tests
# Run All Tests
pytest
# Run Specific Test
pytest <TEST_FILE_PATH>Available Tools
27 toolsai_parser_createA
Create a reusable AI parser from example URLs.
Generates a parser that extracts structured data from pages sharing a
layout. Generation is ASYNCHRONOUS: this returns a parser id and version
immediately (e.g. {"id": "...", "version": 0}); poll 'ai_parser_get_details' until
its status is 'FINISHED' before calling 'ai_parser_parse_url'.
When to use:
- You want repeatable structured extraction across many similar pages
(e.g. product pages of one site) and there's no dedicated SDE for it
- You can provide 1–3 example URLs of the same page type
When NOT to use:
- A one-off fetch (use 'scrape') or a supported marketplace/SERP (use the SDE)
Args:
params (AiParserCreateParams): name and urls (1–3) are required;
optional scraper_params (fetch options) and fields (pre-declared
output schema).
Returns:
str: JSON with the new parser's id and version.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, the
inputs are invalid, or the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description explicitly discloses async behavior, polling requirements (status 'FINISHED' before using ai_parser_parse_url), and potential ToolError conditions. Annotations (readOnlyHint=false, destructiveHint=false) align with a creation tool, and the description adds valuable behavioral 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?
Well-structured with clear sections (when to use, when not, args, returns, raises). The first sentence is effective. Minor redundancy with schema (Args section) 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 all aspects: purpose, async workflow, polling, error types, prerequisites (example URLs), and return format. Given the tool's complexity, the description is comprehensive and leaves no critical 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?
Despite schema description coverage being 0%, the description summarizes the required params (name and urls) and optional ones (scraper_params, fields) with their purposes. This compensates for the schema gap, though the description could include more param-specific details found in 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?
Description opens with a clear verb and resource: 'Create a reusable AI parser from example URLs.' It further distinguishes from siblings by contrasting with 'scrape' (one-off) and SDE (supported sites). The async nature is highlighted.
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 'When to use' and 'When NOT to use' sections provide concrete guidance, including alternatives (scrape, SDE) and required polling pattern. Leaves no ambiguity about when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_parser_deleteADestructiveIdempotent
Delete an AI parser.
Permanently removes the parser (and all its versions) from your account.
When to use:
- Removing a parser you no longer need (e.g. to stay under plan limits)
When NOT to use:
- Changing a parser's fields (use 'ai_parser_update'); deletion is permanent
Args:
params (AiParserDeleteParams): parser_id (required).
Returns:
str: Empty on success (HTTP 204).
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true. Description adds context that deletion is permanent and removes all versions, and explains return value (empty string on 204). 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?
Concise with front-loaded purpose and structured sections (when to use, args, returns, raises). Could be slightly shorter but no wasted sentences.
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 simple tool (1 param, clear annotations, output schema empty), description covers purpose, usage, side effects, return value, and errors. 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 description coverage is 0% per context, yet description merely repeats 'parser_id (required)' without adding meaning beyond schema's own description ('The parser id to delete. Required.'). Minimal value added.
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 'Delete an AI parser' and specifies it permanently removes the parser and all its versions. It distinguishes from sibling tools like 'ai_parser_update' for modifying fields.
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 'When to use' and 'When NOT to use' sections guide agent: use for removing unwanted parsers, avoid for field changes (use ai_parser_update).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_parser_get_detailsARead-onlyIdempotent
Get an AI parser's details and generation status.
Returns the parser's status ('GENERATING', 'FINISHED', or 'FAILED'), its
fields, example results, and any error. Poll this after 'ai_parser_create'
(or after a field-editing 'ai_parser_update') until status is 'FINISHED'.
When to use:
- Polling a parser's status after create/update until it is 'FINISHED'
- Inspecting a parser's fields before parsing with it
When NOT to use:
- Extracting data from a page (use 'ai_parser_parse_url')
Args:
params (AiParserGetParams): parser_id (required) and optional version.
Returns:
str: JSON with the parser details and status.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context: returns status values (GENERATING, FINISHED, FAILED), fields, example results, errors, and the need to poll until FINISHED. It also mentions potential ToolError conditions (missing API key, rate limit, failure). This aligns with and enriches the 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?
The description is well-structured with a clear summary, separate sections for usage, args, returns, and raises. Every sentence adds value without redundancy. It is front-loaded with the primary purpose and polls status information, making it easy to scan.
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 simple parameter set (1 required param), comprehensive annotations (readOnly, idempotent), and presence of an output schema (though not detailed in description), the description covers all necessary aspects: purpose, usage, behavior, errors, and return value type. It is 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?
Context indicates schema description coverage is 0%, meaning the schema lacks parameter descriptions. The description only briefly mentions 'parser_id (required) and optional version' without adding further meaning (e.g., format, constraints, or usage nuances). It does not compensate adequately for the missing schema descriptions, leaving the agent underinformed.
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 gets an AI parser's details and generation status. It explicitly distinguishes from siblings by mentioning polling after create/update and inspecting fields before parsing, and by saying not to use for extracting data (use ai_parser_parse_url). The verb 'Get' and resource are 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?
The description has dedicated 'When to use' and 'When NOT to use' sections. It specifies polling after create/update, inspecting fields before parsing, and explicitly warns against using for data extraction, pointing to ai_parser_parse_url as the alternative. This provides excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_parser_listARead-onlyIdempotent
List the AI parsers on your account.
Returns each parser's id, name, status, version, and generation time.
When to use:
- Discovering existing parsers and their ids/status before reusing one
When NOT to use:
- Getting one parser's full fields/details (use 'ai_parser_get_details')
Returns:
str: JSON array of parser summaries.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds transparency about error conditions (missing API key, rate limit, request failure) and return type (JSON array). 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?
Description is well-structured with clear sections, no redundant sentences. Every sentence serves a purpose (what it does, when to use, returns, raises).
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, rich annotations, and an output schema, the description is complete: it covers purpose, usage, return format, and errors. 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?
Tool has no parameters; schema description coverage is 100% trivially. Description adds value by explaining the return format and behavior, meeting the baseline of 4 for zero-parameter tools.
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 lists AI parsers on the account and specifies the returned fields (id, name, status, version, generation time). It explicitly distinguishes from the sibling tool 'ai_parser_get_details' which retrieves full details of one parser.
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' (discovering parsers before reuse) and 'When NOT to use' (getting one parser's full details) with a specific alternative named ('ai_parser_get_details').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ai_parser_parse_urlARead-onlyIdempotent
Parse a URL with an existing AI parser and return structured data.
Scrapes the given URL and applies the parser, returning the extracted data
as structured JSON keyed by the parser's fields. The parser must already be
'FINISHED' (see 'ai_parser_create' / 'ai_parser_get_details'). Costs 1 credit per call.
When to use:
- Extracting structured data from a page using a FINISHED parser
- Applying one parser across many similarly structured pages
When NOT to use:
- The parser isn't ready yet (create it, then poll 'ai_parser_get_details')
- A one-off fetch (use 'scrape') or a supported marketplace/SERP (use the SDE)
Args:
params (AiParseParams): parser_id and url are required; optional version.
Returns:
str: JSON of the form {"parser": ..., "version": ..., "result": {...}}.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds beyond these: cost (1 credit per call) and specific error conditions (missing API key, rate limit, request failure). This extra context is valuable and consistent 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-organized into clear sections: main purpose, usage guidelines, arguments, returns, and raises. It is concise with no redundant sentences and front-loads the essential information.
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's complexity and the presence of an output schema, the description covers all necessary context: prerequisites (parser must be FINISHED), cost, error conditions, and return format ('parser', 'version', 'result'). It leaves no critical gaps for an agent to misuse 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?
The schema already describes each parameter (parser_id, url, version). The description's 'Args' section restates the required fields but adds no new semantic information beyond the schema. Since schema coverage is effectively high and the description doesn't compensate further, a baseline 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 clearly states the verb 'Parse a URL' with an existing AI parser, returning structured data. It distinguishes from sibling tools by explicitly mentioning alternatives for not-ready parsers ('ai_parser_create', 'ai_parser_get_details') and one-off fetches ('scrape'), making it distinct from other scraping/parser tools.
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' and 'When NOT to use' sections, including specific alternatives and conditions. It tells the agent to use this tool only when the parser is 'FINISHED' and directs other cases to appropriate siblings, 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.
ai_parser_updateA
Edit an AI parser's fields, creating a new version.
Add, modify, rename, or remove fields. Adding or modifying fields triggers
asynchronous regeneration (poll 'ai_parser_get_details' until 'FINISHED'); renaming
or removing fields is applied immediately.
When to use:
- Adjusting an existing parser's fields (add/modify/rename/remove) rather
than recreating it
When NOT to use:
- Creating a brand-new parser (use 'ai_parser_create')
Args:
params (AiParserUpdateParams): parser_id (required) and optional version,
plus any of add_fields, modify_fields, rename_fields, remove_fields.
Returns:
str: JSON with the parser id and (new) version.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, the
inputs are invalid, or the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that add/modify fields trigger asynchronous regeneration (poll 'ai_parser_get_details') while rename/remove apply immediately. No contradiction with annotations (readOnlyHint=false, destructiveHint=false). This adds 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?
Well-structured with clear sections (description, when to use/not, args, returns, raises). Every sentence serves a purpose; no fluff. Front-loaded with the core action.
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 all essential aspects: purpose, usage context, parameter summary, return value, and error conditions. Output schema exists, so return details are not required. Raises section addresses common failures. Complete for a moderately complex 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?
Despite the input schema containing detailed descriptions for each parameter, the tool's description summarizes the parameters in a concise 'Args' section. It adds value by grouping parameters and clarifying optionality, though the schema already covers individual semantics well.
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 explicitly states 'Edit an AI parser's fields, creating a new version.' It distinguishes from sibling 'ai_parser_create' by specifying when to use each. Additionally, it enumerates specific operations (add, modify, rename, remove), leaving no ambiguity.
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?
Includes a dedicated 'When to use' and 'When NOT to use' section, directing agents to use 'ai_parser_create' for new parsers. This clearly defines the tool's domain and prevents misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_offersARead-onlyIdempotent
Retrieve the parsed list of seller offers for an Amazon product.
Returns structured offer listings for one ASIN — listing/shipping price,
condition, seller name and rating, Prime/FBA flags, and delivery info —
across the sellers offering that product.
When to use:
- Comparing sellers, prices, and conditions (new/used) for a known ASIN
- Buy-box / third-party seller and repricing analysis
When NOT to use:
- You want the product's own details (use 'amazon_product')
- You only have a search term (use 'amazon_search' to get the ASIN first)
Args:
params (AmazonOffersParams): asin (required) plus optional condition
filters (condition, f_new, f_used_like_new, f_used_very_good,
f_used_good, f_used_acceptable), tld, country_code, language, and
output_format.
Returns:
str: JSON (default) or CSV containing the structured offers.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds details about return format (JSON/CSV) and error conditions (API key, rate limit, request failure), enhancing transparency.
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 purpose, usage, arguments, returns, and raises. No redundant sentences. 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?
Covers usage context, alternatives, and error handling. With an output schema, return details are sufficient. Some aspects like pagination or offer count are absent but not critical.
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?
Description lists the parameters but relies on schema descriptions (which are present) for details. It adds minimal value beyond summarizing optional filters.
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 seller offers for an Amazon ASIN, listing specific fields. It distinguishes from siblings amazon_product and amazon_search.
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 'When to use' and 'When NOT to use' sections with named alternative tools for product details and search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_productARead-onlyIdempotent
Retrieve parsed details for a single Amazon product by ASIN.
Returns structured product data — name, brand, pricing, images, feature
bullets, product information, review summary, category, coupon flags — for
one Amazon listing, already parsed from the product page.
When to use:
- You have a specific ASIN and want its full structured details
- Product monitoring, catalog enrichment, price/spec extraction
When NOT to use:
- You only have a search term, not an ASIN (use 'amazon_search' first)
- You need the list of sellers/offers for the product (use 'amazon_offers')
Args:
params (AmazonProductParams): asin (required) plus optional tld,
country_code, language, output_format, and include_html.
Returns:
str: JSON (default) or CSV containing the structured product data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only operation. The description adds behavioral context such as the parsed nature of the output, error conditions (ToolError for rate limits, missing API key), and the output format, without contradicting 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 concise, well-organized into sections, and front-loads the core action. Every sentence serves a purpose, with no wasted words.
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 a comprehensive output schema and nested parameters, the description provides full context: use cases, alternatives, error handling, and supported formats, leaving no significant 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?
The description lists parameter names but does not add substantial meaning beyond the detailed input schema, which already describes each field. Schema coverage is effectively high, warranting a baseline of 3.
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 parsed details for a single Amazon product by ASIN, listing specific data fields. It distinguishes itself from siblings like 'amazon_search' and 'amazon_offers' with explicit usage guidance.
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 'When to use' and 'When NOT to use' sections with concrete scenarios and alternative tool recommendations, providing strong decision support for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_searchARead-onlyIdempotent
Retrieve parsed Amazon search results for a query.
Returns structured search results — product name, price, rating, review
count, URL, image, Prime/best-seller/sponsored flags — plus pagination,
for a keyword search on Amazon.
When to use:
- Discovering products and their ASINs for a search term
- Price/market research and catalog building across a category
When NOT to use:
- You already have an ASIN (use 'amazon_product' / 'amazon_offers')
Args:
params (AmazonSearchParams): query (required) plus optional page,
sort_by, department, ref, tld, country_code, language, and
output_format.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return structure (product name, price, etc.), pagination, and error conditions (missing API key, rate limit, request failure). No contradiction with annotations which declare readOnlyHint, idempotentHint, not destructive.
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, and 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?
Covers purpose, usage, return format, errors, and parameter list. Given the richness of annotations and output schema, the description is complete and aids correct invocation.
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?
Description only lists parameter names without adding meaning beyond what the schema already provides. Schema coverage is 0%, but the description does not compensate; it merely repeats parameter names in the Args section.
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 retrieves parsed Amazon search results for a query. Distinguishes from siblings by mentioning that if you already have an ASIN, use 'amazon_product' or 'amazon_offers'.
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 'When to use' and 'When NOT to use' sections. Specifies discovering products and price research as use cases, and explicitly names alternative tools for known ASINs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crawler_job_deleteADestructiveIdempotent
Cancel and delete a ScraperAPI crawl job.
Irreversibly cancels a running crawl job and removes it. Use this to stop a
crawl you no longer need.
When to use:
- Stopping a running crawl you started and no longer want
When NOT to use:
- Pausing temporarily — this permanently cancels the job (there is no resume)
Args:
params (CrawlerJobRefParams): job_id (required) — the id returned by
crawler_job_start.
Returns:
str: JSON confirming the job was cancelled.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint and idempotentHint as true. The description adds important context: 'Irreversibly cancels', 'removes it', and 'there is no resume', which goes beyond the annotations and informs the agent of the permanent nature of the action.
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-organized with clear sections (overview, when to use, when not to use, args, returns, raises). It is concise, with no unnecessary words, and every sentence serves a 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 the tool's simplicity, the description covers the purpose, usage conditions, parameters, return type, and possible errors. With annotations and schema, it provides complete context for an agent to use the tool correctly.
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 only parameter, job_id, is described as 'the id returned by crawler_job_start', which adds meaning beyond the schema's description. The description also mentions it is required, and the parameter structure is clear.
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 cancels and deletes a ScraperAPI crawl job. It specifies the verb 'Cancel and delete' and the resource 'crawl job', and distinguishes it from sibling tools like crawler_job_start and crawler_job_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?
The description explicitly includes 'When to use' and 'When NOT to use' sections, advising to use it for stopping a crawl and not to use it for pausing because the action is irreversible. This provides clear guidance on when to choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crawler_job_startA
Start a ScraperAPI crawl job from a starting URL.
Submits an asynchronous crawl that follows links matching a regex outward
from start_url and scrapes each page. Returns immediately with a job id and
status (e.g. {"status": "initiated", "jobId": "..."}); the crawl runs in the
background. Poll 'crawler_job_status' with the returned job id to track
progress, and/or provide a callback_url webhook to receive results.
When to use:
- Crawling multiple linked pages of a site (not a single known URL)
- Building a dataset by following links to a depth or credit budget
When NOT to use:
- Fetching one known URL (use the 'scrape' tool)
- A structured marketplace/SERP lookup (use the relevant SDE tool)
Args:
params (CrawlerJobStartParams): start_url and url_regexp_include are
required; provide either max_depth or crawl_budget to bound the
crawl. Optional: url_regexp_exclude, api_params, callback_url,
additional_data, schedule, enabled.
Returns:
str: JSON with the job id and initial status.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, the
inputs are invalid, or the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond annotations: asynchronous execution, immediate return with job id, background crawl, progress tracking methods, bounds via max_depth or crawl_budget, and error conditions (ToolError). 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-organized with paragraphs, bullet points, and clear sections. Every sentence adds value 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?
The description covers all necessary aspects: purpose, async behavior, tracking, parameters, error handling, and return format. With an output schema existing, the description doesn't need to detail return values further.
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?
While the schema has detailed descriptions for parameters, the tool description provides high-level guidance on required and optional parameters (e.g., start_url and url_regexp_include required, bounds alternatives).
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 starts a ScraperAPI crawl job from a starting URL, explaining it submits an asynchronous crawl that follows links matching a regex. It distinguishes from siblings like 'scrape' and SDE tools.
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 'When to use' and 'When NOT to use' sections are provided, naming alternative tools ('scrape' for single URLs, SDE tools for structured lookups) and explaining how to track progress via polling or webhook.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crawler_job_statusARead-onlyIdempotent
Get the status of a ScraperAPI crawl job.
Returns counts of pages that are done, failed, and active for the job,
letting you track progress and detect completion. Poll this after
'crawler_job_start' until the job is finished.
When to use:
- Tracking progress or detecting completion of a job from 'crawler_job_start'
When NOT to use:
- Retrieving the crawled page contents (those are delivered to the job's
callback_url webhook, not returned here)
Args:
params (CrawlerJobRefParams): job_id (required) — the id returned by
crawler_job_start.
Returns:
str: JSON with the job's page counts (done/failed/active).
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, openWorldHint, no destructiveHint. The description adds concrete details: returns JSON with counts, raises ToolError for missing API key, rate limit, or request failure. 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?
Well-structured with clear sections (main, when to use, when not, args, returns, raises). Slightly verbose but all sentences add value. Front-loaded with 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 the simple parameter set and rich annotations, the description covers return format, error conditions, relationship to other tools, and expected usage pattern. 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?
Only one parameter (params.job_id) whose description in the description reinforces the schema: 'job_id (required) — the id returned by crawler_job_start.' The schema itself has a description, but the description adds context by linking to the previous 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 'Get the status of a ScraperAPI crawl job' and specifies it returns counts of pages (done, failed, active). It distinguishes from siblings like crawler_job_start and crawler_job_delete by its polling 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?
Explicit 'When to use' and 'When NOT to use' sections: use for tracking progress/detecting completion, not for retrieving page contents (which go to callback_url). Mentions polling after crawler_job_start.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebay_productARead-onlyIdempotent
Retrieve parsed details for a single eBay listing by item ID.
Returns structured listing data — title, price, condition, seller info,
description, shipping, and item specifics — for one eBay item.
When to use:
- You have an eBay item ID and want its full structured details
- Listing monitoring, price/spec extraction
When NOT to use:
- You only have search keywords (use 'ebay_search' first)
Args:
params (EbayProductParams): product_id (required) plus optional tld,
country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured listing data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already indicate read-only, idempotent behavior), the description adds that the tool returns JSON or CSV output, mentions possible error conditions (missing API key, rate limit), and outlines the return structure. 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 a clear opening sentence, bulleted usage guidelines, and organized Args/Returns/Raises sections. Every sentence adds value, and the most critical information is 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 annotations (readOnly, idempotent, etc.) and the presence of an output schema, the description fully covers return format, error cases, and usage scenarios. No gaps identified.
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 description summarizes the parameters (required product_id, optional tld, country_code, output_format), but the input schema already provides detailed descriptions for each property. The description adds marginal additional 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 explicitly states the action ('Retrieve parsed details') and the resource ('single eBay listing by item ID'). It clearly distinguishes from sibling 'ebay_search' by specifying that this tool requires an item ID, not keywords.
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?
Includes dedicated 'When to use' and 'When NOT to use' sections, explicitly directing agents to use 'ebay_search' for keyword-only queries. This provides clear decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebay_searchARead-onlyIdempotent
Retrieve parsed eBay search results for a query.
Returns structured listing results — title, price, condition, seller, bids,
shipping, item ID, URL — for a keyword search on eBay, with pagination and
filtering by condition, buying format, seller, and sort order.
When to use:
- Discovering listings and their item IDs for a search term
- Price/market research, auction monitoring, seller analysis
When NOT to use:
- You already have an item ID (use 'ebay_product')
Args:
params (EbaySearchParams): query (required) plus optional page,
items_per_page, seller_id, condition, buying_format, show_only,
sort_by, tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful context about return formats (JSON/CSV) and potential errors (missing API key, rate limit, request failure). While it doesn't contradict annotations, it could have mentioned the pagination limit or rate limiting details more explicitly, but overall it provides adequate additional transparency.
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: a summary sentence, bullet points for when to use/not use, a compact parameter list, and explicit return/error sections. It is concise with no wasted words, and the most important information (purpose and usage) is 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?
The description covers all necessary contextual information: the tool returns structured data with specified fields, supports pagination and filtering, handles errors, and provides output format options. Since there is an output schema (mentioned in context), the description does not need to explain return values in detail. It is complete enough for an agent to understand the tool's behavior and constraints.
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?
Although the schema has detailed descriptions for each property, the tool description summarizes all parameters in the 'Args' section, explaining their purpose and constraints. It covers all 11 parameters (query required, optional page, items_per_page, etc.) and adds context like the output_format default. Given that schema description coverage is 0% (per context, likely referring to the top-level 'params' description), the description fully compensates by providing complete parameter documentation.
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 parsed eBay search results for a query, listing the returned fields (title, price, condition, etc.). It explicitly distinguishes from the sibling tool 'ebay_product' by specifying when not to use it (when you have an item ID), making the purpose very 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?
The description provides explicit guidance on when to use the tool (e.g., discovering listings, price research) and when not to use it (already have an item ID, with a direct alternative: use 'ebay_product'). This fully satisfies the usage guidelines dimension.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_jobsARead-onlyIdempotent
Retrieve parsed Google Jobs listings for a query.
Returns structured job postings (title, company, location, posting age,
source) from the Google Jobs widget for a query.
When to use:
- Aggregating job listings for a role, company, or location
- Labor-market or hiring research
When NOT to use:
- General web or news results (use 'google_search' / 'google_news')
Args:
params (GoogleJobsParams): query (required) plus optional localization
(country_code, gl, hl, uule), pagination (num, start), tld, and
output_format.
Returns:
str: JSON (default) or CSV containing the structured job listings.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by detailing return content, error conditions (ToolError for missing key, rate limit, request failure), and output formats. It is fully transparent and consistent 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 and front-loaded purpose. Every sentence adds value, there is no fluff, and it is appropriately sized 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 the tool has one parameter (nested object), comprehensive annotations, and an output schema, the description is complete. It covers usage context, return values, and error handling, leaving 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?
The input schema provides detailed descriptions for all parameters, so baseline is 3. The description lists the parameter groups but adds minimal extra meaning beyond what the schema already offers.
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 parsed Google Jobs listings for a query. It specifies the verb (Retrieve) and resource (parsed Google Jobs listings). It distinguishes from siblings like google_search and google_news by explicitly stating when NOT to use this tool and suggesting alternatives.
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 has explicit 'When to use' and 'When NOT to use' sections, providing clear context for usage. It guides the agent to use this tool for job aggregations and labor-market research, and to avoid it for general web results, directing to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_maps_searchARead-onlyIdempotent
Retrieve parsed Google Maps place/business results for a query.
Returns structured local business/place results (name, address, rating,
reviews count, category, coordinates) from Google Maps for a query,
optionally centered on a latitude/longitude and zoom level.
When to use:
- Local business discovery ('coffee shops in Austin')
- Building local listings datasets; location-based competitive research
When NOT to use:
- Non-local web results (use 'google_search')
- Driving directions or routing (not provided by this endpoint)
Args:
params (GoogleMapsSearchParams): query, latitude, and longitude are
required; optional zoom, country_code, tld, output_format, and
include_html.
Returns:
str: JSON (default) or CSV containing the structured maps results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds context: returns parsed structured results, can raise ToolError for missing API key or rate limits, and mentions output format 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, front-loaded with main purpose, but could be slightly more concise. Every sentence contributes meaning.
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 usage, return format, error cases, and optional params. Output schema exists, so return values not needed. Annotations cover safety. Fairly complete for a search 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 has low description coverage (0% per context), but description lists required params (query, latitude, longitude) and mentions optional ones (zoom, tld, etc.) without detail. Partially compensates.
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 parsed Google Maps place/business results, with a specific verb and resource. It distinguishes from siblings like google_search by noting it's for local results, not non-local web results.
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 'When to use' and 'When NOT to use' sections with examples (e.g., 'coffee shops in Austin') and alternatives (google_search for non-local results, not for directions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_newsARead-onlyIdempotent
Retrieve parsed Google News results for a query.
Returns structured news articles (title, source, link, timestamp, snippet)
for a query from Google News.
When to use:
- Monitoring news coverage or headlines for a topic, brand, or entity
- Time-bounded news scans (last hour/day/week or a custom date range)
When NOT to use:
- General web results (use 'google_search')
- Reading the full text of a specific article (use 'scrape' on its URL)
Args:
params (GoogleNewsParams): query (required) plus optional localization,
pagination, date filters (date_range_start/end, time_period), tld,
and output_format.
Returns:
str: JSON (default) or CSV containing the structured news results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds behavioral context: returns structured news, raises ToolError on API/rate-limit issues. No contradictions. Adds value 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 sections (when to use, args, returns, raises) and front-loads purpose. A bit verbose but acceptable; every section 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?
Given the moderate complexity (many parameters, output schema exists), the description covers purpose, usage, parameters, return format (JSON/CSV), and error conditions. Output schema covers return values, so description 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 description coverage is high (each parameter in GoogleNewsParams has a description). The tool description summarizes parameters briefly but does not add significant new meaning. 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 'Retrieve parsed Google News results for a query' and specifies the returned fields (title, source, link, timestamp, snippet). It distinguishes from sibling tools like 'google_search' and '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?
The description explicitly lists when to use (monitoring news, time-bounded scans) and when NOT to use (general web, reading full articles) with alternatives named. This provides excellent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_searchARead-onlyIdempotent
Retrieve parsed Google Search (SERP) results for a query.
Returns the organic results, ads, related searches, knowledge panels, and
pagination for a Google web search — already parsed into structured JSON —
without you having to scrape and parse the SERP HTML yourself.
When to use:
- Programmatic SERP data: rankings, titles, links, snippets for a keyword
- SEO/rank tracking, competitive research, or answer-engine grounding
- Time- or date-bounded searches (recent news-like results, date ranges)
When NOT to use:
- Fetching the content of a specific known URL (use the 'scrape' tool)
- Google News, Jobs, Shopping, or Maps — use the dedicated tool for each
Args:
params (GoogleSearchParams): query (required) plus optional
localization (country_code, gl, hl, uule), pagination (num, start),
date filters (date_range_start/end, time_period), tld, output_format,
include_html, and tbs.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes returns (JSON/CSV parsed), error conditions (missing API key, rate limits), and reinforces readOnlyHint=true by framing as retrieval. 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?
Well-organized into sections: main purpose, usage guidelines, args, returns, raises. Every sentence earns its place; 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, parameters, return format, and errors. With output schema and annotations, the description provides all necessary context 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 high (nested params have descriptions). The description adds value by grouping optional parameters into categories (localization, pagination, date filters) and noting required query, though detailed semantics are already in 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 it retrieves parsed Google Search results, lists specific components (organic results, ads, knowledge panels), and distinguishes from sibling tools by referencing dedicated tools for News, Jobs, Shopping, and Maps.
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 'When to use' and 'When NOT to use' sections with concrete examples: use for SERP data, SEO, rank tracking; not for specific URL scraping or other Google verticals. Includes alternatives like 'scrape' and dedicated tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_shoppingARead-onlyIdempotent
Retrieve parsed Google Shopping product results for a query.
Returns structured shopping listings (product title, price, merchant,
rating, link) from Google Shopping for a query.
When to use:
- Price comparison and product discovery across merchants
- Market/pricing research for a product keyword
When NOT to use:
- A specific marketplace's own data — use the Amazon/Walmart/eBay SDE tools
- General web results (use 'google_search')
Args:
params (GoogleShoppingParams): query (required) plus optional
localization, pagination, tld, output_format, and include_html.
Returns:
str: JSON (default) or CSV containing the structured shopping results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety and behavior. The description adds context about error conditions (missing API key, rate limit, request failure) and the output format (JSON/CSV). It does not fully detail pagination behavior beyond param hints, but overall it supplements the annotations well 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 concise with three paragraphs, a returns clause, and a raises clause. It is front-loaded with the core purpose and structured with clear sections (when to use, when not to use, args, returns). No extraneous information.
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's complexity (shopping search with multiple siblings), the description fully covers its role, distinguishes it from alternatives, explains typical use cases, and notes error conditions. It references an output schema, so no further detail on return values is needed. The description is self-contained for an AI agent to decide when and how to invoke it.
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 0% (the description does not repeat parameter details), but the schema itself has detailed descriptions for each parameter. The tool description refers to params by category (localization, pagination, etc.), which adds organizational value. Since the schema already provides full parameter semantics, the description's summary is sufficient and adds clarity.
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 uses a specific verb ('Retrieve parsed Google Shopping product results') and clearly identifies the resource ('for a query'). It lists the structured fields returned (product title, price, merchant, rating, link) and explicitly distinguishes from sibling marketplace tools (Amazon, Walmart, eBay) and general web search, making the 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?
The description includes explicit 'When to use' (price comparison, market research) and 'When NOT to use' sections, naming specific alternatives like amazon_search, walmart_search, and google_search. This provides clear decision criteria for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redfin_agentARead-onlyIdempotent
Retrieve parsed Redfin real-estate agent profile data.
Returns structured agent data — name, contact, brokerage, ratings, and
recent transactions/listings — from a Redfin agent profile page.
When to use:
- Extracting an agent's profile and activity from their Redfin URL
- Agent research or lead building
When NOT to use:
- Property or search data (use the other Redfin tools)
Args:
params (RedfinAgentParams): url (required, full Redfin agent profile
URL) plus optional tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured agent data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds context about return format (JSON/CSV) and error conditions (missing API key, rate limit, request failure), which complements 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 clear sections, concise sentences, and no redundant information. Every sentence serves a purpose, making it easy for an AI agent to parse quickly.
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's complexity (1 parameter with sub-properties), rich annotations, and presence of an output schema, the description is complete. It covers purpose, usage, parameters, return type, and error cases, leaving no gaps for the AI 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?
Despite 'Schema description coverage: 0%' in context, the actual schema input shows descriptions for each parameter. The description adds value by summarizing the required URL and optional parameters (tld, country_code, output_format) and explaining their purposes, going beyond the schema's individual 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 'Retrieve parsed Redfin real-estate agent profile data' and lists the specific data returned (name, contact, brokerage, ratings, transactions). It also explicitly distinguishes from property/search tools in the 'When NOT to use' section, differentiating it from sibling tools like redfin_for_sale and redfin_search.
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' (extracting agent profile, lead building) and 'When NOT to use' (property or search data, with reference to other Redfin tools). This gives clear guidance to the AI agent on when to select this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redfin_for_rentARead-onlyIdempotent
Retrieve parsed Redfin listing data for a rental property.
Returns structured rental data — rent, beds/baths, square footage, address,
description, photos, and availability — from a Redfin rental property page.
When to use:
- Extracting details for a specific rental from its Redfin URL
- Rental-market data collection or listing monitoring
When NOT to use:
- A for-sale listing (use 'redfin_for_sale')
- A search-results page (use 'redfin_search') or agent profile ('redfin_agent')
Args:
params (RedfinForRentParams): url (required, full Redfin rental URL)
plus optional raw, tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured rental data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. Description adds error conditions (ToolError for missing API key, rate limit exceeded, request failure). Does not contradict annotations. No further behavioral context needed.
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 clear sections (purpose, when to use/not use, args, returns, raises). Front-loaded with main action. Every sentence adds value 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?
Tool is a data retrieval endpoint with output schema and annotations. Description covers use cases, parameter summary, and error raising. Minor gap: rate limit details could be more explicit, but overall 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 descriptions cover all parameters (100% coverage), so baseline is 3. Description merely summarizes the parameters (url required, others optional) without adding new 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?
Description clearly states 'Retrieve parsed Redfin listing data for a rental property' with specific verb and resource. Lists returned fields and distinguishes from siblings by explicitly naming redfin_for_sale, redfin_search, and redfin_agent.
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?
Includes explicit 'When to use' and 'When NOT to use' sections with specific use cases and alternative tool names, providing excellent guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redfin_for_saleARead-onlyIdempotent
Retrieve parsed Redfin listing data for a home for sale.
Returns structured property data — price, beds/baths, square footage,
address, description, photos, price history, and listing details — from a
Redfin for-sale property page.
When to use:
- Extracting details for a specific for-sale property from its Redfin URL
- Real-estate data collection, comps, or listing monitoring
When NOT to use:
- A rental listing (use 'redfin_for_rent')
- A search-results page (use 'redfin_search') or agent profile ('redfin_agent')
Args:
params (RedfinForSaleParams): url (required, full Redfin property URL)
plus optional raw, tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured property data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds value by noting error conditions (missing API key, rate limit, request failure) and the output format, but does not mention caching or internal state changes, which are already covered by idempotency.
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, structured with clear sections (When to use, When NOT to use, Args, Returns, Raises). Every sentence adds value, and there is 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?
Given the existence of an output schema, the description adequately covers the return value. The tool is simple (one required param) and annotations cover safety. The description provides all necessary behavioral context beyond structured fields.
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 parameters are well-described in the input schema (100% coverage). The description only lists the parameters without adding new meaning, so it meets the baseline of 3. It does not provide extra 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 uses a specific verb 'Retrieve' and identifies the resource as 'parsed Redfin listing data for a home for sale'. It also lists the data fields (price, beds/baths, etc.) and distinguishes from siblings redfin_for_rent, redfin_search, and redfin_agent.
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 'When to use' and 'When NOT to use' sections provide clear guidance, naming alternative tools for rentals, search results, and agent profiles. The description helps the agent decide when to invoke this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redfin_searchARead-onlyIdempotent
Retrieve parsed Redfin search results for a search-results URL.
Returns a structured list of properties — address, price, beds/baths,
square footage, URL — from a Redfin search-results page (with its filters
encoded in the URL).
When to use:
- Collecting listings for an area or filter set from a Redfin search URL
- Building datasets of properties matching search criteria
When NOT to use:
- A single property (use 'redfin_for_sale' / 'redfin_for_rent')
Args:
params (RedfinSearchParams): url (required, full Redfin search URL with
filters) plus optional tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already indicate safety. Description adds return format details and potential errors (API key, rate limit, request failure), which are consistent 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 clear sections, no redundancy, and every sentence adds value. Efficient use of space.
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's complexity (single parameter with nested sub-params, output schema exists, annotations present), the description covers purpose, usage, parameters, return type, and errors comprehensively.
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 0%, so description must compensate. It lists all four parameters (url, tld, country_code, output_format) and explains url is required and must be a search-results URL, adding 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 verb 'Retrieve parsed Redfin search results' and specifies the resource 'for a search-results URL'. It distinguishes from sibling tools like redfin_for_sale and redfin_for_rent by explicitly noting when not to use them.
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?
Includes explicit 'When to use' and 'When NOT to use' sections, with specific mention of alternative tools (redfin_for_sale, redfin_for_rent). Provides clear context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
walmart_categoryARead-onlyIdempotent
Browse parsed products within a Walmart category by category ID.
Returns a structured list of products in a Walmart category, with
pagination.
When to use:
- Exploring products within a specific Walmart department/category
- Building category-level catalogs or monitoring a category
When NOT to use:
- Free-text product discovery (use 'walmart_search')
Args:
params (WalmartCategoryParams): category (required) plus optional
page, tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the category product list.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context about pagination, error conditions (ToolError), and output format options beyond the annotations which already indicate idempotent and non-destructive behavior. 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?
Well-structured with headings, concise yet informative. 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?
Output schema exists; description mentions return formats and errors. With rich annotations and sibling distinctions, coverage is good. Missing details on pagination behavior (e.g., max pages) but overall 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 0%, so description must compensate. It lists the parameters but only briefly repeats the schema's own descriptions without adding significant detail. Adequate but not exceptional.
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 browses parsed products within a Walmart category by ID, with pagination. Distinguishes from 'walmart_search' for free-text discovery.
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 'When to use' and 'When NOT to use' sections, clearly pointing to walmart_search as alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
walmart_productARead-onlyIdempotent
Retrieve parsed details for a single Walmart product by product ID.
Returns structured product data — name, brand, pricing, availability,
specifications, images, and review summary — for one Walmart listing.
When to use:
- You have a Walmart product ID and want its full structured details
- Product monitoring, catalog enrichment, price/spec extraction
When NOT to use:
- You only have a search term (use 'walmart_search' first)
- You want the product's reviews (use 'walmart_review')
Args:
params (WalmartProductParams): product_id (required) plus optional
tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured product data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds information on error conditions (API key, rate limit, request failure) and return format, 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?
Well-structured with clear sections, front-loaded purpose, and no wasted words. 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?
Covers purpose, usage guidelines, parameters, return type, and error conditions. Lacks explicit output schema details, but the listed data fields provide adequate context for a simple lookup 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?
The description summarizes parameters (product_id required, optional tld, country_code, output_format) but the schema already contains full descriptions. The description adds little new 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 retrieves parsed details for a single Walmart product by ID, explicitly distinguishes from siblings like walmart_search and walmart_review, and lists the data fields returned.
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?
Includes explicit 'When to use' and 'When NOT to use' sections with specific alternative tools (walmart_search, walmart_review), providing clear guidance on when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
walmart_reviewARead-onlyIdempotent
Retrieve parsed customer reviews for a Walmart product by product ID.
Returns structured reviews — rating, title, text, author, date, verified
purchase status — for one Walmart product, with pagination, sorting, and
rating/verified filters.
When to use:
- Sentiment analysis or review mining for a known Walmart product
- Tracking new reviews or filtering by star rating
When NOT to use:
- You want the product's own details (use 'walmart_product')
- You only have a search term (use 'walmart_search' to get the ID first)
Args:
params (WalmartReviewParams): product_id (required) plus optional page,
sort, ratings, verified_purchase, tld, country_code, and
output_format.
Returns:
str: JSON (default) or CSV containing the structured reviews.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds valuable context: returns structured reviews with specific fields, supports pagination and filters, and raises ToolError for API/rate-limit issues. 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 sections, bullet points, and front-loaded purpose. Every sentence contributes value, though the 'Args:' section partly duplicates schema info. Overall efficient and readable.
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 annotations and schema richness, the description adequately covers return format (JSON/CSV with fields), use cases, and error handling. No output schema is provided, but the description explains return structure sufficiently for an agent to understand what to expect.
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 detailed descriptions for all parameters (100% coverage), so baseline is 3. The description lists the parameters but doesn't add much meaning beyond what the schema already provides; it does clarify that product_id is required and that optional params enable pagination/sorting/filters.
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 parsed customer reviews for a Walmart product by product ID. It specifies the verb (retrieve), resource (reviews), and unique identifier. The 'When NOT to use' section distinguishes it from siblings like walmart_product and walmart_search.
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 'When to use' and 'When NOT to use' sections are provided, with clear context for sentiment analysis or review mining and alternatives for product details or search. This gives direct guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
walmart_searchARead-onlyIdempotent
Retrieve parsed Walmart product search results for a query.
Returns structured search results — product name, price, rating, review
count, product ID, URL, image — plus pagination, for a keyword search on
Walmart.
When to use:
- Discovering products and their Walmart product IDs for a search term
- Price/market research and catalog building across a category
When NOT to use:
- You already have a product ID (use 'walmart_product' / 'walmart_review')
Args:
params (WalmartSearchParams): query (required) plus optional page,
tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds value by specifying error conditions (missing API key, rate limit, request failure) and the return format (JSON or CSV), which goes 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?
The description is concise yet comprehensive, with clear sections for usage guidance, args, returns, and raises. It is front-loaded with the core purpose and economically uses sentences.
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 rich annotations and the presence of an output schema, the description covers all necessary aspects: purpose, usage constraints, parameter hints, error handling, and return format. It is sufficient for an agent to invoke correctly.
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 high; each parameter in the input schema has a detailed description. The tool description only lists parameter names briefly without adding deeper meaning. Baseline 3 is appropriate as the schema handles parameter semantics well.
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 retrieves Walmart product search results for a query, listing specific fields returned (product name, price, rating, etc.) and pagination. It distinguishes itself from siblings by explicitly mentioning when not to use it and naming alternatives like walmart_product and walmart_review.
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 scenarios (discovering products, price research, catalog building) and when-not-to-use with named alternative tools (walmart_product, walmart_review). This guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct domain and action: AI parser management, Amazon, eBay, Google services, Redfin, Walmart, and crawling. No two tools have overlapping purposes, and descriptions clearly specify when to use each.
All tool names follow a consistent snake_case pattern of domain_specific_action (e.g., amazon_product, google_search, crawler_job_start). No mixing of styles or vague verbs.
27 tools is slightly high but appropriate given the broad scope covering general scraping, AI parsing, crawling, and multiple marketplaces/real estate. Each tool has a clear purpose, though the count could be trimmed.
Despite covering many domains, the server lacks a basic 'scrape' tool for arbitrary URLs, which is a core function implied by the name. This omission forces reliance on platform-specific tools for simple fetching, creating a notable gap.
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
Zenrows MCP server — Fetch, Extract, Batch, and Browser Sessions for AI coding assistants
9 remote MCP servers on Cloudflare Workers for AI agents. Free tier + Pro API keys.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Related MCP Servers
- AlicenseBqualityDmaintenanceA local web scraping MCP server with RAG capabilities that provides intelligent web search, content extraction, and screenshot tools without requiring API keys.416MIT
- AlicenseNot gradedqualityBmaintenanceMCP server that lets AI agents use your real browser as an API, accessing any website with your login state, no keys or scrapers needed.1MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI tools a reliable way to fetch content from the web, handling anti-bot protection and JavaScript-rendered pages.885MIT
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/scraperapi/scraperapi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server