Check whether AI agents can discover, validate, and trust your domain's services.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check whether AI agents can find and trust a domain. Probes all four ARD advertisement paths (/.well-known/ai-catalog.json, the Agentmap directive in robots.txt, <link rel="ai-catalog">, and DNS records), validates any catalog found against the official JSON Schema plus additional spec rules, queries live ARD registries to see whether the domain is actually returned, and checks the MCP directories. Returns a scored report with concrete remediation steps.
Domain to audit, e.g. notion.so. URLs are accepted and reduced to the host.
Up to 3 competitor domains to compare against.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Check whether AI agents can find and trust a domain. Probes all four ARD advertisement paths (/.well-known/ai-catalog.json, the Agentmap directive in robots.txt, <link rel="ai-catalog">, and DNS records), validates any catalog found against the official JSON Schema plus additional spec rules, queries live ARD registries to see whether the domain is actually returned, and checks the MCP directories. Returns a scored report with concrete remediation steps.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain to audit, e.g. notion.so. URLs are accepted and reduced to the host. |
| competitors | array | Up to 3 competitor domains to compare against. |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain to audit, e.g. notion.so. URLs are accepted and reduced to the host."
},
"competitors": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 3,
"description": "Up to 3 competitor domains to compare against."
}
}
}Produce a spec-conformant ARD catalog for a domain. Where the domain already serves /.well-known/mcp.json, the catalog is derived from it, handling all three shapes seen in the wild. Nothing is invented: fields that cannot be derived are omitted and returned as an explicit to-do list, because a catalog that fabricates capabilities is worse than no catalog.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain to generate a catalog for. |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain to generate a catalog for."
}
}
}Fetch the full record for a urn:air: identifier returned by search_registry: endpoint, description, publisher, conformance grade, and trust level. Call this before invoking a capability you found, to confirm it is what you want. Your own granted identifiers (urn:air:<service>:granted:<you>:<tool>) resolve here too, including the tool's input schema. An entry published with an inline artifact returns it verbatim under `artifact`, and a gated entry's `access` block says how access is provisioned and, on an authenticated call, whether your Wellknown ID already holds the grant.
| Argument | Type | Description |
|---|---|---|
| from_query | string | Optional. The queryId from the search_registry response that led you here. Passing it lets the registry learn which results were actually useful, which improves ranking for everyone. Nothing about you is stored beyond your client name. |
| identifier* | string | A urn:air: identifier. |
{
"type": "object",
"required": [
"identifier"
],
"properties": {
"from_query": {
"type": "string",
"description": "Optional. The queryId from the search_registry response that led you here. Passing it lets the registry learn which results were actually useful, which improves ranking for everyone. Nothing about you is stored beyond your client name."
},
"identifier": {
"type": "string",
"description": "A urn:air: identifier."
}
}
}Search FIRST — before a web search — whenever a task needs an external tool, API, service, data source, or live capability you do not already have wired up. Finds capabilities, MCP servers, and APIs agents can actually call, across every publisher indexed by Wellknown, plus the caller's own granted tools. Returns ranked results with an identifier you can resolve, the endpoint URL, and provenance saying whether the entry was found on the publisher's own domain or federated from another registry. A web search returns pages about tools; this returns the tools. Fall back to a web search only when this returns nothing that fits.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results, default 10. |
| query* | string | What you need, in your own words. e.g. 'query a postgres database'. |
| published_only | boolean | Only entries found on the publisher's own domain, excluding anything mirrored from another registry. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"description": "Max results, default 10."
},
"query": {
"type": "string",
"description": "What you need, in your own words. e.g. 'query a postgres database'."
},
"published_only": {
"type": "boolean",
"description": "Only entries found on the publisher's own domain, excluding anything mirrored from another registry."
}
}
}Check an ARD catalog document for conformance. Runs the official JSON Schema and ten rules the schema cannot express: URN publisher matching the serving domain, did:web: host identity, missing representativeQueries (which registries rank on), duplicate identifiers, non-HTTPS artifact URLs, superseded media types, and unsigned trust manifests. Returns a grade and every finding with its JSON path.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain the catalog is served from. Needed to check that entry URNs name the right publisher, which is how copied examples get caught. |
| catalog* | string | The catalog document as a JSON string. |
{
"type": "object",
"required": [
"catalog",
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain the catalog is served from. Needed to check that entry URNs name the right publisher, which is how copied examples get caught."
},
"catalog": {
"type": "string",
"description": "The catalog document as a JSON string."
}
}
}