StealthStack ARD Discovery
Server Details
Search a public index of agents, MCP servers and skills found on the open web. Free, no auth.
- Status
- Healthy
- Uptime
- 100.0% over 42 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
The three tools form a clean browse / search / fetch-detail triangle: list_resources browses without a query, search_resources ranks by relevance, and get_resource expands a known id into install details. Each description explicitly points to the others and states when to prefer one over the other, so misselection is unlikely.
All three follow the same snake_case verb_noun convention (get_resource, list_resources, search_resources) on the same noun. No mixed casing or inconsistent verb styles.
Three tools is enough for a read-only discovery index and each earns its place, but the surface is on the thin side — there is no dedicated tool for filtered faceting or pagination beyond a single list call. Reasonable scope, just minimal.
Read-side lifecycle is fully covered: browse, relevance search, and detail/install resolution with a documented handoff between them. Gaps are minor — no publishing/registration path and no explicit pagination or result-filtering tool for large result sets.
Available Tools
3 toolsget_resourceGet install and connect detailsARead-onlyIdempotentInspect
Get install and connect details for one resource found with search_resources or list_resources, by its identifier. Call it after a search, before you install or connect anything. Returns the connect URL or install command (npm, PyPI or Docker package when one is listed), transport, repository, publisher, version, auth and payment terms when known, the publisher's description, tags and example queries.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | The `id` of a search_resources or list_resources result, e.g. urn:air:stealthstack.ai:skill:parquet (urn:ai: and urn:air: prefixes are both accepted). |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | |
| resource | No | |
| resolvedIdentifier | No | The identifier the index matched (may use the other URN prefix). |
| requestedIdentifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the bar is lower. The description adds real context: the payload contents (connect URL or npm/PyPI/Docker install command, transport, repository, publisher, version, auth and payment terms, tags, example queries) and the 'when known' caveat that fields may be absent. It doesn't mention pagination or error behavior, which keeps it off 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and ordering before the payload enumeration. The long comma-separated list of returned fields is informative but dense; a slight trim would improve scannability without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
One fully documented parameter, an output schema present, and rich annotations — the description covers everything an agent needs to decide to call it and to interpret the result. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema itself documents the URN format and accepted prefixes, so the schema does the heavy lifting. The description only adds provenance ('found with search_resources or list_resources'), which is a mild but useful addition — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get install and connect details for one resource') and explicitly scopes it to records produced by search_resources or list_resources, which separates it cleanly from those siblings. An agent can tell what it returns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit sequencing: 'Call it after a search, before you install or connect anything.' It names the sibling tools that supply the identifier, so the agent knows which tool to use first and which one this complements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_resourcesBrowse the index by kind or sourceARead-onlyIdempotentInspect
Browse the StealthStack index without a search query: for example every agent skill (kind=skill), everything one domain publishes (domain=...), or services that accept x402 payments (paid=x402). Returns the total, a count per kind and one page of records with connect details. For a specific need ("MCP server for Postgres") use search_resources, which ranks by relevance.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 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. | |
| paid | No | Optional. x402 = only services that list x402 pay-per-request pricing (stablecoins). A filter, not a ranking. | |
| limit | No | Optional. Number of results, 1-50 (default 25). | |
| trust | No | 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. | |
| domain | No | Optional. Only resources from this source domain, e.g. "stealthstack.ai". |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| byKind | No | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and open-world, so safety is covered. The description adds real behavioral context: the response includes a total, a per-kind count, and exactly one page of records with connect details, which tells the agent results are paginated rather than exhaustive. It stops short of naming a pagination cursor or rate limits, so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler: the scope and examples come first, the sibling routing comes second. Every clause carries information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five optional parameters, an output schema, and full annotation coverage, the remaining risk is ambiguity about the tool's role versus search. The description closes that gap explicitly and even sketches the response shape, so nothing material is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description goes beyond the enum definitions by mapping filters to intents — 'every agent skill (kind=skill)', 'everything one domain publishes (domain=...)', 'services that accept x402 payments (paid=x402)'. That gives the agent a mental model for combining filters, though it omits trust and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Browse the StealthStack index') and immediately scopes it as query-less, with three concrete filter axes (kind, domain, paid). It explicitly contrasts with the sibling search_resources, so an agent can pick between them 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both directions: use this for open-ended browsing by kind/domain/payment type, and use search_resources for a specific need like 'MCP server for Postgres' because that one ranks by relevance. The selection condition is explicit and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_resourcesFind MCP servers, skills, agents and APIsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | 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. | |
| paid | No | Optional. x402 = only services that list x402 pay-per-request pricing (stablecoins). A filter, not a ranking. | |
| limit | No | Optional. Number of results, 1-50 (default 10). | |
| query | Yes | 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. | |
| trust | No | 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. | |
| domain | No | Optional. Only resources from this source domain, e.g. "stealthstack.ai" or "registry.modelcontextprotocol.io". |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | Yes | |
| query | Yes | |
| results | Yes |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
get_resource4 fields changed- changed
Input schema / properties / identifier / descriptionPrevious value: -"The resource URN, e.g. urn:air:stealthstack.ai:skill:parquet (urn:ai: and urn:air: are both accepted)."New value: +"The `id` of a search_resources or list_resources result, e.g. urn:air:stealthstack.ai:skill:parquet (urn:ai: and urn:air: prefixes are both accepted)." - added
Output schema / properties / resource / properties / accessAdded 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" +} - added
Output schema / properties / resource / properties / installAdded 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" +} - added
Output schema / properties / resource / properties / repositoryAdded value: +{ + "description": "Source repository URL (https), as listed.", + "type": "string" +}
- Changed
list_resources8 fields changed- changed
Input schema / properties / domain / descriptionPrevious value: -"Restrict to one publisher domain (e.g. stealthstack.ai)."New value: +"Optional. Only resources from this source domain, e.g. \"stealthstack.ai\"." - changed
Input schema / properties / kind / descriptionPrevious 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." - changed
Input schema / properties / limit / descriptionPrevious value: -"Max results (1-50)."New value: +"Optional. Number of results, 1-50 (default 25)." - changed
Input schema / properties / paid / descriptionPrevious 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." - changed
Input schema / properties / trust / descriptionPrevious value: -"Restrict by trust status."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." - added
Output schema / properties / results / items / properties / accessAdded 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" +} - added
Output schema / properties / results / items / properties / installAdded 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" +} - added
Output schema / properties / results / items / properties / repositoryAdded value: +{ + "description": "Source repository URL (https), as listed.", + "type": "string" +}
- Changed
search_resources9 fields changed- changed
Input schema / properties / domain / descriptionPrevious 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\"." - changed
Input schema / properties / kind / descriptionPrevious 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." - changed
Input schema / properties / limit / descriptionPrevious value: -"Max results (1-50)."New value: +"Optional. Number of results, 1-50 (default 10)." - changed
Input schema / properties / paid / descriptionPrevious 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." - changed
Input schema / properties / query / descriptionPrevious 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." - changed
Input schema / properties / trust / descriptionPrevious 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." - added
Output schema / properties / results / items / properties / accessAdded 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" +} - added
Output schema / properties / results / items / properties / installAdded 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" +} - added
Output schema / properties / results / items / properties / repositoryAdded value: +{ + "description": "Source repository URL (https), as listed.", + "type": "string" +}
3 tool updates
- Changed
get_resource1 field changed- added
Output schema / properties / resource / properties / paymentAdded 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" +}
- Changed
list_resources2 fields changed- added
Input schema / properties / paidAdded value: +{ + "description": "Only services that list this payment protocol (x402: pay-per-request in stablecoins). A filter, never a ranking.", + "enum": [ + "x402" + ], + "type": "string" +} - added
Output schema / properties / results / items / properties / paymentAdded 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" +}
- Changed
search_resources2 fields changed- added
Input schema / properties / paidAdded value: +{ + "description": "Only services that list this payment protocol (x402: pay-per-request in stablecoins). A filter, never a ranking.", + "enum": [ + "x402" + ], + "type": "string" +} - added
Output schema / properties / results / items / properties / paymentAdded 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 tool updates
- First observed
get_resource - First observed
list_resources - First observed
search_resources
Related MCP Connectors
Search a curated directory of agent tools, MCP servers, APIs, protocols and skills. No auth.
Search and inspect source-pinned agent skills, plugins and tools through a free public MCP.
Free, source-checked directory of AI agent tools, MCP servers and skills, with read-only search.
51Search MCP servers, MCP clients and AI agents, and retrieve listing details. Free, read-only access.
Related MCP Servers
AlicenseAqualityCmaintenanceEnables coding agents to search an index of 22k+ MCP servers, agent skills and coding-agent plugins directly from chat, returning matches with stars, install commands and page links, plus trending repos and curated best-of topic lists. Read-only, no API key required, usable via a hosted HTTP endpoint or locally over stdio.4MIT- AlicenseNot gradedqualityCmaintenanceEnables searching and retrieving details of 41,000+ agent skills, MCP servers, Claude Code plugins, and agentic loops from any MCP-capable agent.MIT
- AlicenseNot gradedqualityAmaintenanceOpen MCP server for AI agents to discover people, jobs, collaborators and projects through semantic search over human-published context.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to search MCP servers ranked by measured handshake checks, tool lists, repository signals, and signed reports, with open data.229 npmApache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.