Skip to main content
Glama
outscraper

Outscraper MCP

Official
by outscraper

Outscraper MCP

Official MCP server for Outscraper.

Connect AI agents to Outscraper for business discovery, Google Maps intelligence, company and contact enrichment, review analysis, search, and structured web extraction.

Best For

  • local business prospecting and lead generation

  • Google Maps place, photo, and review intelligence

  • company and contact enrichment from known domains

  • async data collection workflows with polling

  • extracting structured information from a single page

Related MCP server: HasData MCP Server

Not Ideal For

  • browser automation or multi-step UI interaction

  • generic OAuth-based SaaS integrations

  • arbitrary document search outside the Outscraper data surface

  • website crawling sessions that require a persistent browser

Common Workflows

  • find businesses with businesses_search, then enrich a chosen record with businesses_get

  • search Google Maps places, then fetch reviews or photos for reputation analysis

  • enrich a company domain, validate emails, and check contact coverage

  • submit async jobs, then poll them with requests_get

  • extract structured data from a page with ai_scraper

It exposes production-ready MCP tools for:

  • business discovery and enrichment

  • Google Maps places, reviews, photos, and chain detection

  • company insights, emails, email validation, and phone enrichment

  • Google Search and Google Images search

  • Yellow Pages, Booking, Yelp, Tripadvisor, Trustpilot, and Indeed data

  • account balance checks and async request lifecycle management

The server supports stdio and HTTP transports, npm-based installation, hosted header or URL auth, and a normalized structuredContent result shape for MCP clients and agents.

What It Does

This MCP server exposes Outscraper data sources and enrichment workflows to MCP-compatible clients.

It is designed for:

  • business and place discovery

  • Google Maps review and photo retrieval

  • contact and company enrichment

  • AI-assisted structured extraction from a single page with ai_scraper

  • async request submission and polling through requests_get

In practice, the server acts as a thin MCP layer over the Outscraper API:

  • MCP clients call tools on this server

  • the server authenticates with an Outscraper API key

  • requests are forwarded to Outscraper endpoints

  • results are returned in a normalized MCP tool envelope

Quick Start

set OUTSCRAPER_API_KEY=YOUR_API_KEY
npx -y outscraper-mcp

For MCP clients, configure:

  • command: npx

  • args: ["-y", "outscraper-mcp"]

  • env: OUTSCRAPER_API_KEY=YOUR_API_KEY

For task-oriented workflows, copy-paste examples, and example agent skills, see the examples folder.

Current Tools

  • ping

  • businesses_search

  • businesses_get

  • ai_scraper

  • google_maps_search

  • google_maps_reviews

  • company_insights

  • emails_and_contacts

  • emails_validator

  • google_maps_photos

  • chain_info

  • yellowpages_search

  • booking_reviews

  • phones_enricher

  • tp_data (legacy alias for trustpilot_data)

  • trustpilot_data

  • tp_reviews (legacy alias for trustpilot_reviews)

  • trustpilot_reviews

  • yelp_reviews

  • tripadvisor_search

  • tripadvisor_reviews

  • google_search

  • google_search_images

  • indeed_search

  • balance_get

  • requests_get

  • requests_list

  • requests_delete

These tools are aligned to the current documented Outscraper API shapes, including:

  • POST /businesses

  • POST /ai-scraper

  • GET /businesses/{business_id}

  • GET /google-maps-search

  • GET /google-maps-photos

  • GET /google-search

  • GET /google-search-images

  • GET /yellowpages-search

  • GET /booking-reviews

  • GET /phones-enricher

  • GET /trustpilot

  • GET /trustpilot-reviews

  • GET /yelp-reviews

  • GET /tripadvisor-search

  • GET /tripadvisor-reviews

  • GET /indeed-search

  • GET /google-maps-reviews

  • GET /company-insights

  • GET /emails-and-contacts

  • GET /email-validator

  • documented ai_chain_info enrichment via google-maps-search

  • GET /profile/balance

  • GET /requests/{requestId}

  • DELETE /requests/{requestId}

  • GET /requests

Unified Tool Result Shape

Every tool now returns the same structured envelope:

{
  "data": {},
  "meta": {
    "service": "company_insights",
    "operation": "get"
  },
  "async": {
    "id": "request-id",
    "status": "Pending",
    "results_location": "https://api.outscraper.com/requests/request-id",
    "is_async_submission": true,
    "next_step": "Call requests_get with request_id=\"request-id\" to check progress."
  }
}

async is present when the response is an async submission or exposes async request metadata.

Execution Mode

Async-capable tools now accept:

{
  "execution_mode": "auto"
}

Available values:

  • auto: let the MCP server choose sync or async

  • sync: force direct response mode

  • async: force async submission mode

The old boolean async is still accepted for compatibility, but execution_mode now has priority.

Install

The recommended way to use this MCP server is from npm.

Run from npm

npx -y outscraper-mcp

Provide OUTSCRAPER_API_KEY through your MCP client config or shell environment.

The server auto-loads .env on startup via dotenv.

On Windows, if a client cannot find npx, use the full Node.js path instead, for example:

{
  "command": "C:\\Program Files\\nodejs\\npx.cmd",
  "args": ["-y", "outscraper-mcp"]
}

Security

Security-sensitive issues should be reported according to SECURITY.md.

Connection Modes

The server currently supports these connection patterns:

1. Local stdio MCP

Best for:

  • Claude Desktop

  • Claude Code

  • Cursor

  • VS Code

  • Windsurf

  • local MCP development

Auth source:

  • OUTSCRAPER_API_KEY environment variable

Transport:

  • local process over stdio

2. Remote stateless Streamable HTTP

Best for:

  • hosted MCP endpoints

  • n8n

  • reverse proxy or domain-based deployment

  • containerized remote usage

Auth source when CLOUD_SERVICE=true:

  • X-OUTSCRAPER-API-KEY

  • X-API-KEY

  • Authorization: Bearer <api-key>

  • /v1/mcp/<api-key> path auth

Transport:

  • HTTP POST /mcp

  • HTTP POST /v1/mcp/<api-key>

3. Remote stateful HTTP/SSE

Best for:

  • session-based MCP usage

  • clients that rely on stateful HTTP transport semantics

Auth source when CLOUD_SERVICE=true:

  • the same header or URL-based auth options as stateless HTTP

Transport:

  • POST /mcp

  • GET /mcp

  • DELETE /mcp

  • and the same /v1/mcp/<api-key> route pattern

Note:

  • stateful mode stores sessions in process memory, so it is better suited to a single instance or sticky-session deployment than horizontal scaling

ChatGPT Connector

If you want to connect this server to ChatGPT as a remote MCP connector, the simplest hosted form is:

https://your-domain.example/v1/mcp/YOUR_API_KEY

Recommended setup:

  1. Deploy the server over HTTPS behind a real domain or reverse proxy.

  2. Enable hosted mode with CLOUD_SERVICE=true.

  3. Use the URL-auth route if the connector cannot attach custom auth headers.

  4. Prefer header auth for server-to-server clients when custom headers are available.

Typical connector values:

  • Name: Outscraper MCP

  • Description: Business discovery, Google Maps data, enrichment, search, and AI scraping

  • MCP Server URL: https://your-domain.example/v1/mcp/YOUR_API_KEY

  • Authentication: None

