Skip to main content
Glama

Search tools, paid APIs and MCP servers by task

search_kits
Read-onlyIdempotent

Search the Agentropolis index of 52,263 agent-usable listings (MCP servers, x402/MPP pay-per-call HTTP APIs, A2A agents and kits) by task keywords, with optional filters. Use it first when you need a tool for a task; then use get_kit for one listing's trust evidence and price, or get_kit_manifest for how to call it. Not for browsing categories (list_categories) or market totals (get_market_snapshot). Read-only, no auth, never pays. Ranking: BM25 text relevance, boosted by payment-verified trust and the earned Live-Tested badge; trust.score null means no payment evidence (not a negative signal). results[] is organic; featured[] is a separate, labelled Agentropolis Pro row (today only our own first-party kits, no fee paid) and sponsored[] is a separate, labelled 'Sponsored' array of hand-approved paid placements (usually empty; never affects ranking or trust; pass sponsored:false to omit it). Listed prices are hints; the seller's live HTTP 402 challenge is authoritative. Each search is logged anonymously (query text, no raw IP). Example: {"q":"web search","rail":"x402","max_price_usd":0.01,"min_trust":40}.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "q": "<q>"
    },
    "name": "search_kits"
  }
}

Input Schema

NameRequiredDescriptionDefault
qYesWhat the agent needs, in plain words: 'web search', 'transcribe audio with speakers', 'postgres', 'token honeypot check'. Keywords beat full sentences.
kindNoRestrict to one listing type: kit (packaged task API), http_api (pay-per-call HTTP API), mcp_server, a2a_agent. Omit for all.
railNoOnly listings that accept this payment rail: x402 (USDC on-chain, per call) or mpp (Machine Payments Protocol).
limitNoNumber of organic results to return, 1-25 (default 10).
categoryNoCategory id from list_categories, e.g. 'web_search' or 'crypto_onchain_data'. Comma-separate to allow several.
min_trustNoOnly listings with a payment-verified trust score of at least this value (0-100). Excludes listings with no payment evidence.
paid_onlyNotrue = only listings that accept a payment rail (x402 or MPP).
sponsoredNoSet false to omit the labelled sponsored[] array. Default true.
max_price_usdNoOnly listings whose lowest listed price per call/unit is at most this many US dollars, e.g. 0.01. Listings without a known price are excluded when set.

Output Schema

NameRequiredDescriptionDefault
totalYesOrganic matches before limit
rankingYesHow results were ranked
resultsYesOrganic results: id, name, kind, summary, pricing, trust, badges, tiers, invoke, links (page, kit_manifest, call when relayable, go), buy (relay_x402 or link_out)
featuredYesLabelled Agentropolis Pro row, separate from organic results
search_idNoAnonymous id for this search
sponsoredYesLabelled Sponsored placements, hand-approved; separate from results; never affects ranking or trust. Usually empty.
featured_labelYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / sponsored
      Added value: +{
      +  "description": "Set false to omit the labelled sponsored[] array. Default true.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / sponsored / description
      Previous value: -"Always empty today"New value: +"Labelled Sponsored placements, hand-approved; separate from results; never affects ranking or trust. Usually empty."
  2. Changed12 schema fields changed
    • addedInput schema / properties / category / description
      Added value: +"Category id from list_categories, e.g. 'web_search' or 'crypto_onchain_data'. Comma-separate to allow several."
    • addedInput schema / properties / kind / description
      Added value: +"Restrict to one listing type: kit (packaged task API), http_api (pay-per-call HTTP API), mcp_server, a2a_agent. Omit for all."
    • addedInput schema / properties / limit / description
      Added value: +"Number of organic results to return, 1-25 (default 10)."
    • addedInput schema / properties / max_price_usd / description
      Added value: +"Only listings whose lowest listed price per call/unit is at most this many US dollars, e.g. 0.01. Listings without a known price are excluded when set."
    • addedInput schema / properties / max_price_usd / minimum
      Added value: +0
    • addedInput schema / properties / min_trust / description
      Added value: +"Only listings with a payment-verified trust score of at least this value (0-100). Excludes listings with no payment evidence."
    • addedInput schema / properties / paid_only / description
      Added value: +"true = only listings that accept a payment rail (x402 or MPP)."
    • changedInput schema / properties / q / description
      Previous value: -"What the agent needs, e.g. 'web search', 'sales pitch', 'image generation'"New value: +"What the agent needs, in plain words: 'web search', 'transcribe audio with speakers', 'postgres', 'token honeypot check'. Keywords beat full sentences."
    • addedInput schema / properties / q / maxLength
      Added value: +200
    • addedInput schema / properties / q / minLength
      Added value: +1
    • addedInput schema / properties / rail / description
      Added value: +"Only listings that accept this payment rail: x402 (USDC on-chain, per call) or mpp (Machine Payments Protocol)."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "featured": {
      +      "description": "Labelled Agentropolis Pro row, separate from organic results",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "id": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "featured_label": {
      +      "type": "string"
      +    },
      +    "ranking": {
      +      "description": "How results were ranked",
      +      "type": "string"
      +    },
      +    "results": {
      +      "description": "Organic results: id, name, kind, summary, pricing, trust, badges, tiers, invoke, links (page, kit_manifest, call when relayable, go), buy (relay_x402 or link_out)",
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "id": {
      +            "type": "string"
      +          },
      +          "kind": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "kind"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "search_id": {
      +      "description": "Anonymous id for this search",
      +      "type": "string"
      +    },
      +    "sponsored": {
      +      "description": "Always empty today",
      +      "items": {},
      +      "type": "array"
      +    },
      +    "total": {
      +      "description": "Organic matches before limit",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "results",
      +    "featured",
      +    "featured_label",
      +    "sponsored",
      +    "ranking"
      +  ],
      +  "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?

Annotations already cover read-only/idempotent/non-destructive, but the description adds substantial context beyond them: no auth required, it never pays, the BM25+trust ranking model, the meaning of a null trust.score, and that listed prices are hints versus the seller's authoritative live HTTP 402 challenge. It also discloses the featured[]/sponsored[] placement policy and that queries are logged anonymously, which an agent would otherwise have no way to know.

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?

Purpose and the use-first directive are front-loaded, and the example invocation at the end is genuinely useful. The single dense paragraph is longer than necessary and would scan better broken up, but each sentence carries distinct information rather than restating the name or schema.

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 nine-parameter search with an output schema, the description covers the remaining gaps: result-array semantics, ranking, trust interpretation, monetization transparency, and a worked example. Nothing an agent needs in order to call it correctly and interpret the response 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?

Schema coverage is 100%, so the schema already defines all nine parameters; the description still adds real meaning on top — the sponsored:false toggle semantics, the featured/sponsored distinction, and the caveat that prices are hints rather than binding. It does not explain the category id format or limit behavior beyond the schema, so it sits just above the baseline rather than at the top.

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 the Agentropolis index of 52,263 agent-usable listings") and enumerates the listing types covered (MCP servers, x402/MPP APIs, A2A agents, kits). It explicitly separates itself from get_kit, get_kit_manifest, list_categories and get_market_snapshot, so an agent can pick it without opening another schema.

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?

Gives an explicit ordering rule ("Use it first when you need a tool for a task; then use get_kit ... or get_kit_manifest") plus two named exclusions with the sibling that handles each. When-to-use, when-not-to-use, and the follow-up path are all stated, not inferred.

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.

Resources