Skip to main content
Glama

Server Details

Official SerpApi MCP server for Google, Bing, and other search engines.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
70.0% over 62 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
serpapi/serpapi-mcp
GitHub Stars
183
Server Listing
SerpApi MCP Server
ChatGPT
–
Claude
–

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation4/5

extract is clearly separate from search because it targets URL content, mapping, and crawling. search_dashboard and search_table are explicitly variants of search with the same params, so overlap exists, but descriptions clarify their distinct output forms and use cases.

Naming Consistency4/5

Tool names use lowercase snake_case consistently, and the two search variants share a predictable search_ prefix. extract is a lone verb rather than part of a verb_noun pattern, which is a minor deviation.

Tool Count5/5

Four tools are well-scoped for a broad search and extraction API. The universal search tool absorbs many engines, while extract and the two presentation variants add clear, non-redundant capabilities.

Completeness4/5

The surface covers core workflows: universal SERP search across engines, content extraction, URL mapping, crawling, and visual browsing variants. Minor gaps like a dedicated engine-listing or account/usage tool are mitigated by MCP resources and do not block typical agent use.

Available Tools

4 tools
extractSerpApi extractA
Read-only
Inspect

Extract content from a public http(s) URL, discover site URLs, or crawl pages.

API options go in params: url is required; params.mode is scrape (default), map, or crawl. See serpapi://engines/extract for all options.

Top-level mode controls the response:

  • complete (default): full JSON.

  • compact: native Markdown by default.

params.output selects the format and overrides either default:

  • "md": return native Markdown unchanged in either response mode.

  • "json": return JSON, with filtering determined by the response mode.

Compact JSON removes metadata. For scrape responses containing markdown, it also keeps only markdown and any error field. include_markdown=false or an explicit json_restrictor skips this extra filtering. Map/crawl and responses without markdown keep their remaining fields. Use complete with output="json" for full JSON.

Crawl max_pages defaults to 10 (maximum 100). Each successfully extracted, uncached page consumes one credit.

Examples: Full scrape JSON: {"params":{"url":"https://example.com"},"mode":"complete"} Scrape Markdown: {"params":{"url":"https://example.com"},"mode":"compact"} Map URLs as JSON: {"params":{"url":"https://example.com","mode":"map"},"mode":"complete"} Crawl pages as Markdown: {"params":{"url":"https://example.com","mode":"crawl","max_pages":2},"mode":"compact"}

NameRequiredDescriptionDefault
modeNocomplete
paramsNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, openWorld, non-idempotent, non-destructive), and the description adds real behavioral context beyond them: crawl caps at 10 pages by default and 100 maximum, and each successfully extracted uncached page consumes one credit — a cost disclosure an agent needs before choosing crawl. It also explains how compact mode filters output and when that filtering is skipped, though it never states response size or latency characteristics.

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?

Front-loaded with purpose, then options, then response shaping, then four runnable examples — good ordering for a tool with this many hidden switches. The compact-filtering paragraph is dense and requires re-reading, but nearly every sentence conveys a distinct behavior rather than restating the schema.

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 whose real parameters are hidden inside an open object, the description supplies the semantics the schema cannot express, and the examples resolve the otherwise confusing split between top-level mode and params.mode. Since an output schema exists, the return-value detail is partly duplicative, but it remains useful given the two-tier filtering model.

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 0% and the params object is an untyped open bag, so the description carries the entire burden — and it does: url required, params.mode enum values with default, params.output values, max_pages default and ceiling, and the interaction where output overrides the response-mode default. It falls short by naming include_markdown and json_restrictor without explaining their accepted values or effects.

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?

Opens with a specific verb and three named operations — extract content from a URL, discover site URLs, crawl pages — which maps directly to the scrape/map/crawl modes. This is unmistakably distinct from the search-family siblings, so an agent can route without opening a schema.

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?

Gives explicit selection logic for the two axes that matter: which mode (scrape default / map / crawl) and which response mode (complete default / compact), plus a decisive rule — 'Use complete with output="json" for full JSON.' It also states url is required. What's missing is any when-not guidance or an explicit contrast with the search siblings.

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

search_dashboardSerpApi search (dashboard)A
Read-only
Inspect

Interactive dashboard variant of search: returns summary metrics, a source breakdown chart, and a results table with a click-to-expand detail panel, all rendered in the conversation. Same params as search. Use for a richer visual overview of a query's results. Automatically selects an engine-specific dashboard when available (e.g. google_flights gets price intelligence charting).