Notes:

  • URL-auth is the most convenient option for connector-style setup, but it is less private than header auth because URLs are more likely to appear in logs.

  • Avoid temporary tunnels that inject browser warning pages unless your connector can bypass them cleanly.

Hosted Header Auth Mode

If you want hosted behavior, enable:

set CLOUD_SERVICE=true

Then the HTTP caller can send the Outscraper API key in one of these headers:

  • Authorization: Bearer <api-key>

  • X-API-KEY: <api-key>

  • X-OUTSCRAPER-API-KEY: <api-key>

In CLOUD_SERVICE=true HTTP mode, request headers are used as the API key source. In local stdio mode, OUTSCRAPER_API_KEY is still required. HTTP requests without one of these auth forms are rejected before MCP processing begins.

Hosted URL Auth Mode

For ChatGPT-style connectors or other hosted setups that cannot send custom headers, you can also pass the API key in the path:

http://localhost:3000/v1/mcp/YOUR_API_KEY

This route supports the same MCP behavior as /mcp, but authenticates from the URL path when CLOUD_SERVICE=true. For server-to-server integrations, header auth is still preferred because URL-based API keys are more likely to appear in logs.

Run with Streamable HTTP

set HTTP_STREAMABLE_SERVER=true
set HOST=localhost
set PORT=3000
npx -y outscraper-mcp

MCP endpoint:

http://localhost:3000/mcp

Hosted URL auth endpoint:

http://localhost:3000/v1/mcp/YOUR_API_KEY

Health endpoint:

http://localhost:3000/health

Run with Docker Compose

This repository also includes a docker-compose.yml for hosted/container deployments:

docker compose up --build -d

Default container behavior:

  • binds 3000:3000

  • enables CLOUD_SERVICE=true

  • enables stateless Streamable HTTP

  • listens on 0.0.0.0

  • uses https://api.outscraper.com as the upstream API base URL

Endpoints:

http://localhost:3000/mcp
http://localhost:3000/v1/mcp/YOUR_API_KEY
http://localhost:3000/health

Important notes for Docker usage:

  • this compose file is intended for hosted remote access, not local stdio clients

  • by default it expects callers to authenticate per request, not through a single server-wide API key

  • if you put the service behind a domain or reverse proxy, prefer header auth for server-to-server usage

  • URL auth is available mainly for connector flows that cannot attach custom headers

Run with Stateful HTTP/SSE Mode

This mode uses local session management:

set SSE_LOCAL=true
set HOST=localhost
set PORT=3000
npx -y outscraper-mcp

You can also enable the same mode with:

set HTTP_STATEFUL_SERVER=true
set HOST=localhost
set PORT=3000
npx -y outscraper-mcp

In this mode the server accepts:

  • POST /mcp for initialize and subsequent requests

  • GET /mcp for the session stream

  • DELETE /mcp for session termination

The session is tracked through the mcp-session-id header.

Hosted URL auth also works in stateful mode through:

http://localhost:3000/v1/mcp/YOUR_API_KEY

Client Setup

Add this to your Claude Desktop MCP config:

