ICANN registrar accreditation status
Server Details
Is a domain registrar still ICANN-accredited, and has ICANN acted against it? 4,500+ registrars.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- joelp22-maker/referencesource-mcp
- GitHub Stars
- 0
TDQS
Scored across 4 tools
Each tool serves a distinct workflow—lookup by ID, search by name, list enforcement, and verify claims—but get_registrar and resolve_registrar overlap when an IANA ID is provided. The descriptions mitigate this by advising when to use each, so confusion is minimal.
All tool names follow a consistent verb_noun snake_case pattern: get_registrar, list_enforcement_actions, resolve_registrar, verify_quote. The verbs differ but the structural convention is uniform and predictable.
Four tools is well-scoped for a read-only registrar accreditation lookup domain. Each tool has a clear, non-redundant role and the count matches the narrow purpose of the server.
The set covers the core workflows: finding a registrar by name or ID, retrieving full accreditation details, listing enforcement actions, and verifying claims against the register. For a read-only domain, this feels complete with no obvious dead ends.
Available Tools
4 toolsget_registrarGet a registrar's status and enforcement history by IANA IDARead-onlyInspect
Everything this register holds for one IANA registrar ID: accreditation status, RDAP base URL, and any ICANN breach, suspension or termination notice with the date and the notice PDF — each with its source page and a verbatim quote. Returns a LIST: ten IDs today carry two records because ICANN and IANA spell the registrar's name differently, and both are returned rather than one being chosen.
| Name | Required | Description | Default |
|---|---|---|---|
| iana_id | Yes | The IANA registrar ID, e.g. "146" (GoDaddy) or "13". |
Output Schema
| Name | Required | Description |
|---|---|---|
| iana_id | Yes | |
| register | No | |
| registrars | Yes | |
| records_found | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description reveals the surprising behavior that the tool returns a LIST and that ten IDs carry two records due to differing ICANN/IANA name spellings, with both records returned rather than one chosen. This is valuable, non-obvious behavioral context an agent needs before invoking the 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 dense, well-structured sentences: the first front-loads the complete data scope, and the second adds the critical duplicate-record caveat. There is no filler or redundancy; 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?
For a read-only single-parameter lookup with an output schema and safety annotations, the description is complete: it states what is returned, scopes the request, and flags the main edge case (duplicate records). Nothing an agent needs 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?
The input schema already fully documents the single iana_id parameter with examples. The description reinforces that the ID is the lookup key but adds no new parameter-level detail, so the baseline score of 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?
The description clearly states the tool fetches the full record for a single IANA registrar ID, enumerating the specific data returned: accreditation status, RDAP base URL, and enforcement notices. It is unambiguous in scope (one ID) but does not explicitly differentiate itself from sibling tools like list_enforcement_actions or resolve_registrar.
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 scope 'for one IANA registrar ID' implies this is the per-ID lookup, but the description never states when to prefer it over alternatives such as list_enforcement_actions, resolve_registrar, or verify_quote. There is no explicit when/when-not guidance or exclusion, only an inferable use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_enforcement_actionsList ICANN enforcement noticesARead-onlyInspect
Which registrars has ICANN acted against? Lists the Contractual Compliance notices in this register — breach, suspension and termination — newest first, with the registrar, the date as ICANN prints it, the notice PDF and a verbatim quote of the notice line. Filter by action type or by date to see recent enforcement.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many to return, 1–20. Default 20. | |
| since | No | Optional ISO date, e.g. "2024-01-01". Only notices dated on or after it. ICANN prints dates in long form ("20 November 2017"); this filter compares an ISO form computed from that string here. | |
| action | No | Optional: only this kind of notice. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notices | Yes | |
| register | No | |
| notices_matched | Yes | |
| notices_returned | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and no destructive effect, so the safety profile is covered. The description adds meaningful behavioral context: results are ordered newest first, dates appear exactly as ICANN prints them (not normalized), and each entry includes a notice PDF and a verbatim quote. These details help the agent set the right expectations beyond the structured 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 description is a compact two-sentence structure: a strong leading question, then a dense enumeration of contents, ordering, and filter options. Every clause contributes new information with no filler or 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?
For a read-only list tool with three optional, fully documented parameters and an output schema, the description covers purpose, result contents, ordering, and filtering. The output schema handles return shape and annotations handle the safety profile, so nothing an agent needs to correctly invoke this tool 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 each parameter already has a clear description. The description only restates that filtering by action type or date is possible, adding no new semantic detail. The 'date as ICANN prints it' nuance is also already present in the since parameter's schema description, so the description adds minimal value here.
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 question 'Which registrars has ICANN acted against?' plus 'Lists the Contractual Compliance notices' gives a specific verb and resource. It enumerates the notice types (breach, suspension, termination) and the exact fields returned (registrar, date, PDF, quote), making the purpose far more specific than the title and clearly distinct from the sibling tools (registrar lookup and quote verification).
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 implies the use case — exploring ICANN compliance actions against registrars — and tells the reader they can filter by action type or date to see recent enforcement. However, it does not reference the sibling tools or state when not to use this one, so the guidance is more implied than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_registrarFind a registrar by name or IANA IDARead-onlyInspect
Which registrar is this? Search ICANN's accredited-registrar register by registrar name (or part of one, e.g. "GoDaddy", "Tucows", "namecheap") or by IANA registrar ID. Returns the matching registrars with their accreditation status and any ICANN enforcement action, each with the page and verbatim quote it was read from. Use this first when you have a name; use get_registrar when you already have the IANA ID.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Registrar name or part of one, or an IANA registrar ID. Case-insensitive substring match. | |
| status | No | Optional: return only registrars with this accreditation status. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| register | No | |
| registrars | Yes | |
| registrars_matched | Yes | |
| registrars_returned | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only non-destructive behavior. The description adds beyond that by disclosing that results include accreditation status, ICANN enforcement actions, and the page and verbatim quote the information was read from, which tells the agent the tool returns source-backed evidence.
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 earning its place: a scoping prompt, the search mechanism with examples, the return payload, and the routing guidance. It is front-loaded and avoids 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 only two parameters, a complete output schema, safety annotations, and explicit sibling routing, nothing essential is missing. The description fully equips an agent to select and invoke this tool 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% for both parameters, so the schema already documents them. The description adds value by clarifying query semantics: partial names, case-insensitive substring matching, and concrete examples like 'GoDaddy', 'Tucows', and 'namecheap'.
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 ICANN's accredited-registrar register by name or IANA ID. It also gives concrete search examples and explicitly distinguishes itself from get_registrar, so an agent can tell them apart immediately.
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?
Directly provides routing guidance: 'Use this first when you have a name; use get_registrar when you already have the IANA ID.' This makes the selection decision explicit rather than leaving it to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_quoteCheck a claimed registrar fact against the registerARead-onlyInspect
Is this right? Check a claim about a registrar — its accreditation status, its name, an enforcement date — against the register instead of trusting it. Says whether the claim matches a stored value, appears only in the verbatim source quote, or differs (and then what the register says instead), and returns the source page and quote so the claim can be traced upstream.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | Which field the claim is about, if you know it. Without it, every stored field of the record is checked. | |
| iana_id | Yes | The IANA registrar ID of the registrar the claim is about. | |
| claimed_value | Yes | The value to check, exactly as claimed, e.g. "Terminated" or "2026-10-29". |
Output Schema
| Name | Required | Description |
|---|---|---|
| match | No | |
| record | No | |
| verdict | Yes | matches_record: the claim equals a stored value (match.match_type says how exactly). matches_quote: it appears in the verbatim source quote but is not a stored value. differs: the record was found and says something else — stored_values shows what. not_found: the record was not located, which says nothing about whether the claim is true. |
| attestation | Yes | |
| quote_source | No | |
| claimed_value | Yes | |
| stored_values | No | |
| in_source_quote | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so no contradiction exists. The description adds valuable behavior beyond that: it explains the three possible comparison outcomes (match, appears only in verbatim quote, or differs with the register's value) and promises to return the source page and quote for traceability. This gives the agent a realistic expectation of the tool's semantics.
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 description is two sentences, front-loaded with the user's implicit question, and every clause earns its place. It explains the tool's purpose, input semantics, output categories, and traceability without repetition or 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?
For a read-only verification tool with a high-coverage input schema and an output schema, the description fully covers what an agent needs: what the tool does, what it checks against, what outcomes it reports, and what supporting evidence it returns. No critical behavioral or prerequisite information 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%, so the schema fully documents claimed_value, iana_id, and field. The description reinforces that the claim should be taken literally and that omitting field means all fields are checked, but it adds little beyond what the schema already provides. A baseline 3 is appropriate because the description is not needed to compensate for gaps.
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 opens with the pointed question 'Is this right?' and states a specific verb and resource: 'Check a claim about a registrar ... against the register.' It enumerates example claims (accreditation status, name, enforcement date) and clearly distinguishes itself from a data-fetch or listing tool by emphasizing verification over retrieval. This gives an agent an unambiguous understanding of the tool's unique role.
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 clearly conveys when to use the tool: whenever a claimed registrar fact needs to be checked 'instead of trusting it.' It does not explicitly name sibling alternatives such as get_registrar or resolve_registrar, nor does it state when not to use it, so it stops short of a full 5.
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.
4 tool updates
- First observed
get_registrar - First observed
list_enforcement_actions - First observed
resolve_registrar - First observed
verify_quote
Related MCP Connectors
Domain intelligence for DNS, WHOIS/RDAP, TLS, reputation, valuation, and brand protection.
Domain availability over RDAP, watchlists with daily checks, change history and email alerts.
Search newly registered, expired, aged, active, deleted and for-sale domains, plus WHOIS and DNS.
Free, keyless domain registration lookup via RDAP: registered, available, registrar, expiration.
Related MCP Servers
- AlicenseAqualityCmaintenanceDomain intelligence for DNS, WHOIS/RDAP, SSL/TLS, subdomain discovery, availability, valuation, email security, and typosquatting and brand protection.11MIT
- AlicenseNot gradedqualityFmaintenanceCheck domain name availability via RDAP. Single lookups, bulk checks (up to 50), and smart name suggestions with registration links. No API key needed.MIT
- AlicenseNot gradedqualityCmaintenanceWHOIS/RDAP domain lookup, IP geolocation and Punycode conversion. 1400+ TLDs including IDN. Public remote server, no API key.1MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to check domain name availability for single or multiple domains using DNS, RDAP, and WHOIS lookups. It provides detailed registration status including registrar information and expiration dates while supporting bulk checks of up to 50 domains.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.