Skip to main content
Glama

StealthStack ARD Discovery

Find MCP servers, skills, agents and APIs

search_resources
Read-onlyIdempotent

Find an MCP server, agent skill, A2A agent or API that does a job, and get what you need to install or connect it. Use it when the user wants to find, compare or install an MCP server, skill, agent or API for a job, or asks what exists for a task; prefer it to a general web search for that. Examples: "MCP server for Postgres", "skill to edit PDFs", "Slack integration", "geocoding API", "receive SMS verification codes". Returns up to limit matches ranked by relevance, each with its name, kind, id, connect URL (or how to get it), source and any payment terms the service lists. Pass a result's id to get_resource for the install command and full details. Results are third-party listings that StealthStack has not reviewed.

Input Schema

NameRequiredDescriptionDefault
kindNoOptional. Only one kind: mcp (MCP server), skill (agent skill, SKILL.md), agent (A2A agent), api (HTTP / OpenAPI service), catalog or registry (lists of more resources), other. Omit to include every kind.
paidNoOptional. x402 = only services that list x402 pay-per-request pricing (stablecoins). A filter, not a ranking.
limitNoOptional. Number of results, 1-50 (default 10).
queryYesThe capability you need, in a few plain keywords, e.g. "postgres", "send sms", "pdf edit", "email verification code", "github issues", "esim". Short keyword queries match better than full sentences.
trustNoOptional. verified = the record's URN names the same domain that hosts its catalog. It shows where the record was published, not that anyone reviewed the resource.
domainNoOptional. Only resources from this source domain, e.g. "stealthstack.ai" or "registry.modelcontextprotocol.io".

Output Schema

NameRequiredDescriptionDefault
modeYes
queryYes
resultsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • changedInput schema / properties / domain / description
      Previous value: -"Restrict to one publisher domain (e.g. stealthstack.ai)."New value: +"Optional. Only resources from this source domain, e.g. \"stealthstack.ai\" or \"registry.modelcontextprotocol.io\"."
    • changedInput schema / properties / kind / description
      Previous value: -"Restrict to one resource kind."New value: +"Optional. Only one kind: mcp (MCP server), skill (agent skill, SKILL.md), agent (A2A agent), api (HTTP / OpenAPI service), catalog or registry (lists of more resources), other. Omit to include every kind."
    • changedInput schema / properties / limit / description
      Previous value: -"Max results (1-50)."New value: +"Optional. Number of results, 1-50 (default 10)."
    • changedInput schema / properties / paid / description
      Previous value: -"Only services that list this payment protocol (x402: pay-per-request in stablecoins). A filter, never a ranking."New value: +"Optional. x402 = only services that list x402 pay-per-request pricing (stablecoins). A filter, not a ranking."
    • changedInput schema / properties / query / description
      Previous value: -"Free-text search over name, description, and tags."New value: +"The capability you need, in a few plain keywords, e.g. \"postgres\", \"send sms\", \"pdf edit\", \"email verification code\", \"github issues\", \"esim\". Short keyword queries match better than full sentences."
    • changedInput schema / properties / trust / description
      Previous value: -"verified = the resource's URN authority matches its catalog host (domain-anchored)."New value: +"Optional. verified = the record's URN names the same domain that hosts its catalog. It shows where the record was published, not that anyone reviewed the resource."
    • addedOutput schema / properties / results / items / properties / access
      Added value: +{
      +  "description": "What is known about auth and pricing. requiresAuth comes from the MCP Registry entry; auth and pricing are StealthStack's automated labels (unknown values omitted).",
      +  "properties": {
      +    "auth": {
      +      "type": "string"
      +    },
      +    "pricing": {
      +      "type": "string"
      +    },
      +    "requiresAuth": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / results / items / properties / install
      Added value: +{
      +  "description": "Packages to install the server from (MCP Registry entries). `command` is a ready-to-run start command (npx / uvx / docker / cargo), present only when the package name passes a strict charset check.",
      +  "items": {
      +    "properties": {
      +      "command": {
      +        "type": "string"
      +      },
      +      "env": {
      +        "description": "Required environment variable names the package lists (names only).",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "package": {
      +        "type": "string"
      +      },
      +      "registry": {
      +        "type": "string"
      +      },
      +      "transport": {
      +        "type": "string"
      +      },
      +      "version": {
      +        "type": "string"
      +      },
      +      "versionRejected": {
      +        "description": "The listed version failed validation; `command` is not pinned to it.",
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "registry",
      +      "package"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / results / items / properties / repository
      Added value: +{
      +  "description": "Source repository URL (https), as listed.",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / paid
      Added value: +{
      +  "description": "Only services that list this payment protocol (x402: pay-per-request in stablecoins). A filter, never a ranking.",
      +  "enum": [
      +    "x402"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / results / items / properties / payment
      Added value: +{
      +  "description": "Payment terms the service lists (x402): protocol, lowest listed price + currency, network (CAIP-2). Self-declared; never a payee address.",
      +  "properties": {
      +    "currency": {
      +      "type": "string"
      +    },
      +    "network": {
      +      "type": "string"
      +    },
      +    "price": {
      +      "type": "string"
      +    },
      +    "protocol": {
      +      "type": "string"
      +    },
      +    "testnet": {
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "protocol"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered; the description adds real behavioral detail beyond that — results are limited to `limit` and ranked by relevance, and, critically, they are 'third-party listings that StealthStack has not reviewed,' which an agent needs for trust decisions. It does not describe pagination or what happens when zero matches are found, keeping it 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.

Conciseness4/5

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

Front-loaded with purpose, then usage, examples, return shape and the caveat — a sound information order. The five inline examples are slightly more than needed and push the trust caveat to the end, but no sentence is 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?

With an output schema present and full schema description coverage, the description needn't enumerate return fields or filter semantics, and it correctly focuses on when to choose this tool, what the result list represents, and the handoff to get_resource. Nothing an agent needs to invoke 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?

Schema coverage is 100%, so the baseline is 3; the description earns one above it by explaining the result contract the parameters feed into ('up to `limit` matches ranked by relevance') and by reinforcing that short keyword queries are the intended form, with examples like 'MCP server for Postgres'. It still leaves the `kind`, `trust`, `domain` and `paid` filters entirely to the schema, which is fine given that 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?

States a specific verb and resource set ('Find an MCP server, agent skill, A2A agent or API that does a job') plus the outcome ('get what you need to install or connect it'). It also distinguishes itself from the sibling get_resource by telling the agent to pass a result's id there for install commands and full details.

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?

Explicitly names when to use it (user wants to find, compare or install an MCP server/skill/agent/API, or asks what exists) and gives an explicit exclusion: 'prefer it to a general web search for that.' The five example queries map directly onto real invocation requests.

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