NameRequiredDescriptionDefault
paramsNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, open-world, non-idempotent), so the description's added value is the rendering behavior: it discloses that output is composed of three distinct rendered artifacts and that engine-specific dashboards are auto-selected (e.g. price intelligence for google_flights). It does not mention latency, token/size cost of the richer output, or fallback behavior when a dashboard is unavailable.

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?

Four tight sentences, front-loaded with the tool's identity and return shape, then the alternate-tool relation, then the engine-selection nuance. No filler or restatement of the title.

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?

With no output schema, the description usefully explains what the caller receives, and the input side is handled by cross-reference to `search`. Minor gaps remain around cost/size of the richer payload and behavior when no engine-specific dashboard exists, but nothing essential to invoking it correctly is missing.

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 schema has a single free-form `params` object with 0% description coverage, so the description must carry the load — and 'Same params as `search`' is a meaningful delegation that tells the agent where to find the real contract. It still does not enumerate any parameter names or note whether dashboard-specific keys exist, so an agent must consult `search` before calling.

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?

States a specific verb and resource ('Interactive dashboard variant of `search`') and immediately enumerates the return composition: summary metrics, source breakdown chart, and results table with a detail panel. This is clearly distinguishable from the siblings `search` (plain results) and `search_table` (table only).

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?

Gives a clear selection cue — 'Use for a richer visual overview of a query's results' — and anchors itself to `search` by inheriting its parameters. It does not explicitly state when NOT to use it (e.g. cost/latency tradeoffs vs. plain `search`), leaving the agent to infer the exclusion.

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

search_tableSerpApi search (table)A
Read-only
Inspect

Interactive UI variant of search: returns organic results as a sortable, searchable table rendered in the conversation. Same params as search. Use when the host supports MCP Apps and the user wants to browse results visually rather than read JSON.

NameRequiredDescriptionDefault
paramsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read-only, open-world, non-destructive and non-idempotent, so the description only needs to add output/rendering behavior — which it does by disclosing that results are rendered as an interactive table rather than returned as raw JSON. That is meaningful context, especially since no output schema exists, though it says nothing about failure modes or fallback when rendering is unavailable.

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 tightly written sentences: identity and output format first, then the selection condition. Nothing is redundant and no sentence is 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?

For a thin UI-variant wrapper with zero-typed params, the description supplies what an agent most needs: what comes back, when to pick it, and where the parameter documentation lives. Minor gaps are the lack of any fallback guidance if the host cannot render the table.

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 coverage is 0% and the single `params` property is an untyped anyOf object with additionalProperties true, so the schema conveys nothing. The description partially compensates by pointing to `search` for parameter semantics ('Same params as `search`'), but an agent must load the sibling tool's definition to learn anything concrete.

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?

States a specific verb and resource ('returns organic results') plus the distinctive output form ('sortable, searchable table rendered in the conversation'), and explicitly frames itself as a variant of `search`, so an agent can distinguish it from the JSON sibling without opening either schema.

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?

Gives a clear selection rule: use when the host supports MCP Apps and the user wants to browse visually rather than read JSON, which implicitly names `search` as the alternative. It stops short of explicit exclusionary guidance (e.g. what to do when MCP Apps is unsupported) and never mentions `search_dashboard` as a competing option.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Addedextract
  2. 2 tool updates
    • Changedsearch_dashboard3 fields changed
      • removedInput schema / properties / params / additionalProperties
        Removed value: -true
      • addedInput schema / properties / params / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / params / type
        Removed value: -"object"
    • Changedsearch_table3 fields changed
      • removedInput schema / properties / params / additionalProperties
        Removed value: -true
      • addedInput schema / properties / params / anyOf
        Added value: +[
        +  {
        +    "additionalProperties": true,
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedInput schema / properties / params / type
        Removed value: -"object"
  3. 3 tool updates
    • First observedsearch
    • First observedsearch_dashboard
    • First observedsearch_table

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that integrates with SerpApi to retrieve search results from multiple search engines including Google, Bing, Yahoo, and others, enabling fast access to both live and archived search data.
    4
    183
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for SearXNG meta search engine with enhanced error handling and parameter validation for AI agents. Enables privacy-focused web searches with structured JSON results and advanced filtering.
    1
    73 npm
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.