Skip to main content
Glama

Search endpoints

search
Read-only

Search Glasser's data sources — runnable paid API endpoints — by keyword. Returns ranked endpoint summaries — provider, endpoint, price, run mode, and a score — already filtered to what this key may run. Several providers may sell the same capability: compare price and pick; the ranking is relevance-only. Pages are 5 by default (limit up to 20); read total for how many candidates exist and pass next_cursor back as cursor for more. The score is a cosine similarity for comparing rows, not a verdict: the ranking returns its nearest candidates, so neither low scores nor the last page shows that a capability is absent. Try other words, and inspect before running. Returns a task_id: pass it back on every later search, inspect and run for the same piece of work, and send use_case on every search (required) so the task records what the user is trying to achieve. Docs: https://glasser.ai/docs/api-reference/endpoints/search

Input Schema

NameRequiredDescriptionDefault
limitNo
queryNo
cursorNo
task_idNo
use_caseYesRequired on every search. The use case behind this search: what the user asked for, in their own words, with the subject in it — the company, domain, ticker, place or topic. Shorten a long request rather than rewriting it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / cursor / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "The next_cursor from the previous response. Use the same query; a cursor from a different query returns 400.",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / limit / anyOf
      Previous value: -[
      -  {
      -    "maximum": 20,
      -    "minimum": 1,
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Maximum results per page. Default: 5; maximum: 20.",
      +    "maximum": 20,
      +    "minimum": 1,
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / query / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Keywords that describe the data you need. Omit or leave empty to browse all Endpoints allowed by your Key's Policy.",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed2 schema fields changed
    • addedInput schema / properties / use_case / minLength
      Added value: +1
    • removedInput schema / properties / use_case / pattern
      Removed value: -"\\S"
  3. Changed5 schema fields changed
    • removedInput schema / properties / use_case / anyOf
      Removed value: -[
      -  {
      -    "description": "The use case behind this search: what the user asked for, in their own words, with the subject in it — the company, domain, ticker, place or topic. Shorten a long request rather than rewriting it.",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / use_case / description
      Added value: +"Required on every search. The use case behind this search: what the user asked for, in their own words, with the subject in it — the company, domain, ticker, place or topic. Shorten a long request rather than rewriting it."
    • addedInput schema / properties / use_case / pattern
      Added value: +"\\S"
    • addedInput schema / properties / use_case / type
      Added value: +"string"
    • addedInput schema / required
      Added value: +[
      +  "use_case"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / task_id / anyOf
      Previous value: -[
      -  {
      -    "description": "The task this call belongs to. Omit on the first search of a piece of work and one is minted and returned; pass it back on every later search, inspect and run so they are recorded as one task. Any stable string is accepted.",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "The task this search belongs to. A search without a task_id starts a new task. The response returns its task_id. Send it on every later search, inspect and run of the same piece of work. Any stable string is accepted.",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / use_case / anyOf
      Previous value: -[
      -  {
      -    "description": "The use case behind this search: what the user asked for, in their own words, with the subject in it — the company, domain, ticker, place or topic. Shorten a long request rather than rewriting it. Leave out personal details about third parties.",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "The use case behind this search: what the user asked for, in their own words, with the subject in it — the company, domain, ticker, place or topic. Shorten a long request rather than rewriting it.",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  5. Changed2 schema fields changed
    • addedInput schema / properties / use_case
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "The use case behind this search: what the user asked for, in their own words, with the subject in it — the company, domain, ticker, place or topic. Shorten a long request rather than rewriting it. Leave out personal details about third parties.",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • removedInput schema / properties / user_request
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "description": "What the user asked for, in their own words, with the subject in it — the company, domain, ticker, place or topic. Shorten a long request rather than rewriting it. Leave out personal details about third parties. Recorded against the task as background; it does not affect results.",
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
  6. Changed1 schema field changed
    • changedInput schema / properties / user_request / anyOf
      Previous value: -[
      -  {
      -    "description": "One sentence, in your own words, on what the user is trying to achieve. Never their verbatim words, and never names, email addresses or other personal details. Recorded against the task as background; it does not affect results.",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "What the user asked for, in their own words, with the subject in it — the company, domain, ticker, place or topic. Shorten a long request rather than rewriting it. Leave out personal details about third parties. Recorded against the task as background; it does not affect results.",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  7. Changed2 schema fields changed
    • addedInput schema / properties / task_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "The task this call belongs to. Omit on the first search of a piece of work and one is minted and returned; pass it back on every later search, inspect and run so they are recorded as one task. Any stable string is accepted.",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedInput schema / properties / user_request
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "One sentence, in your own words, on what the user is trying to achieve. Never their verbatim words, and never names, email addresses or other personal details. Recorded against the task as background; it does not affect results.",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  8. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With readOnly/openWorld/destructive hints already covering safety, the description adds genuinely new behavior: paging defaults and cap, the `total` counter, cursor reuse and its 400 error, task_id threading, and an explicit caveat that low scores or the last page do NOT prove a capability is absent. That last point is exactly the interpretive context an agent cannot get from 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?

Front-loaded purpose, then paging, then ranking caveat, then task_id contract — a sensible order, and the docs link is placed last where it belongs. It is dense and slightly overpacked with clauses, but almost every sentence carries distinct information.

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?

No output schema exists, yet the description still describes the return shape (provider, endpoint, price, run mode, score, total, next_cursor, task_id), the paging model, the ranking semantics, and the cross-call task contract. Nothing an agent needs to call this and interpret the results 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?

At 20% schema coverage the description has to carry weight, and it does: it explains limit/paging defaults, next_cursor reuse, the task_id threading contract across search/inspect/run, and why use_case is mandatory. Query semantics ('Try other words') are only implied rather than spelled out, which keeps this short of a 5.

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 ('Search Glasser's data sources — runnable paid API endpoints — by keyword') and immediately scopes the result set to what the key may run. It is clearly distinguishable from siblings like inspect and run, which it positions as later workflow steps.

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 real operating guidance: 'compare price and pick', 'Try other words, and inspect before running', and the requirement to send use_case on every search. It names the sibling (inspect) that follows, though it never states an explicit when-not-to-use or names a competing search alternative.

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.