agentwebmap
Server Details
Find publisher documentation via llms.txt, with source links, evidence and check dates.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- AgentWebMap/mcp
- GitHub Stars
- 0
- Server Listing
- Agent Web Map MCP server
TDQS
Scored across 20 tools
Most tools target distinct lifecycle actions (register, verify, watch, update), but resolve and search_llms_registry both promise to find documentation by development task with overlapping semantics, and lookup_domain vs site_stats/list_domains share reader roles. A few ownership-related tools (begin_ownership_claim, verify_domain, verification_instructions, rotate_owner_key) are distinguishable by phase but could still trip an agent.
The dominant pattern is verb_noun (register_domain, update_site, watch_domain, test_watch, generate_llms_txt), which is easy to scan. Deviations like the bare verb 'resolve' and noun-phrase names (directory_stats, site_stats, verification_instructions) are minor and still readable.
20 tools sits at the heavy end of the reasonable band for a directory/ownership/watch server. The surface is defensible given the multiple sub-domains (discovery, validation, ownership, notifications), but a few tools (test_notification vs test_watch, resolve vs search_llms_registry) suggest some consolidation was possible.
Core lifecycle is well covered: create (register_domain), read (lookup_domain, list_domains, resolve, search_llms_registry), update (update_site, recrawl_site), ownership proof/rotation, and full watch subscribe/unsubscribe/test loop. The main gap is the absence of an unregister/remove-domain operation, which is a minor dead end.
Available Tools
20 toolsbegin_ownership_claimBegin ownership claimAInspect
Start optional ownership management or recovery for a domain you control. Returns an expiring fresh public proof token and a private claim_secret shown once. Keep the secret private; publish only the verification snippet, then call verify_domain with claim_id and claim_secret. Existing keys remain valid until fresh proof succeeds. No backlink is required: DNS, meta tag and well-known file methods are supported.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say non-readonly, non-idempotent, non-destructive; the description adds substantial context beyond that: the token expires, the claim_secret is shown only once and must stay private, only the verification snippet is published, and existing keys remain valid until fresh proof succeeds. It also declares that no backlink is required and enumerates the supported proof methods (DNS, meta tag, well-known file), which is real behavioral disclosure for a one-shot mutation.
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?
Four sentences, each carrying a distinct payload: purpose, return values and secrecy rule, next-step call, and the non-requirements. Nothing is repeated from the schema or annotations, and the operational facts are front-loaded.
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?
For a single-parameter mutation with an output schema present, the description supplies everything an agent needs: purpose, the secret-handling obligation, the exact follow-up call with its arguments, and the guarantee that existing keys are unaffected. Return-value structure is left to the output schema, which is the right division of labor.
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?
There is a single required parameter whose schema description is already complete ('A domain name such as example.com (no scheme, no path)'), so the schema carries the parameter semantics. The description only reinforces that the domain must be one you control, adding no further format or constraint detail.
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?
Opens with a specific verb+resource ('Start optional ownership management or recovery for a domain you control'), which is a distinct purpose from sibling reads like lookup_domain or verify_domain. It also positions itself in the workflow by naming verify_domain as the follow-up step, so an agent can tell it apart from the rest of the domain tools.
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?
It gives clear context for when to use it (ownership management or recovery on a domain you control) and explicitly directs the agent to the next call: 'call verify_domain with claim_id and claim_secret'. It does not mention exclusions versus siblings such as rotate_owner_key or register_domain, so it stops short of full when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_llms_txtCheck llms txtARead-onlyIdempotentInspect
Validate a site's llms.txt: reachability, HTML-instead-of-text, redirects to other domains, H1 title, summary, sections, links, link health, llms-full.txt and charset. Returns each check with what to fix and the file preview. Ownership management is optional and does not affect validation.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent/non-destructive, so safety is covered. The description adds real value beyond them: the full set of checks, that results include remediation guidance ('what to fix'), and a file preview. It stops short of describing pagination or failure modes.
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 the purpose, then the check list, then the ownership caveat. The middle list is dense but each item is meaningful scope information rather than 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?
An output schema exists, so return values need not be explained; the description nonetheless notes the response shape (per-check results, fixes, preview). For a read-only validation tool with full annotation and schema coverage, this is nearly complete, lacking only explicit sibling routing.
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?
With a single parameter and 100% schema description coverage, the schema already documents the domain format (no scheme, no path). The description adds no parameter-level detail, so the baseline of 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+resource ('Validate a site's llms.txt') and enumerates the exact checks performed, so an agent knows the scope precisely. It does not name or explicitly contrast with the nearest sibling (generate_llms_txt), so it falls short of full sibling differentiation.
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?
Usage is implied by the name and check list, and the closing note that 'Ownership management is optional and does not affect validation' preempts a likely confusion. However, there is no explicit when-to-use, when-not-to-use, or named alternative, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
directory_statsDirectory statsARead-onlyIdempotentInspect
Directory-wide counts for Agent Web Map: domains tracked, valid llms.txt files, listed, verified, pending.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world), so little burden remains. The description adds no context beyond the annotations — no caching/freshness behavior, no auth needs — but it does not contradict them either.
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?
A single front-loaded sentence with zero filler; the scope ('directory-wide') comes first and the enumerated metrics follow immediately.
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?
For a parameterless, read-only aggregate tool with a rich annotation set and an output schema covering the return values, the description is essentially complete. It does not explain how the metrics are scoped or computed, but nothing required to call 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?
Zero parameters, so the schema imposes no semantic burden and the baseline is 4. Nothing in the description adds or detracts from parameter meaning.
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+resource: 'Directory-wide counts for Agent Web Map,' and enumerates the exact metrics returned. The word 'directory-wide' implicitly separates it from the sibling site_stats, though it never names that alternative.
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?
Usage is only implied by the 'directory-wide' scope — an agent can infer this is the aggregate-overview call, but the description gives no explicit when-to-use, no guidance on how it differs from site_stats, and no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_llms_txtGenerate llms txtARead-onlyIdempotentInspect
Draft an llms.txt for a site from its own homepage, sitemap and page titles. Takes 10-30 seconds. The owner reviews it and publishes it at /llms.txt. Ownership management is optional and uses a separate fresh challenge.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: the 10-30 second runtime, the fact that it only drafts and a human publishes, and that ownership is handled by a separate fresh challenge.
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?
Four compact sentences that are front-loaded with the core action and immediately followed by the time cost and publish workflow. The ownership-management sentence is slightly tangential but still relevant context.
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, return values need no explanation, and annotations carry the safety profile. The description fills the remaining gaps (latency, draft-then-publish semantics, ownership split) adequately for a one-parameter tool.
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 single domain parameter is fully documented in the schema (format, length bounds), so the description need not repeat it. It adds nothing about the parameter beyond saying the draft is 'for a site', which is the baseline 3 case.
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?
The description states a specific verb (draft) and resource (llms.txt) plus the source inputs it draws on (homepage, sitemap, page titles), which distinguishes it from check_llms_txt in practice. It never names a sibling explicitly, so the differentiation is implicit rather than stated.
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?
It describes the downstream workflow (owner reviews and publishes at /llms.txt) and notes ownership management is optional, which implies when this tool fits. However, it gives no explicit guidance on when to use it versus check_llms_txt, recrawl_site, or update_site.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesARead-onlyIdempotentInspect
List the topic taxonomy and counts of featured/listed sites by inferred category, unclassified sites and publisher-declared MCP endpoints. Categories describe topics; capabilities are separate explicit publisher declarations. Counts can overlap. Use category or capability filters with resolve, search_llms_registry or list_domains. An MCP declaration does not prove availability.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real data-semantics context the annotations cannot: counts can overlap, and an MCP declaration does not prove availability. These disclaimers meaningfully shape how the agent interprets results.
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?
Four sentences, none redundant, and the core deliverable (taxonomy + counts) leads. Slightly dense — the capability/category distinction and the filter cross-reference could be tightened, but nothing is wasted.
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?
An output schema exists, so return structure need not be explained, and the description covers interpretation caveats (overlapping counts, MCP declarations not implying availability) plus how the output feeds sibling tools. Adequate for a zero-parameter read tool.
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?
The tool takes zero parameters, so the baseline is 4; there is no parameter semantics to clarify. The free-text mentions of category/capability filters describe how the output is used elsewhere, not parameters of this call.
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: it lists the topic taxonomy plus counts of featured/listed sites by inferred category, unclassified sites, and publisher-declared MCP endpoints. It also explicitly separates categories (topics) from capabilities (publisher declarations), which distinguishes it from sibling stat/registry tools.
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?
Names concrete downstream consumers of the returned categories/capabilities ('Use category or capability filters with resolve, search_llms_registry or list_domains'), giving clear context for why an agent would call this first. It stops short of stating when *not* to call it or how it differs from directory_stats/site_stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_domainsList domainsARead-onlyIdempotentInspect
Ranked listing of the directory (verified first, then authority). Use verified_only to get only owner-verified sites.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| detail | No | Compact consumer fields by default; full adds owner profile, claims and listing metadata. | compact |
| category | No | Filter by inferred topic ID from list_categories. Topics describe publisher metadata, not capabilities or correctness. | |
| per_page | No | ||
| capability | No | Filter to sites explicitly publishing an MCP endpoint link. Publisher declaration alone does not prove availability. | |
| verified_only | No | Only domains whose owner has verified them. | |
| include_unlisted | No | Also return low-authority (unlisted) entries. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior. The description adds a genuine behavioral trait not present in structured data: the default sort is verified-first then by authority. It stops short of describing pagination behavior for a 7-param list tool.
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, no filler, and the ranking semantics are front-loaded before the filter hint. Every clause earns its place.
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?
An output schema exists, so return shape need not be explained, and the schema documents most filters. With 7 optional params the description is adequate; only pagination behavior and the distinction from search_llms_registry are unaddressed.
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 description coverage is 71%, so the schema carries most of the load (detail, category, capability, include_unlisted are all documented there). The description only adds meaning for verified_only and reinforces the default ordering — marginal but non-zero added value.
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 — a ranked listing of the directory — plus the ordering rule (verified first, then authority), which tells an agent exactly what this returns. It is distinguishable from lookup_domain (single lookup) and search_llms_registry by implication, but no sibling is named.
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?
'Use verified_only to get only owner-verified sites' gives one concrete usage hint tied to a parameter. However, it never says when to choose this listing over search_llms_registry, directory_stats, or lookup_domain, so the when-to-use context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_domainLookup domainARead-onlyIdempotentInspect
Look up a domain: source URLs, summary, authority, ownership verification, last check and owner-stated terms. Compact by default; detail=full adds profile, country, nested files, badge and ownership claim instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Compact consumer fields by default; full adds owner profile, claims and listing metadata. | compact |
| domain | Yes | A domain name such as example.com (no scheme, no path). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: the two fidelity levels and the fact that ownership verification state and 'last check' freshness are returned, which tells the agent this may be stale cached data.
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, front-loaded with the action and the default behavior, then the modifier. The returned-field list is dense but each item is a selecting signal for an agent, so little is wasted, though it reads as an enumeration rather than prose.
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?
An output schema exists, so return values need not be explained, yet the loader-style description of returned fields helps tool selection. With annotations covering safety and the schema covering both params, the definition is sufficient to invoke correctly; only explicit alternative-tool routing 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 description coverage is 100% and both parameters are documented in-schema, so the baseline is 3. The description's 'detail=full adds profile, country, nested files, badge and ownership claim instructions' largely restates the schema's own enum description with slightly more itemization, adding only marginal value.
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+resource ('Look up a domain') and enumerates exactly what comes back (source URLs, summary, authority, ownership verification, last check, owner-stated terms), which separates it from write-oriented siblings like register_domain and verify_domain. It does not name a sibling explicitly, so sibling differentiation is inferred from the name rather than stated.
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?
Usage is implied by the field enumeration - you call it when you need registry facts about one specific domain - but there is no explicit when-to-use/when-not-to-use guidance and no pointer to resolve, list_domains, or search_llms_registry for the adjacent use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recrawl_siteRecrawl siteADestructiveInspect
Owner only. Re-validate and update the directory listing now (once per 10 minutes). This crawl can change listing and ownership verification state and deliver configured change notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). | |
| api_key | Yes | The owner API key issued by verify_domain (awm_key_...). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring destructive/openWorld/non-idempotent, the description still adds real behavioral context: owner-only authorization, a 10-minute rate limit, that the crawl mutates listing and ownership-verification state, and that it fires configured change notifications. This covers auth needs, side effects, and throttling beyond what the annotations provide.
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 short sentences, front-loaded with the authorization constraint and the rate limit before the side-effect disclosure. Every sentence carries distinct information with no redundancy.
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?
An output schema exists, so return values need no explanation, and annotations carry the safety profile. The description supplies the remaining pieces an agent needs (who may call, how often, what state changes, side-effect notifications), leaving nothing material 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 description coverage is 100%, so both the domain and api_key parameters are fully documented in the schema (format, length, that the key is issued by verify_domain). The description adds no syntax or format detail beyond that, so 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?
The description states a specific verb and resource: re-validate and update the directory listing. It is clear and actionable, and the 'now' plus rate limit anchors the operation. It does not explicitly name which sibling (e.g. update_site) it differs from, so an agent must infer the boundary.
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 clear usage context: owner only, and at most once per 10 minutes, which is an explicit precondition/exclusion. It does not name an alternative tool for callers who want to change listing fields rather than re-crawl, so routing to a sibling is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_domainRegister domainBIdempotentInspect
Submit a domain that publishes an llms.txt so it gets crawled and indexed. Returns the verification instructions so you can continue without another call. Verified owners get: Manage your listing in the browser; ownership confirmation is optional for discovery; Breakage alerts by webhook, or email when configured, when the llms.txt stops validating; Your terms for agents (automated access, rate limit, attribution, pricing) published where agents read them; Editable profile: description, tags, nested llms.txt files, contact; Measured web, REST and MCP request counts, documentation selections, publisher clicks and score history; no unique-agent claims; Domain ownership confirmation shown separately from content quality or endorsement; Instant re-crawl on demand.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive, idempotent, open-world write, and the description adds useful behavior: it returns verification instructions in the same call. However it never states auth/permission requirements, and the long benefits list describes post-verification outcomes rather than the behavior of this invocation. No contradiction with annotations.
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?
The core purpose is front-loaded well, but it is followed by a sprawling, semi-colon-fragmented benefits dump (breakage alerts, terms for agents, editable profile, score history, 'no unique-agent claims') that is largely irrelevant to selecting or invoking the tool. Most of that copy does not earn its place.
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?
An output schema exists, so return values need no explanation, yet the description spends most of its length on benefits/returns anyway. For a one-parameter tool this is adequate on mechanics but omits the usage context (prerequisites, relation to claim/verify flow) that an agent would need to sequence calls correctly.
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% on the single domain parameter and the schema already specifies format (no scheme, no path). The description only adds that the domain must publish an llms.txt, which is scope rather than parameter syntax. Baseline 3 is correct when the schema does the work.
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?
The first sentence gives a specific verb and resource: submit a domain that publishes an llms.txt so it gets crawled and indexed. That is enough to distinguish it from lookup_domain, list_domains and check_llms_txt. It does not explicitly name a sibling, but the action is unambiguous.
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?
There is no explicit 'use this when' statement, but 'Returns the verification instructions so you can continue without another call' implicitly routes the agent away from a separate verification_instructions call. Nothing tells the agent when to prefer this over begin_ownership_claim or what prerequisites (e.g. ownership) are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolveResolveARead-onlyIdempotentInspect
Start here to find documentation for a domain or development task. Returns specific page URLs with publisher excerpts, matching evidence, owner-stated terms, freshness and alternatives. Task relevance ranks ahead of ownership verification. Weak matches are fallback candidates: refine the query or search elsewhere. Use max_age to mark stale data, refresh to validate the source live, and detail=full for owner metadata. Reads need no key.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of documentation sources. | |
| query | Yes | A domain or development task, e.g. "modelcontextprotocol authorization". | |
| detail | No | Compact consumer fields by default; full adds owner profile, claims and listing metadata. | compact |
| max_age | No | Maximum acceptable age of source health in seconds; stale data is marked, not hidden. | |
| refresh | No | Validate the selected source live (bounded and rate limited); does not change the directory listing. | |
| category | No | Filter by inferred topic ID from list_categories. Topics describe publisher metadata, not capabilities or correctness. | |
| capability | No | Filter to sites explicitly publishing an MCP endpoint link. Publisher declaration alone does not prove availability. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), yet the description adds real value: ranking policy ("task relevance ranks ahead of ownership verification"), fallback semantics for weak matches, and auth expectations ("Reads need no key"). It also notes that refresh is bounded/rate limited and non-mutating for the directory, though that last point duplicates the schema.
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?
About six tight sentences, front-loaded with the entry-point statement, followed by return shape, ranking policy, fallback guidance, parameter hints, and auth. The parameter sentence at the end is the weakest link because it largely restates the schema.
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 7 parameters (1 required), full schema coverage, and an output schema, the description supplies the things structure cannot: entry-point framing, ranking behavior, failure handling, and no-key access. Little is missing for an agent to call it correctly, though sibling routing remains unspecified.
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 description coverage is 100%, so the baseline is 3. The description's guidance (max_age for stale data, refresh to validate live, detail=full for owner metadata) frames parameters in workflow terms, but each fact is already stated in the corresponding schema descriptions, so the marginal value is limited.
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?
The opening "Start here to find documentation for a domain or development task" gives a specific verb (find) and resource (documentation), and it lists the return payload (page URLs, excerpts, evidence, terms, freshness, alternatives). It signals an entry-point role but never names a sibling such as lookup_domain or search_llms_registry, so differentiation is left implicit.
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?
"Start here" establishes the intended first-call context, and "Weak matches are fallback candidates: refine the query or search elsewhere" gives an explicit failure-path instruction. It stops short of naming which sibling to use instead, so the alternative is generic rather than concrete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotate_owner_keyRotate owner keyADestructiveInspect
Owner only. Replace the API key and invalidate all existing browser owner sessions. Keep the new key; it is shown once. Does not require changing the existing ownership proof.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). | |
| api_key | Yes | The owner API key issued by verify_domain (awm_key_...). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, but the description goes well beyond them: it names exactly what is destroyed (all existing browser owner sessions), warns that the new key is shown only once and must be retained, and preempts a false assumption about the ownership proof. That is precisely the extra behavioral context a mutation tool needs.
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?
Four short sentences, each carrying distinct information: authorization scope, mutation effect, key-retention warning, and a non-obvious negative constraint. The permission requirement is front-loaded and there is no 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, return values need no explanation, and the description covers everything else an agent needs: who may call it, what it destroys, what must be saved, and what it does not require. Nothing material is missing for a two-parameter destructive operation.
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 description coverage is 100% for both parameters, so the schema already documents 'domain' format and the 'awm_key_...' key format. The description only refers to 'the API key' generically and adds no format, length, or source details beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
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 — replace the API key — plus the immediate consequence, invalidating all existing browser owner sessions. This operation is unmistakably distinct from siblings like verify_domain (issues keys) or register_domain (creates domains). An agent can identify exactly what this tool does 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?
'Owner only' establishes a clear precondition, and 'Does not require changing the existing ownership proof' clarifies an expected side-effect the caller might otherwise assume. However, it never states when to rotate versus other paths (e.g., re-running verify_domain) or any irreversible-consequence warning beyond the session invalidation. Usage is implied rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_llms_registrySearch llms registryARead-onlyIdempotentInspect
Search domains and indexed documentation links by development task. Text relevance ranks before authority and ownership verification. Compact results omit owner claims by default; use detail=full for profile metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| query | Yes | Search terms, e.g. "payments api docs". | |
| detail | No | Compact consumer fields by default; full adds owner profile, claims and listing metadata. | compact |
| category | No | Filter by inferred topic ID from list_categories. Topics describe publisher metadata, not capabilities or correctness. | |
| per_page | No | ||
| capability | No | Filter to sites explicitly publishing an MCP endpoint link. Publisher declaration alone does not prove availability. | |
| verified_only | No | Only domains whose owner has verified them. | |
| include_unlisted | No | Also return low-authority (unlisted) entries. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe idempotent read (readOnlyHint=true, destructiveHint=false). The description goes further by disclosing ranking behavior ('Text relevance ranks before authority and ownership verification') and the default compaction of results ('Compact results omit owner claims by default'). That is meaningful behavior beyond the annotations.
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 tight sentences with the core purpose front-loaded. Each sentence carries distinct information (scope, ranking behavior, default compaction). Minor restatement of schema content, but no padding.
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?
An output schema exists, so return values need not be explained. The description covers the key defaults (compact mode) and the surprising ranking order. It is largely complete, though it stops short of routing the agent among the many sibling read tools.
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 description coverage is 75%, so most parameters are documented in the schema itself. The description restates the detail=compact/full distinction that the schema already covers, adding no new syntax or format guidance. Baseline 3 is appropriate given the schema carries the weight.
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: 'Search domains and indexed documentation links by development task.' This is clearly distinguishable from write-oriented siblings like register_domain and verify_domain, but it does not explicitly differentiate itself from adjacent read tools such as list_domains or lookup_domain.
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?
The description hints at usage via 'use detail=full for profile metadata' and explains the ranking order, but there is no explicit statement of when to reach for this tool versus list_domains, lookup_domain, or resolve in the sibling set. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
site_statsSite statsARead-onlyIdempotentInspect
Owner only. Lookup count (how often agents and visitors looked the domain up), score breakdown, recent notifications, the badge embed, and the last 30 score snapshots.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). | |
| api_key | Yes | The owner API key issued by verify_domain (awm_key_...). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds a genuine authorization constraint ('Owner only'), which is exactly the kind of context annotations cannot express. It does not mention rate limits or refresh cadence.
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 compact sentences with zero filler; the access constraint is front-loaded before the content list. The trailing enumeration is list-like but every item is meaningful for deciding whether to call it.
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?
For a read-only, idempotent tool with full schema coverage and an output schema, the definition covers access gating and payload scope sufficiently. An agent knows who can call it and roughly what comes back; only pagination/volume limits are unaddressed.
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 description coverage is 100% and both parameters (domain, api_key) are fully documented in the schema, including the domain format and that the key comes from verify_domain. The description adds no parameter-level detail, so the baseline of 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?
The description names a concrete resource — per-domain statistics — and enumerates exactly what is returned (lookup counts, score breakdown, notifications, badge embed, 30 snapshots). Combined with 'Owner only,' this separates it from public lookup_domain and directory-wide directory_stats, though it never uses an explicit verb like 'retrieve'.
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?
The 'Owner only' framing implies you invoke this for a domain you own, and the api_key parameter reinforces that. However, no alternative tool is named and there is no explicit when-not-to-use guidance (e.g., use lookup_domain for public data).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_notificationTest notificationAInspect
Owner only. Send a test event to the configured webhook and/or email to confirm the wiring (once per 10 minutes).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). | |
| api_key | Yes | The owner API key issued by verify_domain (awm_key_...). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true, idempotentHint=false and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond them: the owner-only authorization requirement and the once-per-10-minutes rate limit, both of which an agent needs before calling.
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?
A single front-loaded sentence with the authorization constraint first, followed by the action and the rate limit. Zero wasted words.
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?
For a two-parameter test tool with an output schema covering return values, the description supplies the key operational facts: auth requirement, side effect, and rate limit. It leaves minor edges (e.g., behavior when no webhook/email is configured) unspecified, but nothing essential 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 description coverage is 100% and both parameters (domain, api_key) are fully documented in the schema. The description adds no syntax or format detail beyond the schema, so the baseline 3 is appropriate.
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: sending a test event to the configured webhook and/or email to confirm wiring. An agent can distinguish it from most siblings, but it never names or contrasts the closest sibling test_watch, so the differentiation is only implicit.
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 clear context for when to use it (to confirm the notification wiring) and states the 'Owner only' precondition plus a rate limit. It does not name an alternative or exclusion, which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_watchTest watchAInspect
Send a test event to a watch's webhook (once per 10 minutes).
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | ||
| watch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds a genuine behavioral trait beyond them: the rate limit of one test per 10 minutes. It still doesn't say what happens on failure or whether the webhook delivery is retried, 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?
A single front-loaded sentence with no filler. The parenthetical constraint is compactly attached rather than given its own sentence.
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?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. However, for a two-parameter tool with 0% schema coverage, the definition leaves the meaning of both required inputs and the failure behavior of the test delivery unspecified.
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 description coverage is 0% and neither parameter is described in the schema, so the description carries the full burden. It mentions 'watch's webhook' and 'a test event' but never explains that watch_id identifies the watch or what secret is for (auth token, webhook signing secret). Two required parameters remain semantically opaque.
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?
The description states a specific verb+resource: send a test event to a watch's webhook. An agent can immediately tell what the call does. It does not differentiate itself from the sibling test_notification, which is a plausible source of confusion, so it falls short of a 5.
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?
Usage is only implied: an agent can infer this is for validating a watch's webhook configuration. The parenthetical rate limit gives a useful operating constraint, but there is no explicit when-to-use, when-not-to-use, or naming of the alternative test_notification tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unwatch_domainUnwatch domainCDestructiveIdempotentInspect
Cancel a watch with its id and secret.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | ||
| watch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no statement that the watch is permanently removed, whether the secret must match the original, or what happens to a repeated cancel.
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?
A single short sentence with no wasted words, but the brevity comes at the cost of under-specification rather than being lean-yet-complete.
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?
Output schema exists so return values need not be explained, but for a destructive mutation with a natural create/cancel sibling pair, the description omits the relationship to watch_domain and where the secret originates. An agent has the schema and annotations but not the operational context.
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 description coverage is 0%, so the description carries the full burden. It names both inputs ('id and secret') but adds no meaning: it doesn't say watch_id is the identifier returned by watch_domain, nor that secret is the credential issued at watch creation.
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 ('Cancel') and resource ('a watch') plus the identifiers needed, so an agent can tell it apart from the create-side sibling watch_domain. It never names the sibling or mentions domains, so differentiation is left implicit.
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?
No when-to-use, when-not-to-use, or alternative is given. An agent has to infer that this is the inverse of watch_domain and that it requires credentials issued at watch-creation time.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_siteUpdate siteADestructiveInspect
Owner only. Edit the listing profile (description, tags, nested llms.txt paths, contact), the terms for agents (agent_terms: automated_access = one of welcome | limited | ask | not_allowed: may agents use the site automatically?; rate_limit = short text, e.g. "60 requests/minute"; attribution = one of required | appreciated | none; attribution_text = how to credit the site (≤200 chars); pricing = one of free | freemium | paid; pricing_url = where prices are published; terms_url = the full terms for automated use; notes = anything else an agent should know (≤500 chars)) and notification channels (webhook_url gets a signing secret in the answer; notify_email needs the server to have email configured). Omit a field to leave it unchanged; pass null to clear it.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Lowercase slugs, e.g. ["developer-tools", "docs"]. | |
| domain | Yes | A domain name such as example.com (no scheme, no path). | |
| api_key | Yes | The owner API key issued by verify_domain (awm_key_...). | |
| contact | No | ||
| agent_terms | No | Terms for automated use, shown to every agent that looks the site up. | |
| description | No | ||
| webhook_url | No | Public https URL to POST breakage events to. | |
| notify_email | No | ||
| nested_llms_txt | No | Same-site paths of additional llms.txt files, e.g. ["/docs/llms.txt"]. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive/non-idempotent/openWorld, and the description adds real behavioral context beyond them: null clears fields (the actual destructive act), webhook_url returns a signing secret, and notify_email requires server-side email configuration. It doesn't discuss auth failure modes or whether cleared data is recoverable.
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?
Information density is high and the critical constraint ('Owner only') is front-loaded, but the middle is one long run-on sentence with deeply nested parentheticals for agent_terms, which is hard to scan. Every element earns its place, but the structure impedes rapid parsing.
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?
For a 9-parameter mutation tool with an output schema (which is why the return value needn't be explained), the description covers access control, partial-update semantics, and the side effects of webhook/email configuration. An agent has everything needed to call it correctly.
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 only 67%, and the description compensates heavily: it defines agent_terms sub-fields the schema leaves undocumented (automated_access as a question about agent access, rate_limit example '60 requests/minute', attribution_text, notes, pricing_url), and gives length limits and null semantics. This materially exceeds what the schema provides.
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 (Edit) and resource (the listing profile: description, tags, nested llms.txt paths, contact), plus the two other editable surfaces (agent_terms, notification channels). This is far more specific than the title, though it never names a sibling tool to distinguish itself from register_domain or verify_domain.
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 a clear access prerequisite ('Owner only') and unusually precise mutation semantics: 'Omit a field to leave it unchanged; pass null to clear it.' It does not state when to prefer this over recrawl_site or other siblings, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verification_instructionsVerification instructionsARead-onlyIdempotentInspect
Describe optional ownership management and its four proof methods. Call begin_ownership_claim to obtain a fresh expiring proof and a private claim secret. No ownership claim is needed for discovery.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description usefully adds that ownership claims are optional and that proofs expire, plus that the claim secret is private, which is genuinely behavioral context. It does not say whether the returned instructions vary by domain or whether anything is persisted.
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 short sentences with no filler, front-loading what the tool provides before naming the follow-up call and the discovery exemption. Efficient, though the second sentence about begin_ownership_claim could arguably be left to that tool's own definition.
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?
An output schema exists, so return values need not be described. However, the description never explains the role of the required domain argument in an 'instructions' tool, nor does it enumerate the four proof methods it advertises, leaving a gap for correct invocation context.
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 description coverage is 100% and the single domain parameter is well documented in the schema (name format, no scheme/path). The description neither mentions the domain parameter nor explains how it affects the returned instructions, which is a notable omission for an instruction-content tool. Baseline 3 applies since the schema carries the load.
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+resource: it describes optional ownership management and its four proof methods, which is clearly distinct from sibling lookup/registry tools. It also names begin_ownership_claim, so an agent can route correctly. It stops short of saying precisely what form the returned instructions take, but the intent is legible.
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?
It names the concrete alternative (begin_ownership_claim) and the trigger for using it (obtaining a fresh expiring proof and a private claim secret). It also gives an explicit when-not condition: no ownership claim is needed for discovery. No exclusions are stated beyond that, but the routing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_domainVerify domainADestructiveInspect
Complete the fresh challenge from begin_ownership_claim using its private claim credentials. Checks the published proof and consumes the challenge once, returning the owner API key shown once. Public or legacy proof tokens alone cannot issue keys. Recovery replaces previous credentials and sessions. Rate limited: 10 attempts per domain per hour.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). | |
| claim_id | Yes | ||
| claim_secret | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing single-use consumption of the challenge (non-idempotent), that the API key is shown only once, that recovery destroys prior credentials and sessions (matching destructiveHint), and an explicit rate limit of 10 attempts per domain per hour. This is exactly the behavioral context annotations cannot convey.
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?
Four dense sentences, all front-loaded with the action and dependency first, then consequences, then the rate limit. Every sentence carries non-redundant information; nothing is wasted.
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?
For a destructive, credential-consuming mutation with an output schema covering return values, the description supplies the missing pieces: the prerequisite call, single-use semantics, credential replacement, and throttling. An agent has enough to invoke it correctly on the first try.
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?
Only the domain parameter is documented in the schema (33% coverage). The description implies provenance for claim_id/claim_secret ('its private claim credentials' from begin_ownership_claim) and labels them private, which helps, but it never clarifies what claim_id identifies or the expected secret format, so it only partially compensates for the coverage gap.
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 ('Complete the fresh challenge from begin_ownership_claim') and names the sibling that produces the input, so an agent can place it in the ownership-claim flow without opening the schema. It also states the concrete outcome (returns the owner API key).
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?
Clearly frames this as the second step after begin_ownership_claim and excludes alternatives: 'Public or legacy proof tokens alone cannot issue keys.' No explicit mention of when not to call it (e.g., an already-verified domain) or of the sibling verification_instructions, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_domainWatch domainAInspect
Subscribe to a domain: a signed JSON POST goes to your webhook when its llms.txt changes, breaks, is restored, loses its llms-full.txt, changes tier, or its verification changes. Returns a watch id and a secret (shown once) for the signature and for unsubscribing. 20 new watches per hour per client, 5 active per domain per client.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | A domain name such as example.com (no scheme, no path). | |
| webhook_url | Yes | Public http(s) URL that accepts a JSON POST. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it as a non-read-only, open-world, non-idempotent, non-destructive mutation. The description adds substantial behavior beyond that: the POST is signed JSON, the returned secret is shown only once and is needed for signature verification and unsubscribing, and there are per-client rate and active-watch caps.
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 the core action and its trigger events, then the return/secret behavior, then limits. No filler, and each clause carries information an 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?
Although an output schema exists, the description still usefully flags the one-time secret and its purpose, plus rate limits that affect whether a call will succeed. For a subscription tool with two fully documented params, 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%, so both parameters (domain format, public http(s) webhook_url) are already fully documented in the schema. The description adds no additional syntax or format detail for the parameters themselves, so the baseline of 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 ('Subscribe to a domain') and enumerates the exact events that fire the webhook (llms.txt changes, breaks, is restored, loses llms-full.txt, tier change, verification change). This clearly distinguishes it from siblings like unwatch_domain and test_watch.
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?
The description gives strong context for when this applies (you want a webhook notified on llms.txt state changes) and discloses capacity limits ('20 new watches per hour per client, 5 active per domain per client'). It does not explicitly name alternatives such as test_watch for validating a webhook before subscribing, so it stops short of full when/when-not routing.
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.
6 tool updates
- Added
begin_ownership_claim - Changed
register_domain1 field changed- changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "benefits": { - "items": { - "type": "string" - }, - "type": "array" - }, - "domain": { - "type": "string" - }, - "lookup": { - "type": "string" - }, - "queued": { - "type": "boolean" - }, - "status": { - "enum": [ - "pending", - "valid", - "invalid", - "unreachable" - ], - "type": "string" - }, - "verification": { - "additionalProperties": false, - "properties": { - "domain": { - "type": "string" - }, - "methods": { - "items": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "method": { - "enum": [ - "llms_txt", - "dns", - "meta", - "well_known" - ], - "type": "string" - }, - "snippet": { - "type": "string" - } - }, - "required": [ - "method", - "description", - "snippet" - ], - "type": "object" - }, - "type": "array" - }, - "token": { - "type": "string" - }, - "verify_endpoint": { - "type": "string" - } - }, - "required": [ - "domain", - "token", - "verify_endpoint", - "methods" - ], - "type": "object" - } - }, - "required": [ - "domain", - "status", - "queued", - "lookup", - "verification", - "benefits" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "detail": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "error": { - "type": "string" - }, - "hint": { - "type": "string" - }, - "retry_after_seconds": { - "type": "integer" - } - }, - "required": [ - "error" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "benefits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "domain": { + "type": "string" + }, + "lookup": { + "type": "string" + }, + "queued": { + "type": "boolean" + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "verification": { + "additionalProperties": false, + "properties": { + "claim_endpoint": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "manage": { + "type": "string" + }, + "methods": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "method": { + "enum": [ + "llms_txt", + "dns", + "meta", + "well_known" + ], + "type": "string" + }, + "snippet": { + "type": "string" + } + }, + "required": [ + "method", + "description" + ], + "type": "object" + }, + "type": "array" + }, + "note": { + "type": "string" + }, + "token": { + "type": "string" + }, + "verify_endpoint": { + "type": "string" + } + }, + "required": [ + "domain", + "verify_endpoint", + "methods" + ], + "type": "object" + } + }, + "required": [ + "domain", + "status", + "queued", + "lookup", + "verification", + "benefits" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } +]
- Added
rotate_owner_key - Changed
site_stats1 field changed- changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "authority": { - "type": [ - "integer", - "null" - ] - }, - "badge": { - "additionalProperties": false, - "properties": { - "html": { - "type": "string" - }, - "markdown": { - "type": "string" - }, - "svg": { - "type": "string" - } - }, - "required": [ - "svg", - "html", - "markdown" - ], - "type": "object" - }, - "breakdown": { - "additionalProperties": false, - "properties": { - "freshness": { - "type": [ - "integer", - "null" - ] - }, - "quality": { - "type": [ - "integer", - "null" - ] - }, - "reach": { - "type": [ - "integer", - "null" - ] - }, - "trust": { - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "reach", - "trust", - "quality", - "freshness" - ], - "type": "object" - }, - "checks": { - "additionalProperties": false, - "properties": { - "homepage_ok": { - "type": [ - "boolean", - "null" - ] - }, - "links_checked": { - "type": [ - "integer", - "null" - ] - }, - "links_ok": { - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "homepage_ok", - "links_checked", - "links_ok" - ], - "type": "object" - }, - "domain": { - "type": "string" - }, - "history": { - "items": { - "additionalProperties": false, - "properties": { - "authority": { - "type": [ - "integer", - "null" - ] - }, - "checked_at": { - "type": [ - "string", - "null" - ] - }, - "freshness": { - "type": [ - "integer", - "null" - ] - }, - "quality": { - "type": [ - "integer", - "null" - ] - }, - "reach": { - "type": [ - "integer", - "null" - ] - }, - "trust": { - "type": [ - "integer", - "null" - ] - } - }, - "required": [ - "checked_at", - "authority", - "reach", - "trust", - "quality", - "freshness" - ], - "type": "object" - }, - "type": "array" - }, - "last_checked": { - "type": [ - "string", - "null" - ] - }, - "lookups": { - "type": "integer" - }, - "notifications": { - "additionalProperties": false, - "properties": { - "notify_email": { - "type": [ - "string", - "null" - ] - }, - "recent": { - "items": { - "additionalProperties": false, - "properties": { - "channel": { - "type": "string" - }, - "detail": { - "type": [ - "string", - "null" - ] - }, - "event": { - "type": "string" - }, - "ok": { - "type": "boolean" - }, - "sent_at": { - "type": [ - "string", - "null" - ] - }, - "watch_id": { - "type": "integer" - } - }, - "required": [ - "event", - "channel", - "ok", - "detail", - "sent_at" - ], - "type": "object" - }, - "type": "array" - }, - "webhook_url": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "webhook_url", - "notify_email", - "recent" - ], - "type": "object" - }, - "tier": { - "enum": [ - "featured", - "listed", - "unlisted", - "rejected", - null - ], - "type": [ - "string", - "null" - ] - }, - "verified_at": { - "type": [ - "string", - "null" - ] - } - }, - "required": [ - "domain", - "verified_at", - "lookups", - "tier", - "authority", - "breakdown", - "checks", - "last_checked", - "badge", - "notifications", - "history" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "detail": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "error": { - "type": "string" - }, - "hint": { - "type": "string" - }, - "retry_after_seconds": { - "type": "integer" - } - }, - "required": [ - "error" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "authority": { + "type": [ + "integer", + "null" + ] + }, + "badge": { + "additionalProperties": false, + "properties": { + "html": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "svg": { + "type": "string" + } + }, + "required": [ + "svg", + "html", + "markdown" + ], + "type": "object" + }, + "breakdown": { + "additionalProperties": false, + "properties": { + "freshness": { + "type": [ + "integer", + "null" + ] + }, + "quality": { + "type": [ + "integer", + "null" + ] + }, + "reach": { + "type": [ + "integer", + "null" + ] + }, + "trust": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "reach", + "trust", + "quality", + "freshness" + ], + "type": "object" + }, + "checks": { + "additionalProperties": false, + "properties": { + "homepage_ok": { + "type": [ + "boolean", + "null" + ] + }, + "links_checked": { + "type": [ + "integer", + "null" + ] + }, + "links_ok": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "homepage_ok", + "links_checked", + "links_ok" + ], + "type": "object" + }, + "domain": { + "type": "string" + }, + "history": { + "items": { + "additionalProperties": false, + "properties": { + "authority": { + "type": [ + "integer", + "null" + ] + }, + "checked_at": { + "type": [ + "string", + "null" + ] + }, + "freshness": { + "type": [ + "integer", + "null" + ] + }, + "quality": { + "type": [ + "integer", + "null" + ] + }, + "reach": { + "type": [ + "integer", + "null" + ] + }, + "trust": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "checked_at", + "authority", + "reach", + "trust", + "quality", + "freshness" + ], + "type": "object" + }, + "type": "array" + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "lookups": { + "type": "integer" + }, + "lookups_note": { + "type": "string" + }, + "notifications": { + "additionalProperties": false, + "properties": { + "notify_email": { + "type": [ + "string", + "null" + ] + }, + "recent": { + "items": { + "additionalProperties": false, + "properties": { + "channel": { + "type": "string" + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "event": { + "type": "string" + }, + "ok": { + "type": "boolean" + }, + "sent_at": { + "type": [ + "string", + "null" + ] + }, + "watch_id": { + "type": "integer" + } + }, + "required": [ + "event", + "channel", + "ok", + "detail", + "sent_at" + ], + "type": "object" + }, + "type": "array" + }, + "webhook_url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "webhook_url", + "notify_email", + "recent" + ], + "type": "object" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "usage": { + "additionalProperties": false, + "properties": { + "active_days": { + "type": "integer" + }, + "daily": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "type": "integer" + }, + "day": { + "type": "string" + }, + "event": { + "type": "string" + }, + "surface": { + "type": "string" + } + }, + "required": [ + "day", + "event", + "surface", + "count" + ], + "type": "object" + }, + "type": "array" + }, + "documentation_selections": { + "type": "integer" + }, + "events": { + "items": { + "additionalProperties": false, + "properties": { + "active_days": { + "type": "integer" + }, + "count": { + "type": "integer" + }, + "event": { + "type": "string" + }, + "surface": { + "type": "string" + } + }, + "required": [ + "event", + "surface", + "count", + "active_days" + ], + "type": "object" + }, + "type": "array" + }, + "from": { + "type": "string" + }, + "limitations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "measurement_started_at": { + "type": [ + "string", + "null" + ] + }, + "profile_views": { + "type": "integer" + }, + "referrals": { + "type": "integer" + }, + "requests": { + "additionalProperties": false, + "properties": { + "mcp": { + "type": "integer" + }, + "rest": { + "type": "integer" + }, + "web": { + "type": "integer" + } + }, + "required": [ + "web", + "rest", + "mcp" + ], + "type": "object" + }, + "through": { + "type": "string" + }, + "window_days": { + "type": "integer" + } + }, + "required": [ + "measurement_started_at", + "window_days", + "from", + "through", + "active_days", + "requests", + "profile_views", + "documentation_selections", + "referrals", + "events", + "daily", + "limitations" + ], + "type": "object" + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "domain", + "verified_at", + "lookups", + "tier", + "authority", + "breakdown", + "checks", + "last_checked", + "badge", + "notifications", + "history" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } +]
- Changed
verification_instructions1 field changed- changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "domain": { - "type": "string" - }, - "methods": { - "items": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "method": { - "enum": [ - "llms_txt", - "dns", - "meta", - "well_known" - ], - "type": "string" - }, - "snippet": { - "type": "string" - } - }, - "required": [ - "method", - "description", - "snippet" - ], - "type": "object" - }, - "type": "array" - }, - "token": { - "type": "string" - }, - "verify_endpoint": { - "type": "string" - } - }, - "required": [ - "domain", - "token", - "verify_endpoint", - "methods" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "detail": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "error": { - "type": "string" - }, - "hint": { - "type": "string" - }, - "retry_after_seconds": { - "type": "integer" - } - }, - "required": [ - "error" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "claim_endpoint": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "manage": { + "type": "string" + }, + "methods": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "method": { + "enum": [ + "llms_txt", + "dns", + "meta", + "well_known" + ], + "type": "string" + }, + "snippet": { + "type": "string" + } + }, + "required": [ + "method", + "description" + ], + "type": "object" + }, + "type": "array" + }, + "note": { + "type": "string" + }, + "token": { + "type": "string" + }, + "verify_endpoint": { + "type": "string" + } + }, + "required": [ + "domain", + "verify_endpoint", + "methods" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } +]
- Changed
verify_domain4 fields changed- added
Input schema / properties / claim_idAdded value: +{ + "maxLength": 100, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / claim_secretAdded value: +{ + "maxLength": 200, + "minLength": 1, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "domain" -]New value: +[ + "domain", + "claim_id", + "claim_secret" +] - changed
Output schema / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "api_key": { - "type": "string" - }, - "badge": { - "additionalProperties": false, - "properties": { - "html": { - "type": "string" - }, - "markdown": { - "type": "string" - }, - "svg": { - "type": "string" - } - }, - "required": [ - "svg", - "html", - "markdown" - ], - "type": "object" - }, - "domain": { - "type": "string" - }, - "manage": { - "type": "string" - }, - "note": { - "type": "string" - }, - "notifications": { - "type": "string" - }, - "verified": { - "const": true - }, - "via": { - "type": "string" - } - }, - "required": [ - "domain", - "verified", - "via", - "api_key", - "note", - "manage", - "badge", - "notifications" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "checked": { - "additionalProperties": false, - "properties": { - "dns": { - "type": "boolean" - }, - "llms_txt": { - "type": "boolean" - }, - "meta": { - "type": "boolean" - }, - "well_known": { - "type": "boolean" - } - }, - "required": [], - "type": "object" - }, - "domain": { - "type": "string" - }, - "hint": { - "type": "string" - }, - "verification": { - "additionalProperties": false, - "properties": { - "domain": { - "type": "string" - }, - "methods": { - "items": { - "additionalProperties": false, - "properties": { - "description": { - "type": "string" - }, - "method": { - "enum": [ - "llms_txt", - "dns", - "meta", - "well_known" - ], - "type": "string" - }, - "snippet": { - "type": "string" - } - }, - "required": [ - "method", - "description", - "snippet" - ], - "type": "object" - }, - "type": "array" - }, - "token": { - "type": "string" - }, - "verify_endpoint": { - "type": "string" - } - }, - "required": [ - "domain", - "token", - "verify_endpoint", - "methods" - ], - "type": "object" - }, - "verified": { - "const": false - } - }, - "required": [ - "domain", - "verified", - "checked", - "hint", - "verification" - ], - "type": "object" - }, - { - "additionalProperties": true, - "properties": { - "detail": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "error": { - "type": "string" - }, - "hint": { - "type": "string" - }, - "retry_after_seconds": { - "type": "integer" - } - }, - "required": [ - "error" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "api_key": { + "type": "string" + }, + "badge": { + "additionalProperties": false, + "properties": { + "html": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "svg": { + "type": "string" + } + }, + "required": [ + "svg", + "html", + "markdown" + ], + "type": "object" + }, + "domain": { + "type": "string" + }, + "manage": { + "type": "string" + }, + "note": { + "type": "string" + }, + "notifications": { + "type": "string" + }, + "verified": { + "const": true + }, + "via": { + "type": "string" + } + }, + "required": [ + "domain", + "verified", + "via", + "api_key", + "note", + "manage", + "badge", + "notifications" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "additionalProperties": false, + "properties": { + "dns": { + "type": "boolean" + }, + "llms_txt": { + "type": "boolean" + }, + "meta": { + "type": "boolean" + }, + "well_known": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "domain": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "verification": { + "additionalProperties": false, + "properties": { + "claim_endpoint": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "manage": { + "type": "string" + }, + "methods": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "method": { + "enum": [ + "llms_txt", + "dns", + "meta", + "well_known" + ], + "type": "string" + }, + "snippet": { + "type": "string" + } + }, + "required": [ + "method", + "description" + ], + "type": "object" + }, + "type": "array" + }, + "note": { + "type": "string" + }, + "token": { + "type": "string" + }, + "verify_endpoint": { + "type": "string" + } + }, + "required": [ + "domain", + "verify_endpoint", + "methods" + ], + "type": "object" + }, + "verified": { + "const": false + } + }, + "required": [ + "domain", + "verified", + "checked", + "hint", + "verification" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } +]
18 tool updates
- Changed
check_llms_txt3 fields changed- added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "bytes": { + "type": "integer" + }, + "checked_at": { + "type": [ + "string", + "null" + ] + }, + "checks": { + "items": { + "additionalProperties": false, + "properties": { + "detail": { + "type": "string" + }, + "label": { + "type": "string" + }, + "ok": { + "type": "boolean" + } + }, + "required": [ + "ok", + "label", + "detail" + ], + "type": "object" + }, + "type": "array" + }, + "content_hash": { + "type": [ + "string", + "null" + ] + }, + "domain": { + "type": "string" + }, + "http_status": { + "type": [ + "integer", + "null" + ] + }, + "listed": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "authority": { + "type": [ + "integer", + "null" + ] + }, + "page": { + "type": "string" + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "verified": { + "type": "boolean" + } + }, + "required": [ + "status", + "tier", + "authority", + "verified", + "page" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "max": { + "type": "integer" + }, + "parsed": { + "additionalProperties": false, + "properties": { + "linkCount": { + "type": "integer" + }, + "sectionCount": { + "type": "integer" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "title", + "summary", + "sectionCount", + "linkCount" + ], + "type": "object" + }, + "plausible": { + "type": "boolean" + }, + "preview": { + "type": [ + "string", + "null" + ] + }, + "score": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "verdict": { + "enum": [ + "valid", + "unreachable", + "needs work" + ], + "type": "string" + } + }, + "required": [ + "domain", + "url", + "checks", + "score", + "max", + "listed", + "verdict", + "preview" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
directory_stats1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "domains_tracked": { + "type": "integer" + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "listed": { + "type": "integer" + }, + "pending": { + "type": "integer" + }, + "valid_llms_txt": { + "type": "integer" + }, + "verified": { + "type": "integer" + }, + "with_llms_full_txt": { + "type": "integer" + } + }, + "required": [ + "domains_tracked", + "valid_llms_txt", + "listed", + "verified", + "with_llms_full_txt", + "pending", + "last_checked" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
generate_llms_txt3 fields changed- added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "description": { + "type": [ + "string", + "null" + ] + }, + "domain": { + "type": "string" + }, + "ok": { + "const": true + }, + "pages": { + "type": "integer" + }, + "sampled": { + "type": "integer" + }, + "source": { + "type": "string" + }, + "text": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "ok", + "domain", + "title", + "description", + "pages", + "source", + "sampled", + "text" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Added
list_categories - Changed
list_domains5 fields changed- added
Input schema / properties / capabilityAdded value: +{ + "description": "Filter to sites explicitly publishing an MCP endpoint link. Publisher declaration alone does not prove availability.", + "enum": [ + "mcp" + ], + "type": "string" +} - added
Input schema / properties / categoryAdded value: +{ + "description": "Filter by inferred topic ID from list_categories. Topics describe publisher metadata, not capabilities or correctness.", + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" +} - added
Input schema / properties / detailAdded value: +{ + "default": "compact", + "description": "Compact consumer fields by default; full adds owner profile, claims and listing metadata.", + "enum": [ + "compact", + "full" + ], + "type": "string" +} - changed
Input schema / properties / per_page / defaultPrevious value: -50New value: +10 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "page": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "query": { + "type": "string" + }, + "results": { + "items": { + "additionalProperties": false, + "properties": { + "agent_terms": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attribution": { + "enum": [ + "required", + "appreciated", + "none" + ], + "type": "string" + }, + "attribution_text": { + "maxLength": 200, + "type": "string" + }, + "automated_access": { + "enum": [ + "welcome", + "limited", + "ask", + "not_allowed" + ], + "type": "string" + }, + "notes": { + "maxLength": 500, + "type": "string" + }, + "pricing": { + "enum": [ + "free", + "freemium", + "paid" + ], + "type": "string" + }, + "pricing_url": { + "type": "string" + }, + "rate_limit": { + "maxLength": 100, + "type": "string" + }, + "terms_url": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "authority": { + "type": [ + "integer", + "null" + ] + }, + "badge": { + "type": "string" + }, + "capabilities": { + "description": "Publisher-declared capabilities. An MCP declaration does not prove availability or protocol compatibility.", + "items": { + "enum": [ + "mcp" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "capability_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "const": "mcp" + }, + "source_url": { + "type": "string" + }, + "status": { + "const": "publisher_declared" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "source_url", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "categories": { + "description": "Inferred topic IDs from publisher metadata; empty means unclassified.", + "items": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "maxItems": 5, + "type": "array", + "uniqueItems": true + }, + "categorized_at": { + "type": [ + "string", + "null" + ] + }, + "category_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "confidence": { + "description": "Deterministic rule strength, not a calibrated probability.", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "evidence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "source": { + "const": "publisher_metadata" + } + }, + "required": [ + "id", + "confidence", + "evidence", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "category_version": { + "type": [ + "string", + "null" + ] + }, + "claim": { + "additionalProperties": false, + "properties": { + "benefits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "docs": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "mcp": { + "type": "string" + }, + "verification": { + "type": "string" + }, + "verify": { + "type": "string" + } + }, + "required": [ + "hint", + "verification", + "verify", + "docs", + "mcp", + "benefits" + ], + "type": "object" + }, + "contact": { + "type": [ + "string", + "null" + ] + }, + "country": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "domain": { + "type": "string" + }, + "evidence": { + "items": { + "additionalProperties": true, + "properties": { + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "type": "array" + }, + "first_seen": { + "type": [ + "string", + "null" + ] + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "links": { + "type": [ + "integer", + "null" + ] + }, + "llms_full_txt": { + "type": [ + "string", + "null" + ] + }, + "llms_txt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "type": "number" + }, + "nested_llms_txt": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "type": [ + "integer", + "null" + ] + }, + "registered_at": { + "type": [ + "string", + "null" + ] + }, + "sections": { + "type": [ + "integer", + "null" + ] + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "verified": { + "type": "boolean" + }, + "verified_at": { + "type": [ + "string", + "null" + ] + }, + "why": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "domain", + "status", + "tier", + "authority", + "verified", + "title", + "summary", + "llms_txt", + "llms_full_txt", + "last_checked", + "agent_terms", + "categories", + "capabilities" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "required": [ + "page", + "per_page", + "total", + "results" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
lookup_domain4 fields changed- added
Input schema / properties / detailAdded value: +{ + "default": "compact", + "description": "Compact consumer fields by default; full adds owner profile, claims and listing metadata.", + "enum": [ + "compact", + "full" + ], + "type": "string" +} - added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "agent_terms": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attribution": { + "enum": [ + "required", + "appreciated", + "none" + ], + "type": "string" + }, + "attribution_text": { + "maxLength": 200, + "type": "string" + }, + "automated_access": { + "enum": [ + "welcome", + "limited", + "ask", + "not_allowed" + ], + "type": "string" + }, + "notes": { + "maxLength": 500, + "type": "string" + }, + "pricing": { + "enum": [ + "free", + "freemium", + "paid" + ], + "type": "string" + }, + "pricing_url": { + "type": "string" + }, + "rate_limit": { + "maxLength": 100, + "type": "string" + }, + "terms_url": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "authority": { + "type": [ + "integer", + "null" + ] + }, + "badge": { + "type": "string" + }, + "capabilities": { + "description": "Publisher-declared capabilities. An MCP declaration does not prove availability or protocol compatibility.", + "items": { + "enum": [ + "mcp" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "capability_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "const": "mcp" + }, + "source_url": { + "type": "string" + }, + "status": { + "const": "publisher_declared" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "source_url", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "categories": { + "description": "Inferred topic IDs from publisher metadata; empty means unclassified.", + "items": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "maxItems": 5, + "type": "array", + "uniqueItems": true + }, + "categorized_at": { + "type": [ + "string", + "null" + ] + }, + "category_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "confidence": { + "description": "Deterministic rule strength, not a calibrated probability.", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "evidence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "source": { + "const": "publisher_metadata" + } + }, + "required": [ + "id", + "confidence", + "evidence", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "category_version": { + "type": [ + "string", + "null" + ] + }, + "claim": { + "additionalProperties": false, + "properties": { + "benefits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "docs": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "mcp": { + "type": "string" + }, + "verification": { + "type": "string" + }, + "verify": { + "type": "string" + } + }, + "required": [ + "hint", + "verification", + "verify", + "docs", + "mcp", + "benefits" + ], + "type": "object" + }, + "contact": { + "type": [ + "string", + "null" + ] + }, + "country": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "domain": { + "type": "string" + }, + "evidence": { + "items": { + "additionalProperties": true, + "properties": { + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "type": "array" + }, + "first_seen": { + "type": [ + "string", + "null" + ] + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "links": { + "type": [ + "integer", + "null" + ] + }, + "llms_full_txt": { + "type": [ + "string", + "null" + ] + }, + "llms_txt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "type": "number" + }, + "nested_llms_txt": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "type": [ + "integer", + "null" + ] + }, + "registered_at": { + "type": [ + "string", + "null" + ] + }, + "sections": { + "type": [ + "integer", + "null" + ] + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "verified": { + "type": "boolean" + }, + "verified_at": { + "type": [ + "string", + "null" + ] + }, + "why": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "domain", + "status", + "tier", + "authority", + "verified", + "title", + "summary", + "llms_txt", + "llms_full_txt", + "last_checked", + "agent_terms", + "categories", + "capabilities" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
recrawl_site5 fields changed- added
Input schema / properties / api_key / maxLengthAdded value: +200 - added
Input schema / properties / api_key / minLengthAdded value: +1 - added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "agent_terms": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attribution": { + "enum": [ + "required", + "appreciated", + "none" + ], + "type": "string" + }, + "attribution_text": { + "maxLength": 200, + "type": "string" + }, + "automated_access": { + "enum": [ + "welcome", + "limited", + "ask", + "not_allowed" + ], + "type": "string" + }, + "notes": { + "maxLength": 500, + "type": "string" + }, + "pricing": { + "enum": [ + "free", + "freemium", + "paid" + ], + "type": "string" + }, + "pricing_url": { + "type": "string" + }, + "rate_limit": { + "maxLength": 100, + "type": "string" + }, + "terms_url": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "authority": { + "type": [ + "integer", + "null" + ] + }, + "badge": { + "type": "string" + }, + "capabilities": { + "description": "Publisher-declared capabilities. An MCP declaration does not prove availability or protocol compatibility.", + "items": { + "enum": [ + "mcp" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "capability_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "const": "mcp" + }, + "source_url": { + "type": "string" + }, + "status": { + "const": "publisher_declared" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "source_url", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "categories": { + "description": "Inferred topic IDs from publisher metadata; empty means unclassified.", + "items": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "maxItems": 5, + "type": "array", + "uniqueItems": true + }, + "categorized_at": { + "type": [ + "string", + "null" + ] + }, + "category_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "confidence": { + "description": "Deterministic rule strength, not a calibrated probability.", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "evidence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "source": { + "const": "publisher_metadata" + } + }, + "required": [ + "id", + "confidence", + "evidence", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "category_version": { + "type": [ + "string", + "null" + ] + }, + "claim": { + "additionalProperties": false, + "properties": { + "benefits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "docs": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "mcp": { + "type": "string" + }, + "verification": { + "type": "string" + }, + "verify": { + "type": "string" + } + }, + "required": [ + "hint", + "verification", + "verify", + "docs", + "mcp", + "benefits" + ], + "type": "object" + }, + "contact": { + "type": [ + "string", + "null" + ] + }, + "country": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "domain": { + "type": "string" + }, + "evidence": { + "items": { + "additionalProperties": true, + "properties": { + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "type": "array" + }, + "first_seen": { + "type": [ + "string", + "null" + ] + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "links": { + "type": [ + "integer", + "null" + ] + }, + "llms_full_txt": { + "type": [ + "string", + "null" + ] + }, + "llms_txt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "type": "number" + }, + "nested_llms_txt": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "type": [ + "integer", + "null" + ] + }, + "registered_at": { + "type": [ + "string", + "null" + ] + }, + "sections": { + "type": [ + "integer", + "null" + ] + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "verified": { + "type": "boolean" + }, + "verified_at": { + "type": [ + "string", + "null" + ] + }, + "why": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "domain", + "status", + "tier", + "authority", + "verified", + "title", + "summary", + "llms_txt", + "llms_full_txt", + "last_checked", + "agent_terms", + "categories", + "capabilities" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
register_domain3 fields changed- added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "benefits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "domain": { + "type": "string" + }, + "lookup": { + "type": "string" + }, + "queued": { + "type": "boolean" + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "verification": { + "additionalProperties": false, + "properties": { + "domain": { + "type": "string" + }, + "methods": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "method": { + "enum": [ + "llms_txt", + "dns", + "meta", + "well_known" + ], + "type": "string" + }, + "snippet": { + "type": "string" + } + }, + "required": [ + "method", + "description", + "snippet" + ], + "type": "object" + }, + "type": "array" + }, + "token": { + "type": "string" + }, + "verify_endpoint": { + "type": "string" + } + }, + "required": [ + "domain", + "token", + "verify_endpoint", + "methods" + ], + "type": "object" + } + }, + "required": [ + "domain", + "status", + "queued", + "lookup", + "verification", + "benefits" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
resolve11 fields changed- added
Input schema / properties / capabilityAdded value: +{ + "description": "Filter to sites explicitly publishing an MCP endpoint link. Publisher declaration alone does not prove availability.", + "enum": [ + "mcp" + ], + "type": "string" +} - added
Input schema / properties / categoryAdded value: +{ + "description": "Filter by inferred topic ID from list_categories. Topics describe publisher metadata, not capabilities or correctness.", + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" +} - added
Input schema / properties / detailAdded value: +{ + "default": "compact", + "description": "Compact consumer fields by default; full adds owner profile, claims and listing metadata.", + "enum": [ + "compact", + "full" + ], + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "default": 3, + "description": "Maximum number of documentation sources.", + "maximum": 5, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / max_ageAdded value: +{ + "default": 86400, + "description": "Maximum acceptable age of source health in seconds; stale data is marked, not hidden.", + "maximum": 2592000, + "minimum": 0, + "type": "integer" +} - changed
Input schema / properties / query / descriptionPrevious value: -"A domain or a topic."New value: +"A domain or development task, e.g. \"modelcontextprotocol authorization\"." - added
Input schema / properties / query / maxLengthAdded value: +200 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +"\\S" - added
Input schema / properties / refreshAdded value: +{ + "default": false, + "description": "Validate the selected source live (bounded and rate limited); does not change the directory listing.", + "type": "boolean" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "alternatives": { + "items": { + "additionalProperties": false, + "properties": { + "authority": { + "type": [ + "integer", + "null" + ] + }, + "domain": { + "type": "string" + }, + "llms_txt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "type": "number" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "verified": { + "type": "boolean" + } + }, + "required": [ + "domain", + "title", + "authority", + "tier", + "verified", + "llms_txt" + ], + "type": "object" + }, + "type": "array" + }, + "best": { + "additionalProperties": false, + "properties": { + "agent_terms": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attribution": { + "enum": [ + "required", + "appreciated", + "none" + ], + "type": "string" + }, + "attribution_text": { + "maxLength": 200, + "type": "string" + }, + "automated_access": { + "enum": [ + "welcome", + "limited", + "ask", + "not_allowed" + ], + "type": "string" + }, + "notes": { + "maxLength": 500, + "type": "string" + }, + "pricing": { + "enum": [ + "free", + "freemium", + "paid" + ], + "type": "string" + }, + "pricing_url": { + "type": "string" + }, + "rate_limit": { + "maxLength": 100, + "type": "string" + }, + "terms_url": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "authority": { + "type": [ + "integer", + "null" + ] + }, + "badge": { + "type": "string" + }, + "capabilities": { + "description": "Publisher-declared capabilities. An MCP declaration does not prove availability or protocol compatibility.", + "items": { + "enum": [ + "mcp" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "capability_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "const": "mcp" + }, + "source_url": { + "type": "string" + }, + "status": { + "const": "publisher_declared" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "source_url", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "categories": { + "description": "Inferred topic IDs from publisher metadata; empty means unclassified.", + "items": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "maxItems": 5, + "type": "array", + "uniqueItems": true + }, + "categorized_at": { + "type": [ + "string", + "null" + ] + }, + "category_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "confidence": { + "description": "Deterministic rule strength, not a calibrated probability.", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "evidence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "source": { + "const": "publisher_metadata" + } + }, + "required": [ + "id", + "confidence", + "evidence", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "category_version": { + "type": [ + "string", + "null" + ] + }, + "claim": { + "additionalProperties": false, + "properties": { + "benefits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "docs": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "mcp": { + "type": "string" + }, + "verification": { + "type": "string" + }, + "verify": { + "type": "string" + } + }, + "required": [ + "hint", + "verification", + "verify", + "docs", + "mcp", + "benefits" + ], + "type": "object" + }, + "contact": { + "type": [ + "string", + "null" + ] + }, + "country": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "domain": { + "type": "string" + }, + "evidence": { + "items": { + "additionalProperties": true, + "properties": { + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "type": "array" + }, + "first_seen": { + "type": [ + "string", + "null" + ] + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "links": { + "type": [ + "integer", + "null" + ] + }, + "llms_full_txt": { + "type": [ + "string", + "null" + ] + }, + "llms_txt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "type": "number" + }, + "nested_llms_txt": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "type": [ + "integer", + "null" + ] + }, + "registered_at": { + "type": [ + "string", + "null" + ] + }, + "sections": { + "type": [ + "integer", + "null" + ] + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "verified": { + "type": "boolean" + }, + "verified_at": { + "type": [ + "string", + "null" + ] + }, + "why": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "domain", + "status", + "tier", + "authority", + "verified", + "title", + "summary", + "llms_txt", + "llms_full_txt", + "last_checked", + "agent_terms", + "categories", + "capabilities" + ], + "type": "object" + }, + "health": { + "additionalProperties": false, + "properties": { + "authority": { + "type": [ + "integer", + "null" + ] + }, + "checked_minutes_ago": { + "type": [ + "integer", + "null" + ] + }, + "content_hash": { + "type": [ + "string", + "null" + ] + }, + "http_status": { + "type": [ + "integer", + "null" + ] + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "last_valid": { + "type": [ + "string", + "null" + ] + }, + "live_checked": { + "type": "boolean" + }, + "max_age_seconds": { + "minimum": 0, + "type": "integer" + }, + "ok": { + "type": "boolean" + }, + "stale": { + "type": "boolean" + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "ok", + "status", + "tier", + "authority", + "last_checked", + "checked_minutes_ago", + "stale", + "max_age_seconds", + "live_checked", + "http_status", + "last_valid", + "content_hash" + ], + "type": "object" + }, + "match": { + "additionalProperties": false, + "properties": { + "reason": { + "type": "string" + }, + "strength": { + "enum": [ + "domain", + "strong", + "weak" + ], + "type": "string" + } + }, + "required": [ + "strength", + "reason" + ], + "type": "object" + }, + "mode": { + "enum": [ + "domain", + "topic" + ], + "type": "string" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "excerpts": { + "const": "publisher_link_metadata" + }, + "health": { + "enum": [ + "live_check", + "stored_crawl" + ], + "type": "string" + }, + "selection": { + "const": "directory" + }, + "terms": { + "enum": [ + "owner_stated", + "unknown" + ], + "type": "string" + }, + "verification": { + "const": "domain_ownership" + } + }, + "required": [ + "selection", + "verification", + "terms", + "excerpts", + "health" + ], + "type": "object" + }, + "query": { + "type": "string" + }, + "read": { + "additionalProperties": false, + "properties": { + "llms_full_txt": { + "type": [ + "string", + "null" + ] + }, + "llms_txt": { + "type": [ + "string", + "null" + ] + }, + "nested_llms_txt": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "llms_txt", + "llms_full_txt", + "nested_llms_txt" + ], + "type": "object" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "checked_at": { + "type": [ + "string", + "null" + ] + }, + "content_hash": { + "type": [ + "string", + "null" + ] + }, + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "section": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": "string" + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "url", + "title", + "excerpt", + "section", + "source_url", + "match_score", + "checked_at", + "content_hash" + ], + "type": "object" + }, + "type": "array" + }, + "terms": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attribution": { + "enum": [ + "required", + "appreciated", + "none" + ], + "type": "string" + }, + "attribution_text": { + "maxLength": 200, + "type": "string" + }, + "automated_access": { + "enum": [ + "welcome", + "limited", + "ask", + "not_allowed" + ], + "type": "string" + }, + "notes": { + "maxLength": 500, + "type": "string" + }, + "pricing": { + "enum": [ + "free", + "freemium", + "paid" + ], + "type": "string" + }, + "pricing_url": { + "type": "string" + }, + "rate_limit": { + "maxLength": 100, + "type": "string" + }, + "terms_url": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "watch": { + "type": "string" + } + }, + "required": [ + "query", + "mode", + "best", + "read", + "terms", + "health", + "sources", + "match", + "provenance", + "alternatives", + "watch" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "best": { + "type": "null" + }, + "error": { + "type": "string" + }, + "match": { + "additionalProperties": false, + "properties": { + "reason": { + "type": "string" + }, + "strength": { + "enum": [ + "domain", + "strong", + "weak" + ], + "type": "string" + } + }, + "required": [ + "strength", + "reason" + ], + "type": "object" + }, + "mode": { + "enum": [ + "domain", + "topic" + ], + "type": "string" + }, + "query": { + "type": "string" + }, + "sources": { + "items": { + "additionalProperties": false, + "properties": { + "checked_at": { + "type": [ + "string", + "null" + ] + }, + "content_hash": { + "type": [ + "string", + "null" + ] + }, + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "section": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": "string" + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "url", + "title", + "excerpt", + "section", + "source_url", + "match_score", + "checked_at", + "content_hash" + ], + "type": "object" + }, + "type": "array" + }, + "suggest": { + "additionalProperties": false, + "properties": { + "browse": { + "type": "string" + }, + "check": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "register": { + "type": "string" + }, + "search": { + "type": "string" + } + }, + "required": [ + "hint" + ], + "type": "object" + } + }, + "required": [ + "query", + "mode", + "best", + "suggest" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
search_llms_registry8 fields changed- added
Input schema / properties / capabilityAdded value: +{ + "description": "Filter to sites explicitly publishing an MCP endpoint link. Publisher declaration alone does not prove availability.", + "enum": [ + "mcp" + ], + "type": "string" +} - added
Input schema / properties / categoryAdded value: +{ + "description": "Filter by inferred topic ID from list_categories. Topics describe publisher metadata, not capabilities or correctness.", + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" +} - added
Input schema / properties / detailAdded value: +{ + "default": "compact", + "description": "Compact consumer fields by default; full adds owner profile, claims and listing metadata.", + "enum": [ + "compact", + "full" + ], + "type": "string" +} - changed
Input schema / properties / per_page / defaultPrevious value: -50New value: +10 - added
Input schema / properties / query / maxLengthAdded value: +200 - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +"\\S" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "page": { + "type": "integer" + }, + "per_page": { + "type": "integer" + }, + "query": { + "type": "string" + }, + "results": { + "items": { + "additionalProperties": false, + "properties": { + "agent_terms": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attribution": { + "enum": [ + "required", + "appreciated", + "none" + ], + "type": "string" + }, + "attribution_text": { + "maxLength": 200, + "type": "string" + }, + "automated_access": { + "enum": [ + "welcome", + "limited", + "ask", + "not_allowed" + ], + "type": "string" + }, + "notes": { + "maxLength": 500, + "type": "string" + }, + "pricing": { + "enum": [ + "free", + "freemium", + "paid" + ], + "type": "string" + }, + "pricing_url": { + "type": "string" + }, + "rate_limit": { + "maxLength": 100, + "type": "string" + }, + "terms_url": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "authority": { + "type": [ + "integer", + "null" + ] + }, + "badge": { + "type": "string" + }, + "capabilities": { + "description": "Publisher-declared capabilities. An MCP declaration does not prove availability or protocol compatibility.", + "items": { + "enum": [ + "mcp" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "capability_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "const": "mcp" + }, + "source_url": { + "type": "string" + }, + "status": { + "const": "publisher_declared" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "source_url", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "categories": { + "description": "Inferred topic IDs from publisher metadata; empty means unclassified.", + "items": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "maxItems": 5, + "type": "array", + "uniqueItems": true + }, + "categorized_at": { + "type": [ + "string", + "null" + ] + }, + "category_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "confidence": { + "description": "Deterministic rule strength, not a calibrated probability.", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "evidence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "source": { + "const": "publisher_metadata" + } + }, + "required": [ + "id", + "confidence", + "evidence", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "category_version": { + "type": [ + "string", + "null" + ] + }, + "claim": { + "additionalProperties": false, + "properties": { + "benefits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "docs": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "mcp": { + "type": "string" + }, + "verification": { + "type": "string" + }, + "verify": { + "type": "string" + } + }, + "required": [ + "hint", + "verification", + "verify", + "docs", + "mcp", + "benefits" + ], + "type": "object" + }, + "contact": { + "type": [ + "string", + "null" + ] + }, + "country": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "domain": { + "type": "string" + }, + "evidence": { + "items": { + "additionalProperties": true, + "properties": { + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "type": "array" + }, + "first_seen": { + "type": [ + "string", + "null" + ] + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "links": { + "type": [ + "integer", + "null" + ] + }, + "llms_full_txt": { + "type": [ + "string", + "null" + ] + }, + "llms_txt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "type": "number" + }, + "nested_llms_txt": { + "items": { + "type": "string" + }, + "type": "array" + }, + "rank": { + "type": [ + "integer", + "null" + ] + }, + "registered_at": { + "type": [ + "string", + "null" + ] + }, + "sections": { + "type": [ + "integer", + "null" + ] + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "verified": { + "type": "boolean" + }, + "verified_at": { + "type": [ + "string", + "null" + ] + }, + "why": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "domain", + "status", + "tier", + "authority", + "verified", + "title", + "summary", + "llms_txt", + "llms_full_txt", + "last_checked", + "agent_terms", + "categories", + "capabilities" + ], + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "integer" + } + }, + "required": [ + "page", + "per_page", + "total", + "results" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
site_stats5 fields changed- added
Input schema / properties / api_key / maxLengthAdded value: +200 - added
Input schema / properties / api_key / minLengthAdded value: +1 - added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "authority": { + "type": [ + "integer", + "null" + ] + }, + "badge": { + "additionalProperties": false, + "properties": { + "html": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "svg": { + "type": "string" + } + }, + "required": [ + "svg", + "html", + "markdown" + ], + "type": "object" + }, + "breakdown": { + "additionalProperties": false, + "properties": { + "freshness": { + "type": [ + "integer", + "null" + ] + }, + "quality": { + "type": [ + "integer", + "null" + ] + }, + "reach": { + "type": [ + "integer", + "null" + ] + }, + "trust": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "reach", + "trust", + "quality", + "freshness" + ], + "type": "object" + }, + "checks": { + "additionalProperties": false, + "properties": { + "homepage_ok": { + "type": [ + "boolean", + "null" + ] + }, + "links_checked": { + "type": [ + "integer", + "null" + ] + }, + "links_ok": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "homepage_ok", + "links_checked", + "links_ok" + ], + "type": "object" + }, + "domain": { + "type": "string" + }, + "history": { + "items": { + "additionalProperties": false, + "properties": { + "authority": { + "type": [ + "integer", + "null" + ] + }, + "checked_at": { + "type": [ + "string", + "null" + ] + }, + "freshness": { + "type": [ + "integer", + "null" + ] + }, + "quality": { + "type": [ + "integer", + "null" + ] + }, + "reach": { + "type": [ + "integer", + "null" + ] + }, + "trust": { + "type": [ + "integer", + "null" + ] + } + }, + "required": [ + "checked_at", + "authority", + "reach", + "trust", + "quality", + "freshness" + ], + "type": "object" + }, + "type": "array" + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "lookups": { + "type": "integer" + }, + "notifications": { + "additionalProperties": false, + "properties": { + "notify_email": { + "type": [ + "string", + "null" + ] + }, + "recent": { + "items": { + "additionalProperties": false, + "properties": { + "channel": { + "type": "string" + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "event": { + "type": "string" + }, + "ok": { + "type": "boolean" + }, + "sent_at": { + "type": [ + "string", + "null" + ] + }, + "watch_id": { + "type": "integer" + } + }, + "required": [ + "event", + "channel", + "ok", + "detail", + "sent_at" + ], + "type": "object" + }, + "type": "array" + }, + "webhook_url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "webhook_url", + "notify_email", + "recent" + ], + "type": "object" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "verified_at": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "domain", + "verified_at", + "lookups", + "tier", + "authority", + "breakdown", + "checks", + "last_checked", + "badge", + "notifications", + "history" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
test_notification5 fields changed- added
Input schema / properties / api_key / maxLengthAdded value: +200 - added
Input schema / properties / api_key / minLengthAdded value: +1 - added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attempts": { + "items": { + "additionalProperties": false, + "properties": { + "channel": { + "type": "string" + }, + "detail": { + "type": "string" + }, + "event": { + "type": "string" + }, + "ok": { + "type": "boolean" + }, + "watch_id": { + "type": "integer" + } + }, + "required": [ + "event", + "ok", + "detail" + ], + "type": "object" + }, + "type": "array" + }, + "domain": { + "type": "string" + }, + "watch_id": { + "type": "integer" + } + }, + "required": [ + "domain", + "attempts" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
test_watch4 fields changed- added
Input schema / properties / secret / maxLengthAdded value: +200 - added
Input schema / properties / secret / minLengthAdded value: +1 - added
Input schema / properties / watch_id / minimumAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attempts": { + "items": { + "additionalProperties": false, + "properties": { + "channel": { + "type": "string" + }, + "detail": { + "type": "string" + }, + "event": { + "type": "string" + }, + "ok": { + "type": "boolean" + }, + "watch_id": { + "type": "integer" + } + }, + "required": [ + "event", + "ok", + "detail" + ], + "type": "object" + }, + "type": "array" + }, + "domain": { + "type": "string" + }, + "watch_id": { + "type": "integer" + } + }, + "required": [ + "domain", + "attempts" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
unwatch_domain4 fields changed- added
Input schema / properties / secret / maxLengthAdded value: +200 - added
Input schema / properties / secret / minLengthAdded value: +1 - added
Input schema / properties / watch_id / minimumAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "active": { + "const": false + }, + "domain": { + "type": "string" + }, + "watch_id": { + "type": "integer" + } + }, + "required": [ + "watch_id", + "domain", + "active" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
update_site5 fields changed- added
Input schema / properties / api_key / maxLengthAdded value: +200 - added
Input schema / properties / api_key / minLengthAdded value: +1 - added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "agent_terms": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "attribution": { + "enum": [ + "required", + "appreciated", + "none" + ], + "type": "string" + }, + "attribution_text": { + "maxLength": 200, + "type": "string" + }, + "automated_access": { + "enum": [ + "welcome", + "limited", + "ask", + "not_allowed" + ], + "type": "string" + }, + "notes": { + "maxLength": 500, + "type": "string" + }, + "pricing": { + "enum": [ + "free", + "freemium", + "paid" + ], + "type": "string" + }, + "pricing_url": { + "type": "string" + }, + "rate_limit": { + "maxLength": 100, + "type": "string" + }, + "terms_url": { + "type": "string" + } + }, + "required": [], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "authority": { + "type": [ + "integer", + "null" + ] + }, + "badge": { + "type": "string" + }, + "capabilities": { + "description": "Publisher-declared capabilities. An MCP declaration does not prove availability or protocol compatibility.", + "items": { + "enum": [ + "mcp" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, + "capability_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "id": { + "const": "mcp" + }, + "source_url": { + "type": "string" + }, + "status": { + "const": "publisher_declared" + }, + "url": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "source_url", + "status" + ], + "type": "object" + }, + "type": "array" + }, + "categories": { + "description": "Inferred topic IDs from publisher metadata; empty means unclassified.", + "items": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "maxItems": 5, + "type": "array", + "uniqueItems": true + }, + "categorized_at": { + "type": [ + "string", + "null" + ] + }, + "category_evidence": { + "items": { + "additionalProperties": false, + "properties": { + "confidence": { + "description": "Deterministic rule strength, not a calibrated probability.", + "maximum": 1, + "minimum": 0, + "type": "number" + }, + "evidence": { + "items": { + "type": "string" + }, + "type": "array" + }, + "id": { + "enum": [ + "ai-ml", + "developer-tools", + "infrastructure", + "data-analytics", + "cybersecurity", + "finance-payments", + "ecommerce", + "productivity", + "marketing", + "education", + "healthcare", + "media", + "design", + "gaming", + "travel", + "community", + "legal", + "recruiting-careers", + "industrial-manufacturing", + "real-estate", + "arts-culture", + "sports-fitness", + "food-dining", + "automotive", + "government-public-services", + "science-research" + ], + "type": "string" + }, + "source": { + "const": "publisher_metadata" + } + }, + "required": [ + "id", + "confidence", + "evidence", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "category_version": { + "type": [ + "string", + "null" + ] + }, + "claim": { + "additionalProperties": false, + "properties": { + "benefits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "docs": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "mcp": { + "type": "string" + }, + "verification": { + "type": "string" + }, + "verify": { + "type": "string" + } + }, + "required": [ + "hint", + "verification", + "verify", + "docs", + "mcp", + "benefits" + ], + "type": "object" + }, + "contact": { + "type": [ + "string", + "null" + ] + }, + "country": { + "type": [ + "string", + "null" + ] + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "domain": { + "type": "string" + }, + "evidence": { + "items": { + "additionalProperties": true, + "properties": { + "excerpt": { + "type": [ + "string", + "null" + ] + }, + "source_url": { + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "url": { + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "type": "array" + }, + "first_seen": { + "type": [ + "string", + "null" + ] + }, + "last_checked": { + "type": [ + "string", + "null" + ] + }, + "links": { + "type": [ + "integer", + "null" + ] + }, + "llms_full_txt": { + "type": [ + "string", + "null" + ] + }, + "llms_txt": { + "type": [ + "string", + "null" + ] + }, + "match_score": { + "type": "number" + }, + "nested_llms_txt": { + "items": { + "type": "string" + }, + "type": "array" + }, + "notifications": { + "additionalProperties": false, + "properties": { + "notify_email": { + "type": [ + "string", + "null" + ] + }, + "webhook_url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "webhook_url", + "notify_email" + ], + "type": "object" + }, + "rank": { + "type": [ + "integer", + "null" + ] + }, + "registered_at": { + "type": [ + "string", + "null" + ] + }, + "sections": { + "type": [ + "integer", + "null" + ] + }, + "status": { + "enum": [ + "pending", + "valid", + "invalid", + "unreachable" + ], + "type": "string" + }, + "summary": { + "type": [ + "string", + "null" + ] + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tier": { + "enum": [ + "featured", + "listed", + "unlisted", + "rejected", + null + ], + "type": [ + "string", + "null" + ] + }, + "title": { + "type": [ + "string", + "null" + ] + }, + "verified": { + "type": "boolean" + }, + "verified_at": { + "type": [ + "string", + "null" + ] + }, + "webhook_note": { + "type": "string" + }, + "webhook_secret": { + "type": "string" + }, + "why": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "domain", + "status", + "tier", + "authority", + "verified", + "title", + "summary", + "llms_txt", + "llms_full_txt", + "last_checked", + "agent_terms", + "categories", + "capabilities", + "notifications" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
verification_instructions3 fields changed- added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "domain": { + "type": "string" + }, + "methods": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "method": { + "enum": [ + "llms_txt", + "dns", + "meta", + "well_known" + ], + "type": "string" + }, + "snippet": { + "type": "string" + } + }, + "required": [ + "method", + "description", + "snippet" + ], + "type": "object" + }, + "type": "array" + }, + "token": { + "type": "string" + }, + "verify_endpoint": { + "type": "string" + } + }, + "required": [ + "domain", + "token", + "verify_endpoint", + "methods" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
verify_domain3 fields changed- added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "api_key": { + "type": "string" + }, + "badge": { + "additionalProperties": false, + "properties": { + "html": { + "type": "string" + }, + "markdown": { + "type": "string" + }, + "svg": { + "type": "string" + } + }, + "required": [ + "svg", + "html", + "markdown" + ], + "type": "object" + }, + "domain": { + "type": "string" + }, + "manage": { + "type": "string" + }, + "note": { + "type": "string" + }, + "notifications": { + "type": "string" + }, + "verified": { + "const": true + }, + "via": { + "type": "string" + } + }, + "required": [ + "domain", + "verified", + "via", + "api_key", + "note", + "manage", + "badge", + "notifications" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "checked": { + "additionalProperties": false, + "properties": { + "dns": { + "type": "boolean" + }, + "llms_txt": { + "type": "boolean" + }, + "meta": { + "type": "boolean" + }, + "well_known": { + "type": "boolean" + } + }, + "required": [], + "type": "object" + }, + "domain": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "verification": { + "additionalProperties": false, + "properties": { + "domain": { + "type": "string" + }, + "methods": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "type": "string" + }, + "method": { + "enum": [ + "llms_txt", + "dns", + "meta", + "well_known" + ], + "type": "string" + }, + "snippet": { + "type": "string" + } + }, + "required": [ + "method", + "description", + "snippet" + ], + "type": "object" + }, + "type": "array" + }, + "token": { + "type": "string" + }, + "verify_endpoint": { + "type": "string" + } + }, + "required": [ + "domain", + "token", + "verify_endpoint", + "methods" + ], + "type": "object" + }, + "verified": { + "const": false + } + }, + "required": [ + "domain", + "verified", + "checked", + "hint", + "verification" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
- Changed
watch_domain6 fields changed- added
Input schema / properties / domain / maxLengthAdded value: +253 - added
Input schema / properties / domain / minLengthAdded value: +1 - added
Input schema / properties / webhook_url / maxLengthAdded value: +500 - added
Input schema / properties / webhook_url / minLengthAdded value: +1 - added
Input schema / properties / webhook_url / patternAdded value: +"^https?://" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "delivery": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "events": { + "items": { + "type": "string" + }, + "type": "array" + }, + "note": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "test": { + "type": "string" + }, + "unsubscribe": { + "type": "string" + }, + "watch_id": { + "type": "integer" + }, + "webhook_url": { + "type": "string" + } + }, + "required": [ + "watch_id", + "domain", + "webhook_url", + "secret", + "events", + "delivery", + "test", + "unsubscribe", + "note" + ], + "type": "object" + }, + { + "additionalProperties": true, + "properties": { + "detail": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "error": { + "type": "string" + }, + "hint": { + "type": "string" + }, + "retry_after_seconds": { + "type": "integer" + } + }, + "required": [ + "error" + ], + "type": "object" + } + ], + "type": "object" +}
5 tool updates
- Added
resolve - Added
test_watch - Added
unwatch_domain - Changed
update_site1 field changed- added
Input schema / properties / agent_termsAdded value: +{ + "additionalProperties": false, + "description": "Terms for automated use, shown to every agent that looks the site up.", + "properties": { + "attribution": { + "enum": [ + "required", + "appreciated", + "none" + ], + "type": "string" + }, + "attribution_text": { + "maxLength": 200, + "type": "string" + }, + "automated_access": { + "enum": [ + "welcome", + "limited", + "ask", + "not_allowed" + ], + "type": "string" + }, + "notes": { + "maxLength": 500, + "type": "string" + }, + "pricing": { + "enum": [ + "free", + "freemium", + "paid" + ], + "type": "string" + }, + "pricing_url": { + "type": "string" + }, + "rate_limit": { + "maxLength": 100, + "type": "string" + }, + "terms_url": { + "type": "string" + } + }, + "type": [ + "object", + "null" + ] +}
- Added
watch_domain
13 tool updates
- First observed
check_llms_txt - First observed
directory_stats - First observed
generate_llms_txt - First observed
list_domains - First observed
lookup_domain - First observed
recrawl_site - First observed
register_domain - First observed
search_llms_registry - First observed
site_stats - First observed
test_notification - First observed
update_site - First observed
verification_instructions - First observed
verify_domain
Related MCP Connectors
Create, validate and audit llms.txt, incl. the Lighthouse Agentic Browsing check.
Any site's llms.txt: find the covering index, read its linked docs as markdown, search sections.
Read-only search and discovery for the international llms.txt directory maintained by llmsmap.me.
Does a site publish llms.txt, robots permissions and a sitemap agents can use? Bounded check.
Related MCP Servers
- AlicenseAqualityCmaintenanceFetches and caches public site pages from llms.txt and returns structured answers with source URLs, enabling verification of claims against live public content.4MIT
- AlicenseNot gradedqualityDmaintenanceFetches and parses documentation from llms.txt files to enable AI assistants to access and query documentation dynamically.221 npmMIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables MCP host applications to retrieve and process structured documentation from user-defined llms.txt files. It provides tools to fetch specific URLs and audit the documentation context returned to the LLM.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to extract, validate, and discover documentation from websites using llms.txt and install.md standards.13 npm34-
Glama MCP Gateway
Add one secure layer between your agents and this server.