{
  "mcpServers": {
    "outscraper": {
      "command": "npx",
      "args": ["-y", "outscraper-mcp"],
      "env": {
        "OUTSCRAPER_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Add the server with the Claude Code CLI:

claude mcp add outscraper -e OUTSCRAPER_API_KEY=YOUR_API_KEY -- npx -y outscraper-mcp

Add this to your global MCP configuration:

{
  "mcpServers": {
    "outscraper": {
      "command": "npx",
      "args": ["-y", "outscraper-mcp"],
      "env": {
        "OUTSCRAPER_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Add this to your MCP config:

{
  "mcpServers": {
    "outscraper": {
      "command": "npx",
      "args": ["-y", "outscraper-mcp"],
      "env": {
        "OUTSCRAPER_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

For settings.json:

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "outscraperApiKey",
        "description": "Outscraper API Key",
        "password": true
      }
    ],
    "servers": {
      "outscraper": {
        "command": "npx",
        "args": ["-y", "outscraper-mcp"],
        "env": {
          "OUTSCRAPER_API_KEY": "${input:outscraperApiKey}"
        }
      }
    }
  }
}

Use the standard stdio command form:

{
  "mcpServers": {
    "outscraper": {
      "command": "npx",
      "args": ["-y", "outscraper-mcp"],
      "env": {
        "OUTSCRAPER_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

For n8n or other HTTP MCP clients, run the server in Streamable HTTP mode:

set HTTP_STREAMABLE_SERVER=true
set HOST=localhost
set PORT=3000
set OUTSCRAPER_API_KEY=YOUR_API_KEY
npx -y outscraper-mcp

Then use:

http://localhost:3000/mcp

Tool Examples

Search businesses with structured filters

{
  "filters": {
    "country_code": "US",
    "states": ["NY"],
    "cities": ["New York"],
    "types": ["restaurant", "cafe"]
  },
  "fields": ["name", "phone", "website", "address", "rating", "reviews"],
  "limit": 25
}

Natural-language query support on /businesses currently depends on Outscraper's own parser behavior. In live testing, structured filters were reliable while free-form query values often returned Could not parse query into a valid request format.

Extract structured data with AI Scraper

{
  "query": "https://outscraper.com",
  "prompt": "Extract company name, company description, and people mentioned on the page.",
  "schema": {
    "type": "object",
    "required": [],
    "properties": {
      "company_name": { "type": "string" },
      "company_description": { "type": "string" },
      "people": {
        "type": "array",
        "items": { "type": "string" }
      }
    }
  },
  "execution_mode": "sync"
}

Use execution_mode: "async" if you want a request id and plan to poll later with requests_get.

Get one business

{
  "business_id": "YOUR_BUSINESS_ID",
  "fields": ["name", "phone", "website", "address", "rating", "reviews"]
}

Search Google Maps

{
  "query": ["restaurants brooklyn usa"],
  "limit": 20,
  "language": "en",
  "region": "us"
}

Fetch Google Maps reviews

{
  "query": ["ChIJrc9T9fpYwokRdvjYRHT8nI4"],
  "reviews_limit": 20,
  "sort": "newest",
  "language": "en"
}

Get company insights

{
  "query": ["outscraper.com"],
  "fields": ["name", "description", "industry"],
  "execution_mode": "async"
}

Find emails and contacts

{
  "query": ["outscraper.com"],
  "preferred_contacts": ["technical", "decision makers"],
  "execution_mode": "sync"
}

Validate email addresses

{
  "query": ["support@outscraper.com"],
  "execution_mode": "sync"
}

Fetch Google Maps photos

{
  "query": ["NoMad Restaurant, NY, USA"],
  "photos_limit": 5,
  "limit": 1,
  "execution_mode": "sync"
}

Get chain info

{
  "query": ["Starbucks, New York, NY, USA"],
  "limit": 1,
  "execution_mode": "sync"
}

Get Trustpilot business data

{
  "query": ["outscraper.com"],
  "execution_mode": "sync"
}

Search Google

{
  "query": ["outscraper"],
  "pages_per_query": 1,
  "execution_mode": "sync"
}

Search Google Images

{
  "query": ["outscraper"],
  "limit": 5,
  "execution_mode": "sync"
}

Search Indeed

{
  "query": ["https://www.indeed.com/jobs?q=software+engineer&l=New+York%2C+NY"],
  "limit": 10,
  "execution_mode": "sync"
}

Check account balance

{}

Delete async request

{
  "request_id": "YOUR_REQUEST_ID"
}

Known Limitations

  • businesses_search works reliably with structured filters, but free-form query values on /businesses may fail with Could not parse query into a valid request format. This behavior was reproduced against the live API, not only inside the MCP layer.

  • ai_scraper works best through POST with a JSON body. In live validation, POST accepted prompt and schema reliably, while GET variants around schema and query_schema did not match the same behavior consistently.

  • When Outscraper OpenAPI examples and live API behavior differ, live endpoint behavior should be treated as the source of truth.

  • businesses_search is intentionally exposed here as a synchronous MCP tool because the current /businesses OpenAPI shape is request-body-based and did not prove to be a stable async-style workflow during live validation.

  • execution_mode="auto" is heuristic-driven. It is designed to choose a practical default, but callers that need deterministic behavior should explicitly use sync or async.

  • HTTP hosted mode requires correct auth headers when CLOUD_SERVICE=true; stdio mode still expects OUTSCRAPER_API_KEY in the process environment.

  • chain_info is implemented from the documented ai_chain_info enrichment on google-maps-search, because Outscraper currently does not describe a standalone chain info endpoint.

  • builtwith is not currently exposed as a tool because Outscraper currently does not document a dedicated BuiltWith endpoint.

Tool Selection Notes

  • Use businesses_search for structured business discovery with filters and cursor pagination.

  • Use businesses_get once you already have a concrete business id.

  • Use google_maps_search for Google Maps-style place discovery from human search queries.

  • Use google_maps_reviews when the user specifically needs review data rather than place discovery.

  • Use company_insights for firmographics and company profile enrichment.

  • Use emails_and_contacts for contact discovery from known domains.

  • Use requests_get, requests_list, and requests_delete only for async lifecycle management.

  • Use balance_get for account and billing checks, not business data retrieval.

Notes

  • The server supports stdio, stateless Streamable HTTP, and stateful local HTTP/SSE mode.

  • CLOUD_SERVICE=true enables header-based API key resolution for HTTP requests.

  • For npm publication, package contents are intentionally limited to runtime artifacts and docs.

  • Client-specific config snippets in this README are meant as practical templates; the exact settings UI and config key names may vary slightly between MCP clients and versions.

Available Tools

28 tools
ai_scraperAI ScraperAInspect

Extract structured information from a web page with Outscraper AI Scraper.

Best for:

  • scraping one page and turning it into structured JSON

  • extracting company, people, product, or document metadata from a site

  • guiding extraction with both a prompt and a JSON-schema-like shape

This tool is best for extracting structured data from a single page.

How schema works:

  • schema describes the shape of the output you want back

  • use type="object" with properties for named fields

  • use type="array" with items when a field should be a list

  • add required when some fields must be present

Example schema: { "type": "object", "required": [], "properties": { "company_name": { "type": "string" }, "company_description": { "type": "string" }, "people": { "type": "array", "items": { "type": "string" } } } }

Execution notes:

  • execution_mode="sync" requests a direct response

  • execution_mode="async" returns a request id for polling with requests_get

  • if both prompt and schema are provided, prompt guides the extraction and schema shapes the output

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne URL to scrape, for example https://outscraper.com.
promptNoNatural-language extraction instructions, for example what to summarize or pull from the page.
schemaNoExtraction schema describing the shape of the result. This is typically a JSON-schema-like object with type, properties, and optional required fields.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations are not provided, so the description carries full responsibility. It discloses execution_mode behavior (sync vs async), explains that async returns a request id for polling with requests_get, and describes how schema shapes the output. This is substantive, but it does not address failure modes or rate limits.

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

Conciseness4/5

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

The description is well-structured with headers ('Best for', 'How schema works', 'Execution notes') and leads with purpose. The example schema JSON is informative and earns its place, though it does lengthen the description slightly.

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

Completeness4/5

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

For a tool with nested schema and 5 parameters, the description covers schema semantics, execution modes, and the combined use of prompt and schema. An output schema is present, so return value details are not necessary. Minor gaps like page size limitations exist but do not undermine completeness.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description exceeds this by explaining execution_mode values (sync/async) and providing a detailed schema example with type, properties, and required guidance, adding meaning beyond the raw parameter descriptions.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Extract structured information from a web page with Outscraper AI Scraper.' It further clarifies scope with 'Best for scraping one page and turning it into structured JSON' and explicitly distinguishes from sibling tools by stating it is best for structured data from a single page.

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

Usage Guidelines4/5

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

The 'Best for' section lists clear use cases, and the description states 'This tool is best for extracting structured data from a single page.' It does not explicitly name alternative tools or state when not to use it, but the context is strong and unambiguous.

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

balance_getOutscraper BalanceAInspect

Fetch the current Outscraper account balance and billing summary for the active API key.

Best for:

  • checking whether the key is attached to a funded account

  • confirming account status before running larger jobs

  • reading upcoming invoice and usage billing details

Use this when:

  • you want a quick health check for the current API key/account

  • you need to confirm available balance before large async jobs

  • you are debugging whether billing or account status might explain API behavior

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. The verb 'Fetch' implies a read-only operation, and the content emphasizes account status and billing details. However, it does not explicitly state that the tool has no side effects, does not consume credits, or require special permissions beyond the active API key, which would strengthen transparency.

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

Conciseness4/5

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

The description is well-structured with a lead sentence followed by bullet-point sections. It is slightly repetitive between 'Best for' and 'Use this when', but each bullet carries meaningful information and the main point is front-loaded.

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

Completeness5/5

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

Given the tool's simplicity (zero parameters) and the presence of an output schema, the description adequately covers purpose, usage context, and decision-making scenarios. It answers why and when to use the tool without needing to describe return values, which are handled by the output schema.

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

Parameters4/5

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

The tool has zero parameters (input schema properties are empty), so per the baseline rule for 0 params, the description need not explain parameter semantics. The mention of 'active API key' adds useful context about implicit authentication.

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

Purpose5/5

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

The description clearly states the tool's function: 'Fetch the current Outscraper account balance and billing summary for the active API key.' This uses a specific verb (fetch) and names the resource (balance/billing summary), effectively distinguishing it from sibling search and data tools.

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

Usage Guidelines4/5

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

The description provides concrete 'Best for' and 'Use this when' sections with explicit scenarios like checking whether the key is attached to a funded account and confirming account status before running larger jobs. It does not explicitly mention alternatives or when-not-to-use, but the 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.

booking_reviewsBooking ReviewsBInspect

Fetch Booking reviews with the documented /booking-reviews endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoSkip reviews.
sortNoBooking sort parameter.
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more Booking URLs.
cutoffNoCutoff value accepted by Outscraper.
fieldsNoSpecific fields to return.
regionNoRegion code.
webhookNoOptional webhook URL for async completion.
languageNoLanguage code.
reviews_limitNoMaximum reviews per query.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the endpoint, with no mention of asynchronous behavior, pagination, authentication, rate limits, or response handling. The schema hints at async options and webhooks but the description adds no behavioral context.

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

Conciseness5/5

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

The description is a single sentence with no filler or repetition. It is front-loaded with the core action and resource. Though sparse, it is appropriately concise for the information it conveys.

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

Completeness2/5

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

Despite an output schema existing and 11 parameters (1 required), the description provides no guidance on how to construct queries, what the endpoint returns, or any operational details. For a tool with this complexity, it is insufficiently contextualized.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema documents all 11 parameters. The description adds no extra meaning beyond saying 'Booking reviews' and the endpoint name. Baseline of 3 is appropriate since schema does the heavy lifting.

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

Purpose5/5

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

The description uses a specific verb ('Fetch') and resource ('Booking reviews'), and explicitly names the endpoint ('/booking-reviews'), making its purpose clear. It distinguishes itself from sibling review tools by focusing on Booking specifically.

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

Usage Guidelines3/5

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

The description implies usage for Booking reviews but provides no explicit guidance on when to choose this over alternatives like tripadvisor_reviews or yelp_reviews. No exclusions or alternative suggestions are given, leaving the context implicit.

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

businesses_getOutscraper Business DetailsAInspect

Get one business by Outscraper business id.

Best for:

  • loading the full detail payload for a business found via businesses_search

  • fetching a smaller field-selected payload for one known business id

Use this after businesses_search when you already know the exact business id.

Do not use this for discovery:

  • use businesses_search to find records first

  • then call businesses_get for the exact item you want to enrich or inspect

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoSpecific fields to return.
business_idYesOutscraper business id returned by /businesses search.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.7/5.0
Behavior4/5

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

Without annotations, the description carries the transparency burden. It clearly implies a read-only operation via 'Get' and adds useful behavioral nuance: calling without fields returns a full detail payload, while including fields returns a smaller selected payload. It does not mention error behavior or authentication, but for a simple get-by-id tool this is sufficient.

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

Conciseness5/5

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

The description is well-structured: an opening one-sentence summary, 'Best for' bullets, and a clear do-not-use section. Every sentence adds value, with no fluff or repetition, making it easy to scan and parse.

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

Completeness5/5

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

Given the tool's simplicity (one required parameter, one optional parameter) and the presence of an output schema, the description fully covers purpose, usage context, parameter behavior, and relationship to sibling tools. It leaves no significant gaps for an agent to select and invoke this tool correctly.

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

Parameters4/5

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

The input schema covers both parameters with descriptions (100% coverage), so the baseline is 3. The description adds extra meaning by explaining that omitting fields yields the full detail payload and including fields produces a smaller field-selected payload, which clarifies the practical effect of the fields parameter beyond the schema's 'Specific fields to return.'

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

Purpose5/5

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

The description clearly states 'Get one business by Outscraper business id,' specifying the exact action and resource. It also distinguishes itself from businesses_search by explicitly positioning this tool for post-search enrichment rather than discovery.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance with 'Best for' bullets and a direct 'Do not use this for discovery' exclusion. It names the alternative tool (businesses_search) and gives a clear workflow: search first, then call businesses_get for a specific id.

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

chain_infoChain InfoAInspect

Detect chain membership using the documented ai_chain_info enrichment.

This tool uses the documented enrichment on top of the Google Maps search pipeline. Use it when you want to know whether a business is part of a chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoDeprecated compatibility flag. Prefer execution_mode.
limitNoOrganizations per query limit.
queryYesOne or more Google Maps-style business queries.
regionNoRegion code.
webhookNoOptional webhook URL for async completion.
languageNoLanguage code.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions it uses an 'enrichment' on top of a pipeline but does not disclose any side effects, permissions, rate limits, or the fact that the tool supports synchronous/asynchronous execution via execution_mode/webhook parameters. This is a significant gap for a tool with 7 parameters.

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

Conciseness5/5

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

The description is three sentences with no fluff. It front-loads the primary purpose, provides context about the underlying pipeline, and ends with a clear usage directive. Every sentence contributes value.

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

Completeness3/5

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

The output schema exists, so return values are covered. However, the description does not mention the async execution capabilities (execution_mode, async, webhook parameters), which are important behavioral options for this tool. The description is sufficient for a basic read operation but misses a key aspect of the tool's flexibility.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents all 7 parameters. The description adds no parameter-specific meaning beyond the schema, making the baseline score of 3 appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Detect chain membership' and explicitly states the tool's purpose: determining whether a business is part of a chain. It also mentions the underlying pipeline ('Google Maps search pipeline') and the documented ai_chain_info enrichment, which distinguishes it from sibling search tools like businesses_search or google_maps_search.

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

Usage Guidelines4/5

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

The description provides an explicit 'Use it when you want to know whether a business is part of a chain.' This clearly indicates the intended usage context. However, it does not mention when not to use it or explicitly name alternative tools, so it doesn't earn a 5.

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

company_insightsCompany InsightsAInspect

Get structured company-level insight data from Outscraper.

Best for:

  • enriching known companies or domains

  • pulling structured company metadata instead of raw search results

  • larger async enrichment jobs that can be tracked later with requests_get

Prefer this tool when:

  • the user already has domains or company URLs

  • the goal is firmographics, company profile data, size, revenue, industry, or founding details

  • you want structured company enrichment rather than contact extraction

Use async mode when:

  • you send many companies at once

  • the endpoint is expected to do expensive enrichment work

Use emails_and_contacts instead when:

  • the user mainly wants emails, phones, socials, or people/contact data

  • company profile enrichment is secondary to lead/contact discovery

Returns:

  • direct response payload in sync mode

  • async request metadata in async mode

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more company domains, company names, or URLs supported by Outscraper.
fieldsNoSpecific company insight fields to return. Leave empty to receive the default payload.
webhookNoOptional webhook URL for async completion.
enrichmentsNoOptional enrichments supported by Outscraper for company insights.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It explains the sync/async execution modes and the return style for each ('direct response payload' vs 'async request metadata'), and mentions tracking with requests_get. It does not delve into rate limits, authentication, or error conditions, but for a read-only enrichment tool this is a reasonable level of detail.

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

Conciseness4/5

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

The description is well-organized into clear sections with headers, making it easy to scan. It is front-loaded with the core purpose and maintains focus, though there is some redundancy between the 'Best for' and 'Prefer this tool when' sections that could be trimmed without losing meaning.

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

Completeness4/5

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

The description covers the tool's primary purpose, typical use cases, alternative tools, and both sync and async execution behavior. Since an output schema is present, the absence of a detailed return-field breakdown is acceptable. It lacks explicit discussion of webhook behavior and error handling, but overall it is complete enough for an agent to select and invoke the tool correctly in most situations.

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

Parameters3/5

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

The input schema already documents all six parameters with 100% coverage, including descriptions for query, fields, webhook, enrichments, and execution_mode. The description adds contextual guidance on when to use async versus sync mode, but does not meaningfully enhance parameter-level semantics beyond what the schema provides, so the baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Get structured company-level insight data from Outscraper,' identifying a specific verb, resource, and data type. It further clarifies the scope with concrete examples (firmographics, size, revenue, industry, founding) and explicitly distinguishes itself from the sibling tool emails_and_contacts.

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

Usage Guidelines5/5

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

The description provides explicit 'Prefer this tool when' and 'Use emails_and_contacts instead when' sections, clearly defining when to use this tool versus a direct alternative. It also gives guidance on choosing async mode for large batches and expensive enrichment, leaving no ambiguity.

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

emails_and_contactsEmails And ContactsAInspect

Find emails, phones, and social/contact data from one or more company domains.

Best for:

  • domain-based lead enrichment

  • finding reachable company contacts from a known website

  • quick contact discovery before running heavier enrichment flows

Prefer this tool when:

  • the user already knows the company website or domain

  • the main goal is contact discovery rather than company metadata

  • you want emails, phones, socials, and website-derived contact details

Use async mode when:

  • you send many domains at once

  • you expect the crawl/enrichment to take longer

  • you want to track progress later with requests_get

Use company_insights instead when:

  • the user wants firmographics, company profile, revenue, size, or founding details

  • contact data is not the main objective

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more domains or URLs, for example outscraper.com.
webhookNoOptional webhook URL for async completion.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.
preferred_contactsNoOptional contact-role prioritization.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.5/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden. It discloses async behavior, performance expectations ('crawl/enrichment to take longer'), and progress tracking via requests_get. It does not mention rate limits or auth requirements, but for a contact-discovery tool these are less critical.

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

Conciseness4/5

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

Well-structured bullets, front-loaded with a one-sentence summary. Some redundancy between 'Best for' and 'Prefer this tool when' sections, but overall each line conveys distinct usage guidance.

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

Completeness4/5

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

Given the output schema and full parameter descriptions, the description covers purpose, selection criteria, execution modes, and a key alternative. It could mention more edge cases (e.g., rate limits, validation use cases) but is largely complete.

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

Parameters4/5

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

Schema has 100% description coverage for all 5 params. The description adds domain/URL context for the query field and explains when to use async mode, but it does not go beyond schema for webhook or preferred_contacts.

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

Purpose5/5

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

The opening line uses a specific verb ('Find') and identifies exact data types (emails, phones, social/contact data) and scope (company domains). It explicitly differentiates from company_insights by contrasting contact data vs. company metadata.

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

Usage Guidelines5/5

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

Provides explicit 'Prefer this tool when' conditions, async-mode guidance, and a named alternative ('Use company_insights instead when...'). This tells the agent both when to select and when to avoid this tool.

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

emails_validatorEmails ValidatorAInspect

Validate email addresses with the documented /email-validator endpoint.

Best for:

  • deliverability checks

  • validating outbound lead lists

  • filtering invalid email inputs before enrichment or outreach

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more email addresses to validate.
webhookNoOptional webhook URL for async completion.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It mentions 'documented /email-validator endpoint' but does not describe key behaviors such as rate limits, whether validation includes deliverability vs. syntax, how invalid addresses are handled in responses, or the distinction between sync and async execution. The schema hints at async/webhook options, but the description adds no transparency about how these affect behavior.

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

Conciseness5/5

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

The description is concise: one opening sentence plus three bullet points, all directly relevant. It front-loads the primary action and use cases without any redundant filler. Every sentence earns its place.

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

Completeness4/5

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

For a tool with an output schema and fully documented parameters, the description covers purpose and usage context well. It lacks behavioral transparency (e.g., async behavior, return details), but the output schema and parameter descriptions fill many gaps. Overall it is nearly complete for an agent to decide when to invoke it.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are fully documented in the schema (query array, async deprecated flag, webhook URI, execution_mode enum). The description adds no additional parameter semantics beyond what the schema already provides, earning the baseline score of 3.

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

Purpose5/5

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

The description clearly states 'Validate email addresses' with a specific resource ('documented /email-validator endpoint'). The bullet list of best-for use cases further clarifies the tool's distinct function. It is unambiguously differentiated from the sibling tools, which are mostly search/enrichment or management tools, making this the only email validator.

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

Usage Guidelines4/5

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

The description provides explicit context on when to use the tool via the 'Best for' bullet points: deliverability checks, outbound lead list validation, and filtering invalid emails before enrichment/outreach. It does not name alternative tools or state when not to use it, but the use-case 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.

google_maps_photosGoogle Maps PhotosAInspect

Fetch Google Maps photos with the documented /google-maps-photos endpoint.

Best for:

  • place photo extraction

  • menu photo retrieval

  • owner photo and latest photo analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOptional photo filter tag.
asyncNoDeprecated compatibility flag. Prefer execution_mode.
limitNoMaximum places to process.
queryYesOne or more Google Maps place queries or ids.
fieldsNoSpecific fields to return.
regionNoRegion code.
webhookNoOptional webhook URL for async completion.
languageNoLanguage code.
photos_limitNoMaximum photos per place.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Fetch' which implies a non-destructive operation, but it does not disclose async execution behavior, rate limits, authentication needs, or how the 'async' and 'execution_mode' parameters affect the request. The description lacks any warning about potential long-running operations or pagination.

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

Conciseness5/5

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

The description is concise, front-loaded with the core action, and uses a bulleted list for use cases. Every sentence earns its place; there is no redundancy or filler.

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

Completeness4/5

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

Given the tool has 10 parameters and an output schema, the description provides a sufficient overview. The output schema and parameter descriptions cover the details, so the description's focus on use cases is appropriate. However, it could be more complete with a brief mention of async behavior or note that the query parameter accepts multiple places, but these are partially covered by schema descriptions.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by hinting at the 'tag' parameter through phrases like 'menu photo retrieval' and 'owner photo', which map to enum values (menu, by_owner). This gives contextual meaning beyond the schema's generic 'Optional photo filter tag.'

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

Purpose5/5

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

The description clearly states the tool 'Fetch Google Maps photos' and enumerates specific use cases (place photo extraction, menu photo retrieval, owner photo and latest photo analysis), which distinguishes it from sibling tools like google_maps_reviews. The verb and resource are specific and unambiguous.

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

Usage Guidelines4/5

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

The 'Best for' list gives clear context on when to use the tool (photo-related tasks) but does not explicitly mention alternatives or when not to use it. It implies differentiation from review/search tools but could be more explicit about exclusions, such as 'Use google_maps_reviews for reviews.'

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

google_maps_reviewsGoogle Maps ReviewsAInspect

Fetch Google Maps reviews for place ids or place queries.

Best for:

  • review analysis

  • recent-review monitoring

  • targeted review extraction for specific places

Prefer this tool when:

  • the user needs review text, review counts, or review metadata

  • you already know the place or can identify it from a query

  • async polling is acceptable for heavier review jobs

Use async mode when:

  • review volume is large

  • you query many places in one request

  • you want to poll progress later with requests_get

Do not use this for basic place discovery:

  • use google_maps_search first

  • then use google_maps_reviews once you know the target place or query set

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoReview sorting mode.
asyncNoDeprecated compatibility flag. Prefer execution_mode.
limitNoMaximum number of places to process.
queryYesOne or more place ids or Google Maps business queries.
startNoStart date or offset accepted by Outscraper.
cutoffNoCutoff date/timestamp accepted by Outscraper.
fieldsNoSpecific review fields to return.
regionNoRegion code, for example us.
sourceNoReview source.
webhookNoOptional webhook URL for async completion.
languageNoLanguage code, for example en.
ignore_emptyNoSkip places without reviews.
cutoff_ratingNoMinimum rating cutoff.
reviews_limitNoMaximum reviews per place.
reviews_queryNoOptional keyword filter inside reviews.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.
last_pagination_idNoResume token from previous page.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It adds behavioral context such as async mode for heavy jobs, polling with requests_get, and the deprecation of the async flag in favor of execution_mode. However, it does not disclose potential limitations like rate limits or data freshness, so it falls short of a 5.

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

Conciseness5/5

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

The description is well-structured with a clear opening sentence followed by bullet-point sections. It is concise yet informative, with every line serving a purpose. The front-loaded main purpose makes it easy to scan.

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

Completeness5/5

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

Given the tool's complexity (17 parameters, output schema, and many sibling tools), the description covers the essential context: when to use it vs. alternatives, async behavior, and typical use cases. The output schema handles return value details, and the sibling differentiation is explicit.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 17 parameters. The description adds minimal extra value beyond clarifying that 'query' accepts place ids or business queries and that async mode is preferred for large volumes. This aligns with the baseline of 3 for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's function: 'Fetch Google Maps reviews for place ids or place queries.' It distinguishes itself from siblings like google_maps_search and other review tools by specifying its focus on reviews rather than place discovery.

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

Usage Guidelines5/5

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

The description provides explicit 'Prefer this tool when' and 'Do not use this for basic place discovery' sections, naming google_maps_search as the alternative. It also gives clear async mode usage guidelines, explaining when to use async and how to poll progress with requests_get.

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

google_search_imagesGoogle Search ImagesCInspect

Search Google Images with the documented /google-search-images endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuleNoOptional Google UULE location string.
asyncNoDeprecated compatibility flag. Prefer execution_mode.
limitNoItems per query limit.
queryYesOne or more Google image search queries.
fieldsNoSpecific fields to return.
regionNoRegion code.
webhookNoOptional webhook URL for async completion.
languageNoLanguage code.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Search Google Images' without revealing whether the operation is read-only, synchronous or asynchronous (despite the execution_mode parameter), or any rate limits or authentication requirements. This is a significant gap for a tool with 9 parameters.

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

Conciseness4/5

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

The description is a single, clear sentence with no wasted words. It is concise but not under-specified to the point of being unhelpful, unlike a pure tautology. The reference to the endpoint is mild filler but not harmful.

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

Completeness2/5

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

Despite having 9 parameters and an output schema, the description provides almost no contextual information about how the tool behaves, what the parameters influence, or the nature of the results. It does not explain the distinction between sync/async modes, pagination, or how 'uule' and 'region' affect searches. This is notably incomplete for a tool of this complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters already have descriptions in the input schema. The description adds no additional parameter meaning or usage context, but the baseline of 3 is appropriate since the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's function ('Search Google Images') and names the specific endpoint, which makes the purpose unambiguous. However, it does not explicitly distinguish it from the sibling tool 'google_search' or mention what makes it unique (e.g., image-specific results).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool over alternatives like 'google_search' or 'google_maps_search'. There is no mention of appropriate scenarios, exclusions, or prerequisites, leaving the agent to rely solely on the tool name and sibling context.

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

phones_enricherPhones EnricherAInspect

Enrich phone numbers using the documented /phones-enricher endpoint.

Best for:

  • carrier lookup

  • phone validation

  • message deliverability checks

Note: this endpoint is synchronous only and does not support async execution or webhooks.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesOne or more phone numbers to enrich.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses a key behavioral trait (synchronous only, no async or webhooks), which is valuable. But it does not state whether the tool mutates data, requires specific authentication, or any rate limiting, so it's somewhat thin.

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

Conciseness5/5

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

The description is extremely concise: one purpose sentence, a list of use cases, and a note. Every sentence adds value and is front-loaded. There is no fluff or repetition.

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

Completeness4/5

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

Given the tool's simplicity (one parameter, no nested objects) and the presence of an output schema, the description covers the essentials: purpose, use cases, and a key limitation. It lacks some details like error handling or required permissions, but for this scope it is reasonably complete.

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

Parameters3/5

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

The schema already describes the only parameter 'query' as 'One or more phone numbers to enrich.' The description adds no extra semantics beyond what is in the schema, so it does not improve on the 100% schema coverage baseline.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Enrich phone numbers using the documented /phones-enricher endpoint.' It also lists concrete use cases (carrier lookup, phone validation, message deliverability checks) that clearly distinguish it from sibling tools like emails_validator or businesses_search.

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

Usage Guidelines4/5

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

The 'Best for' section provides clear context on when to use this tool, and the note about synchronous-only execution adds a limitation. However, it does not explicitly name alternatives or give 'when not to use' instructions, so it falls short of a 5.

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

pingOutscraper PingAInspect

Check whether the Outscraper MCP server is running and return basic server metadata.

Best for:

  • validating local or container startup

  • confirming the MCP server is reachable before making live API calls

  • lightweight health checks in demos, IDE setups, or registry validation

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations are absent, so the description carries the full burden. It clearly states the behavior: checks server status and returns metadata. While it doesn't elaborate on error behavior or metadata structure, it adds value beyond the name by specifying the action and output, enough for a simple ping tool.

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

Conciseness5/5

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

The description is concise and front-loaded with the core purpose, followed by a focused bullet list of use cases. Every sentence adds value with no redundancy or filler.

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

Completeness5/5

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

Given the tool's simplicity, the absence of parameters, and the existence of an output schema, the description is fully complete. It covers what the tool does and when to use it, and the output schema handles return-value expectations. No additional detail is necessary.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description appropriately avoids mentioning parameters since none exist, and there is no additional semantic burden to carry.

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

Purpose5/5

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

The description uses a specific verb ('Check') and identifies the resource ('whether the Outscraper MCP server is running'), clearly distinguishing it from data-fetching siblings. It also mentions returning metadata, making the tool's function unambiguous.

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

Usage Guidelines4/5

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

The 'Best for' section explicitly lists three concrete use cases: validating startup, confirming reachability, and lightweight health checks. It gives clear context for when to use this tool, though it doesn't explicitly mention when not to use it or alternatives, which is acceptable for a health check utility.

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

requests_deleteOutscraper Request DeleteAInspect

Delete or terminate an asynchronous Outscraper request by request id.

Best for:

  • cleaning up queued or no-longer-needed async jobs

  • stopping work you no longer want to keep polling

  • testing the full async request lifecycle from MCP

Use this carefully:

  • it is intended for cleanup or cancellation

  • only use it when you are sure the request is no longer needed

  • after deletion, the original async request should not be expected to complete normally

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesAsync request id to delete.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It conveys the destructive nature ('Delete or terminate'), the irreversible consequence ('after deletion, the original async request should not be expected to complete normally'), and the intent for cleanup or cancellation. This is rich context for a mutation tool.

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

Conciseness5/5

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

The description is well-structured with a single opening sentence followed by bullet points for 'Best for' and 'Use this carefully'. Every sentence contributes meaningful guidance without fluff, and the formatting makes it easy to scan.

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

Completeness5/5

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

For a simple one-parameter tool with an output schema, the description covers all necessary context: purpose, usage scenarios, cautionary notes, and post-deletion behavior. No critical information is missing, and the output schema handles return value details.

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

Parameters3/5

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

The schema already covers the single parameter 'request_id' with a clear description ('Async request id to delete'), and it has 100% coverage. The description only repeats 'by request id' without adding format, validation, or additional semantic detail beyond what the schema provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description clearly states 'Delete or terminate an asynchronous Outscraper request by request id', providing a specific verb and resource. It distinguishes the tool from siblings like requests_get and requests_list by focusing on deletion/termination rather than retrieval or listing.

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

Usage Guidelines5/5

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

The 'Best for' section explicitly lists when to use the tool (cleaning up queued jobs, stopping polling, testing lifecycle), while 'Use this carefully' provides clear when-not guidance (only when sure the request is no longer needed). This gives implicit alternatives and cautions without explicitly naming other tools.

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

requests_getOutscraper Request StatusAInspect

Check the status of an asynchronous Outscraper request.

Use this after calling any tool with execution_mode="async" or after an auto-selected async submission. Typical flow:

  1. call google_maps_reviews, company_insights, emails_and_contacts, or google_maps_search with execution_mode="async"

  2. capture the returned request id

  3. poll requests_get until the job is completed or failed

Use this tool when:

  • a previous tool returned an async request id

  • you want to know whether the request is Pending, Success, or Failure

  • you need the completed data from a previously submitted async job

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesAsync request id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the operation checks status, that statuses are Pending/Success/Failure, and that it returns completed data. It also implies a polling flow. It does not discuss auth, rate limits, or idempotency, but these are less critical for a read-only status check.

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

Conciseness5/5

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

The description is well-structured with a clear topic sentence, a numbered typical flow, and a bulleted 'Use this tool when' list. Every sentence adds value and the content is effectively front-loaded.

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

Completeness5/5

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

The tool is simple (one parameter) and has an output schema. The description provides enough context for correct usage: when to use, what the request_id is, the statuses, and that completed data is returned. No additional information is necessary for effective invocation.

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

Parameters4/5

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

Schema coverage is 100% and the only parameter 'request_id' has a terse schema description 'Async request id.' The tool description adds meaningful context by explaining how to obtain the request_id (capture the returned id from a previous async submission), which goes beyond the schema.

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

Purpose5/5

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

The description explicitly states 'Check the status of an asynchronous Outscraper request' with a specific verb and resource. It clearly differentiates from sibling tools like requests_list and requests_delete by focusing on status polling for a single async request.

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

Usage Guidelines4/5

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

Provides explicit when-to-use guidance: after calling any tool with execution_mode='async', when you need to know status, and when you need completed data. It outlines a typical flow with steps. However, it does not explicitly mention alternatives like requests_list, so no direct 'when-not' is stated.

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

requests_listOutscraper Request HistoryAInspect

List recent Outscraper requests by bucket.

Best for:

  • debugging async flows

  • seeing running, completed, or failed jobs

  • checking what was recently submitted through the current API key

Use this when:

  • you lost a request id and want to find recent jobs

  • you want a quick view of recent running or finished requests

  • you are debugging async submissions across tools

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoOptional request bucket.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the transparency burden. It discloses that the tool lists requests scoped to the current API key and can filter by bucket (running/finished/all). However, it does not mention pagination, result limits, sorting, or the exact data returned, leaving behavioral ambiguity.

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

Conciseness4/5

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

The description is well-structured with a lead sentence and bullet lists. It is concise but has some redundancy between 'debugging async flows' and 'debugging async submissions across tools', and between 'seeing running, completed, or failed jobs' and 'quick view of recent running or finished requests'.

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

Completeness4/5

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

For a simple list tool with one optional parameter and an output schema, the description covers the purpose, typical use cases, and bucket filtering. It doesn't specify default behavior when 'type' is omitted, but the schema marks it optional. Overall it provides sufficient context for an AI agent to select and invoke the tool.

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

Parameters3/5

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

The input schema has a single optional parameter 'type' with an enum and its own description, achieving 100% schema coverage. The description adds context by explaining 'bucket' and aligning with 'running, completed, or failed jobs', but it doesn't add significant new meaning beyond the schema's own description.

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

Purpose5/5

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

The description opens with 'List recent Outscraper requests by bucket' – a specific verb+resource+scope. It clearly distinguishes from siblings like requests_get (which likely fetches a specific request) and requests_delete (which deletes). The 'by bucket' clarifies filtering.

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

Usage Guidelines4/5

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

The 'Best for' and 'Use this when' sections list concrete scenarios: debugging async flows, losing a request id, viewing running/finished jobs, and cross-tool debugging. This provides clear usage context, but it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

tp_dataTrustpilot Data (Legacy Alias)AInspect

Legacy alias for trustpilot_data. Prefer trustpilot_data for new integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more Trustpilot domains or review URLs.
fieldsNoSpecific fields to return.
webhookNoOptional webhook URL for async completion.
enrichmentNoOptional documented enrichments.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It discloses only that it's a legacy alias, but doesn't describe any behavior, side effects, or how it differs from trustpilot_data. This is insufficient for a tool with no annotation safety profile.

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

Conciseness5/5

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

Two sentences, front-loaded with the key information about being a legacy alias and the preference for trustpilot_data. No wasted words.

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

Completeness3/5

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

For a legacy alias, the description is complete in redirecting agents, but it doesn't explicitly confirm that behavior is identical to trustpilot_data. Given the rich schema and output schema, the description adds the deprecation context but lacks some clarity on whether any differences exist.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no parameter semantics beyond the alias implication. Baseline 3 is appropriate.

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

Purpose4/5

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

The description identifies the tool as a legacy alias for trustpilot_data, which clarifies its role but doesn't explicitly state the underlying function (fetching Trustpilot data). However, the name and title convey the purpose, and it distinguishes from the sibling trustpilot_data by naming the preferred alternative.

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

Usage Guidelines5/5

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

The description explicitly instructs to 'Prefer trustpilot_data for new integrations,' naming the alternative and indicating when not to use this tool. This is clear usage guidance, even though it doesn't specify the exact legacy use case.

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

tp_reviewsTrustpilot Reviews (Legacy Alias)AInspect

Legacy alias for trustpilot_reviews. Prefer trustpilot_reviews for new integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoSkip reviews.
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more Trustpilot domains or review URLs.
fieldsNoSpecific fields to return.
webhookNoOptional webhook URL for async completion.
languagesNoLanguage filters.
reviews_limitNoMaximum reviews per query.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

A4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. However, it only states that this is a legacy alias and does not disclose any actual behavior, side effects, or limitations. The agent learns nothing about what the tool does beyond its alias status.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with the core alias information and a clear preference directive. No wasted words; every part earns its place.

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

Completeness4/5

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

As a legacy alias, the key contextual information is that it should be avoided in favor of trustpilot_reviews. The description conveys this effectively. An output schema exists, so return values are documented. However, the description does not explain the tool's functionality, relying on the canonical tool's documentation, which is a minor gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter information, but the schema already provides full descriptions for all 8 parameters, including 'execution_mode' and 'skip'.

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

Purpose5/5

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

The description clearly states this is a legacy alias for trustpilot_reviews, which is a specific resource and distinguishes it from sibling tools. The title 'Trustpilot Reviews (Legacy Alias)' reinforces this, 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.

Usage Guidelines5/5

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

The description explicitly instructs to 'Prefer trustpilot_reviews for new integrations', providing direct when-to-use versus when-not-to-use guidance. This is a clear recommendation of the alternative.

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

tripadvisor_reviewsTripadvisor ReviewsCInspect

Fetch Tripadvisor reviews with the documented /tripadvisor-reviews endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more Tripadvisor URLs.
cutoffNoCutoff value accepted by Outscraper.
fieldsNoSpecific fields to return.
webhookNoOptional webhook URL for async completion.
languageNoLanguage code.
reviews_limitNoMaximum reviews per query.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

C2.8/5.0
Behavior2/5

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

Since no annotations are provided, the description carries full responsibility for behavioral disclosure. It only says 'Fetch Tripadvisor reviews', with no details on rate limits, pagination, authentication, or async behavior. The mention of a 'documented endpoint' is vague and does not reveal outcomes of using the tool.

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

Conciseness3/5

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

The description is a single sentence, so it is concise, but it is under-specified and does not fully earn its place. It conveys the basic action but omits crucial context that would help the agent, making it minimal rather than effectively streamlined.

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

Completeness2/5

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

Despite having 8 parameters and an output schema, the description does not provide sufficient context. It fails to mention that multiple URLs can be processed, the async/execution_mode mechanics, or any differentiation from sibling review tools. The description is too thin for a tool this complex.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains parameters like query, cutoff, reviews_limit, and execution_mode. The description adds no extra semantic value beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description states 'Fetch Tripadvisor reviews', which clearly identifies the action and resource. It also references the specific endpoint '/tripadvisor-reviews'. However, it does not distinguish from sibling tools like tp_reviews or booking_reviews beyond the name itself, so it lacks explicit differentiation.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It does not mention that Tripadvisor URLs are required, nor does it explain when to prefer it over other review-fetching tools. No exclusions or scenarios are provided.

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

trustpilot_dataTrustpilot DataCInspect

Fetch Trustpilot business data with the documented /trustpilot endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more Trustpilot domains or review URLs.
fieldsNoSpecific fields to return.
webhookNoOptional webhook URL for async completion.
enrichmentNoOptional documented enrichments.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Fetch', implying a read operation, but does not disclose async behavior, return format, rate limits, or any side effects. The mention of a 'documented endpoint' is a reference to external docs, not a behavioral trait.

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

Conciseness2/5

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

The description is a single under-specified sentence that restates the tool name without providing useful information. It is not concise in an effective way; it is merely terse. There is a typo ('/trustpopic') that detracts from professionalism and clarity.

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

Completeness2/5

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

Given the tool has six parameters, a rich schema, an output schema, and many sibling tools, the description is highly incomplete. It does not help the agent select this tool over alternatives, explain when to use async modes, or indicate typical use cases. The output schema exists, so return values need not be described, but all other context is lacking.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond the schema; it only references the endpoint. The schema already documents all six parameters, including 'query', 'fields', 'enrichment', and 'execution_mode', so the description adds minimal value.

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

Purpose3/5

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

The description states a clear action ('Fetch') and resource ('Trustpilot business data'), but 'business data' is vague and does not specify what type of data (e.g., ratings, company profiles) or distinguish it from sibling tools like 'trustpilot_reviews' and 'tp_data'. The reference to a '/trustpilot endpoint' is unclear and contains a typo ('/trustpopic'), further reducing clarity.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions. Sibling tools like 'tp_data', 'trustpilot_reviews', and 'businesses_get' exist, but the description provides no direction on which to choose.

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

trustpilot_reviewsTrustpilot ReviewsCInspect

Fetch Trustpilot reviews with the documented /trustpilot-reviews endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoSkip reviews.
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more Trustpilot domains or review URLs.
fieldsNoSpecific fields to return.
webhookNoOptional webhook URL for async completion.
languagesNoLanguage filters.
reviews_limitNoMaximum reviews per query.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It only says 'fetch reviews' and mentions an endpoint, without revealing important behaviors like pagination, async defaults, rate limits, or read-only guarantees. This is insufficient for a tool with 8 parameters.

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

Conciseness4/5

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

The description is a single sentence that front-loads the action 'Fetch Trustpilot reviews' and adds a helpful reference to the endpoint. It is concise with no wasted words, though it sacrifices depth for brevity.

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

Completeness2/5

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

The tool has 8 parameters, an output schema, and many sibling review tools, yet the description is extremely sparse. It fails to explain when to use this tool, how async/webhook behavior works, or what differentiates it from similar tools, leaving the agent under-informed for confident selection and invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema provides detailed descriptions for all parameters (query, execution_mode, reviews_limit, etc.). The description itself adds no parameter-level meaning, but the baseline of 3 applies when the schema handles parameter documentation well.

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

Purpose4/5

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

The description clearly states 'Fetch Trustpilot reviews' with a specific verb and resource, and references the documented endpoint. It tells the agent exactly what the tool does, though it doesn't explicitly distinguish it from sibling tools like tp_reviews or trustpilot_data.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives like yelp_reviews or tripadvisor_reviews. There are no exclusions, conditions, or alternative recommendations, leaving the agent without selection context.

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

yelp_reviewsYelp ReviewsBInspect

Fetch Yelp reviews with the documented /yelp-reviews endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoYelp sort parameter.
asyncNoDeprecated compatibility flag. Prefer execution_mode.
queryYesOne or more Yelp business URLs.
cursorNoPagination cursor.
cutoffNoCutoff value accepted by Outscraper.
fieldsNoSpecific fields to return.
webhookNoOptional webhook URL for async completion.
reviews_limitNoMaximum reviews per query.
execution_modeNoExecution strategy. Use auto to let the MCP server choose between sync and async.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
metaYes
asyncNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It only says 'Fetch Yelp reviews' and does not mention pagination, async execution, rate limits, or whether the operation is read-only, leaving the schema to imply these traits.

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

Conciseness5/5

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

The description is a single sentence with no waste. It is front-loaded with the action and resource, and the phrase 'documented /yelp-reviews endpoint' adds a useful reference without redundancy.

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

Completeness2/5

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

The tool has 9 parameters and an output schema, yet the description is too brief to provide adequate context. It does not explain that 'query' expects business URLs, nor does it mention the async execution options or cursor-based pagination, leaving a large burden on the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the parameter descriptions, such as the significance of the 'query' field or the difference between sync and async modes.

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

Purpose5/5

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

The description clearly states the tool fetches Yelp reviews, with a specific verb and resource. It distinguishes from sibling review tools like google_maps_reviews and tripadvisor_reviews by explicitly naming Yelp.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context, or situations where this tool is preferred, such as needing Yelp-specific reviews vs. other platforms.

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

TDQS

B3.2/5.0
Disambiguation3/5

Most tools target distinct sources/actions, but the legacy aliases (tp_data, tp_reviews) directly duplicate trustpilot_data and trustpilot_reviews, creating ambiguity. Additionally, google_maps_search and businesses_search have overlapping purposes, though detailed descriptions help differentiate them.

Naming Consistency4/5

The dominant naming pattern is `<source|object>_<action>` (e.g., google_maps_search, businesses_get, requests_list), which is consistent. However, tools like ping, ai_scraper, emails_validator, and phones_enricher break the pattern, and the tp_* aliases use inconsistent abbreviations.

Tool Count2/5

At 28 tools, the server exceeds the 25-tool threshold and feels heavy, even though the broad multi-source scope explains the count. Several tools could be consolidated, such as removing legacy aliases.

Completeness4/5

Core workflows are well covered: search across major platforms, reviews, enrichment, validation, and async request management. Minor gaps exist, such as missing yelp_search and booking_search while having reviews for those sources, but agents can work around with available tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides access to Outscraper's data extraction services for business intelligence, location data, and reviews across platforms like Google Maps, Amazon, and Yelp. It enables AI assistants to perform comprehensive web scraping tasks including contact information retrieval and geolocation services.
    6
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Direct access to 40+ scraping and search tools. Extract structured data from Google (Search, Maps, Trends), Amazon, Airbnb, Social Media, and any web page directly into your AI agent.
    8
    42
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Connects AI agents to AgentData's company intelligence platform, enabling natural language queries for structured company data like tech stacks, emails, people, and signals.
    6
    15
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/outscraper/outscraper-mcp-server'

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