Skip to main content
Glama

Search APIs

search_apis
Read-onlyIdempotent

Find a live data API for any external fact: social profiles and followers, Google Maps places and reviews, keyword search volume and web traffic, people and verified work emails, company data, stock, crypto and FX prices, SEC filings, weather, flights, products, news and jobs. Use it before scraping a site with curl or answering from memory. Query by outcome (e.g. "twitter user followers"); returns slug, price and enabled state, enabled first. Free. Then describe_api for the schema and execute. For an outcome that needs several calls, use run_task instead.

Input Schema

NameRequiredDescriptionDefault
packNoCanonical curated-pack ID or an unambiguous live pack alias.
limitNoResults: default 5, max 50.
queryNoOutcome or provider search phrase. Optional when category or pack is supplied.
cursorNoOpaque next_cursor from a prior search with the same filters.
enabledNoFilter to enabled or disabled endpoints. Defaults to true; pass "all" to include both, ranked enabled-first.
categoryNoCanonical category ID or an unambiguous live category alias.
include_facetsNoInclude bounded principal-scoped category and pack counts.

Output Schema

NameRequiredDescriptionDefault
countNo
queryNo
resultsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Results: default 10, max 50."New value: +"Results: default 5, max 50."
    • removedOutput schema / additionalProperties
      Removed value: -true
    • removedOutput schema / properties / count / description
      Removed value: -"Results in this page."
    • removedOutput schema / properties / query / description
      Removed value: -"Echo of the search phrase."
    • removedOutput schema / properties / results / description
      Removed value: -"Catalog entries with pricing and next step."
  2. Changed8 schema fields changed
    • addedInput schema / properties / category
      Added value: +{
      +  "description": "Canonical category ID or an unambiguous live category alias.",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "Opaque next_cursor from a prior search with the same filters.",
      +  "maxLength": 500,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / enabled
      Added value: +{
      +  "description": "Filter to enabled or disabled endpoints. Defaults to true; pass \"all\" to include both, ranked enabled-first.",
      +  "oneOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "const": "all",
      +      "type": "string"
      +    }
      +  ]
      +}
    • addedInput schema / properties / include_facets
      Added value: +{
      +  "description": "Include bounded principal-scoped category and pack counts.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / pack
      Added value: +{
      +  "description": "Canonical curated-pack ID or an unambiguous live pack alias.",
      +  "maxLength": 120,
      +  "type": "string"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Search phrase."New value: +"Outcome or provider search phrase. Optional when category or pack is supplied."
    • removedInput schema / required
      Removed value: -[
      -  "query"
      -]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "count": {
      +      "description": "Results in this page.",
      +      "type": "integer"
      +    },
      +    "query": {
      +      "description": "Echo of the search phrase.",
      +      "type": "string"
      +    },
      +    "results": {
      +      "description": "Catalog entries with pricing and next step.",
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already declare read-only, idempotent, non-destructive and closed-world behavior, so the bar is lower, yet the description still adds cost ("Free"), result shape (slug, price, enabled state), and ranking behavior (enabled first). Nothing here contradicts the annotations.

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

Conciseness4/5

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

The routing advice and chaining instructions are front-loaded and every clause is actionable. The long domain enumeration is dense and slightly list-like, but each domain keyword supports semantic matching, so it largely earns its space.

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?

With full schema coverage, an output schema, and complete annotations, the description only needs to supply selection and sequencing context, which it does. Chaining to describe_api/execute/run_task and the free/ranked return shape make the definition self-sufficient.

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 documented parameters set the baseline at 3, but the description adds meaning beyond it by explaining that queries should be phrased as outcomes ("twitter user followers") rather than provider names. It says nothing extra about pack, category, cursor, or include_facets, leaving those to 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 opens with a concrete verb-plus-resource ("Find a live data API") and enumerates the domains it covers, so an agent can tell instantly whether this tool serves its need. It also differentiates itself from "scrape with curl", "answering from memory", and from siblings describe_api, execute, and run_task.

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?

It states when to use it (before scraping or answering from memory), what to do next (describe_api for schema, then execute), and which alternative to pick when an outcome spans multiple calls (run_task). That is explicit when-to-use, when-not, and alternative routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.