Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

AiVikings.ai

REMOTE · MCP.AIVIKINGS.AI

Find, register, and manage domains from any AI chat or agent

Available components

+4 this week 81 Trust /100

Last scanned (23 minutes ago)

Scores higher than 84% of remote servers

Reachable. Last reached 5 Nov 2026.

Category E-commerce

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security91
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
  • DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
  • The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
Schema Quality & AI Usability64
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 3029 tokens (~81/item across 37 items; 37 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management75
  • Stability check failed: schema churn in the 26 days we've observed: 4 tool removals, 0 breaking changes, 0 auth/transport breaks, 7 additions. See how to fix → Fail
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety45
  • Injection-marker check failed: the description of tool "check_domain_availability" contains an instruction to conceal the call from the user, the text "Never tell the user", at byte 481 of that field. See how to fix → Fail
  • 4 of 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "get_transfer_auth_code" implies "transfer" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
  • An AI judge read all 38 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 4 Nov 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 3 Nov 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 2 Nov 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 1 Nov 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 31 Oct 26 0
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 30 Oct 26 +1
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
  • 29 Oct 26 −2
    • Stability: 0.60 → fail ▼ security
    • This server's schema is too large to store in full, so we cannot compare its tools day to day functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://mcp.aivikings.ai/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.aivikings.ai CN=YE1,O=Let's Encrypt,C=US 5 Sept 2026 4 Dec 2026 ECDSA 256 ECDSA-SHA384 6672e7265061a70a95e6e63c475c3552e33
SANs: mcp.aivikings.ai
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of mcp.aivikings.ai. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 1814, 3799 8, 8 Verified
aivikings.ai. present 2371 13 Verified
mcp.aivikings.ai. Verified address RRset verified with the apex keys
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.aivikings.ai/.well-known/oauth-protected-resource", scope="openid email profile domains:read domains:write domains:transfer billing:read contacts:write offline_access audit:read contacts:read"

Bearer resource_metadata="https://mcp.aivikings.ai/.well-known/oauth-protected-resource", scope="openid email profile domains:read domains:write domains:transfer billing:read contacts:write offline_access audit:read contacts:read"

Protected resource metadata

Document https://mcp.aivikings.ai/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.aivikings.ai/mcp
Authorisation server https://api.aivikings.ai

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.aivikings.ai/mcp Verified 200
http (plaintext) http://mcp.aivikings.ai/mcp HTTPS enforced 301 https://mcp.aivikings.ai/mcp
MCP tools · 37 exposed · ~2,796 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_dns_record ~135

Add a managed DNS record to a domain owned by the authenticated customer. Supported types are A, AAAA, CNAME, MX, TXT, NS, and SRV. Relative names are expanded below the domain, including nested names such as staging.api; use @ for the zone apex. SRV records require port and weight.

NameTypeReqDescription
domainstringyes–
record_namestringyes–
record_port–––
record_priorityinteger––
record_ttlinteger––
record_typestringyes–
record_valuestringyes–
record_weight–––

Structured output declared, but exposes no named fields.

No examples provided.

assign_domain_registration_contact_roles ~127

Assign one existing contact handle as the default for selected domain-registration roles. Set assign_registrant, assign_admin, assign_technical, and/or assign_billing to true; false leaves that role unchanged. Assigning a role replaces any previous default for that role. Use this when registration validation reports a missing registrant, admin, technical, or billing contact.

NameTypeReqDescription
assign_adminboolean––
assign_billingboolean––
assign_registrantboolean––
assign_technicalboolean––
contact_handlestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

check_domain_availability ~211

Check whether domain names can be registered through AIvikings. Takes a list of one or more names (up to 200). Each result has a status: available (confirmed free by the registry), probably_available (not registered as far as we can see, but NOT confirmed: lists of more than 50 names are not sent to the registry; check the shortlist again to confirm), taken, not_offered (AIvikings does not sell that TLD), invalid (see message), or try_again (could not be confirmed right now). Never tell the user a probably_available name is available. This tool does not return prices or premium status: before the user buys, always call get_domain_pricing for the chosen name and tell them if it is premium. For a single name or a short list (up to 10), include_price=true adds premium and prices in the same call.

NameTypeReqDescription
currencystring––
domainsarrayyes–
include_priceboolean––

Structured output declared, but exposes no named fields.

No examples provided.

configure_dns_record ~116

Configure an A record for a domain through AIvikings. Use record_name=@ or omit it for the root/apex record. To create a subdomain, pass a relative name such as www for www.example.com or staging.api for staging.api.example.com. For compatibility, a complete hostname such as www.example.com may also be passed as domain; the server will resolve it against the authenticated customer's longest matching parent domain.

NameTypeReqDescription
domainstringyes–
record_namestring––
record_valuestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

create_contact ~195

Create a reusable contact for domain registration. Use list_contact_countries and list_contact_states to choose valid country and state names. The returned handle can be passed to register_domain and reused for multiple domains. When handle is omitted, it is generated from the company initials (or contact-name initials), four digits, and the country code.

NameTypeReqDescription
addressstringyes–
address_line_2–––
citystringyes–
countrystringyes–
default_adminboolean––
default_billingboolean––
default_registrantboolean––
default_technicalboolean––
emailstringyes–
handle–––
namestringyes–
organization–––
phone_country_codestringyes–
phone_numberstringyes–
postal_codestringyes–
statestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

delete_dns_record ~52

Permanently delete a managed DNS record. Call list_dns_records first and pass the exact DNS zone record ID returned by the provider.

NameTypeReqDescription
dns_zone_record_idstringyes–
domainstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

domain_transfer ~41

Transfer a domain in through AIvikings.

NameTypeReqDescription
auth_codestringyes–
domainstringyes–
period_yearsinteger––

Structured output declared, but exposes no named fields.

No examples provided.

get_contact ~24

Get one reusable contact by its handle.

NameTypeReqDescription
contact_handlestringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_current_user ~35

Return the authenticated AIvikings customer for the current bearer API key, including name and email when the key belongs to a customer.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_customer ~34

Get the customer record linked to the current bearer token. A supplied customer ID must match that token.

NameTypeReqDescription
customer_id–––

Structured output declared, but exposes no named fields.

No examples provided.

get_domain_audit_log ~127

Read append-only domain change history for the authenticated customer. Omit domain for portfolio history. Requires audit:read. Results are newest recorded first; pass next_cursor with the same filters for another page. Times must include a timezone. Requested, state_changed, and outcome events share an operation_id. Accepted is not proof of provider completion. History starts when domain auditing was enabled; agent labels are self-reported.

NameTypeReqDescription
action–––
cursor–––
domain–––
from_timestamp–––
limitinteger––
to_timestamp–––

Structured output declared, but exposes no named fields.

No examples provided.

get_domain_pricing ~103

Get a fresh price quote for one domain. Returns customer-facing registration, renewal, and transfer prices, plus is_premium so the user can be told when premium pricing applies. Omit currency to use the returned currency; USD and EUR can be requested explicitly. Prices are not converted: if the requested currency is unavailable, price fields are null with a price_unavailable_reason. Never exposes upstream cost prices.

NameTypeReqDescription
currency–––
domainstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_domain_status ~50

Fetch the latest domain status, expiry and nameservers from the registrar and refresh the saved AIvikings record. Use this for an on-demand update, including pending transfers.

NameTypeReqDescription
domainstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_prepaid_balance ~70

Return the authenticated customer's prepaid balance for domain purchases. Returns both USD and EUR wallet balances. When automatic currency conversion is enabled, a zero balance in the requested currency does not block registration if the other wallet has enough credit; register_domain converts only the missing amount automatically.

NameTypeReqDescription
currencystring––

Structured output declared, but exposes no named fields.

No examples provided.

get_transfer_auth_code ~41

Return the EPP transfer auth code for a domain owned by the authenticated customer. The secret is fetched only on demand.

NameTypeReqDescription
domainstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_contact_countries ~25

List exact ConnectReseller country names and IDs for creating or updating contacts.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes–

No examples provided.

list_contact_states ~43

List exact ConnectReseller state names for a country name, country ID, or ISO code. Use the returned name in contact requests.

NameTypeReqDescription
countrystringyes–
NameTypeReqDescription
resultarrayyes–

No examples provided.

list_contacts ~17

List reusable contacts belonging to the authenticated customer.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes–

No examples provided.

list_dns_records ~44

List the managed DNS records for a domain owned by the authenticated customer. Use the returned DNS zone record ID when updating or deleting a record.

NameTypeReqDescription
domainstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_domain_registration_contacts ~61

List the authenticated customer's registrant/contact handles for domain registrations. Returns whether each contact is complete enough for registration, its missing required fields, its default domain-contact roles, and the handle to pass to register_domain. Always call this before attempting a domain registration.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

list_domains ~17

List domains recorded in the local registrar datastore.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

lock_domain ~29

Enable the registrar transfer lock for a domain owned by the authenticated customer.

NameTypeReqDescription
domainstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

middleware_get_capabilities ~59

Middleware admin only: read enabled provider accounts, capabilities and transaction input schemas. Use this before middleware_submit_transaction. Requires the static MCP/REST admin bearer token. Provider operations and credentials remain in the existing middleware service.

NameTypeReqDescription
account_id–––

Structured output declared, but exposes no named fields.

No examples provided.

middleware_get_contact ~30

Middleware admin only: read a local middleware contact by contact_id.

NameTypeReqDescription
contact_idstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

middleware_get_domain ~46

Middleware admin only: read the middleware's domain projection by domain_id. For a live provider refresh submit action=refresh first and wait for completion.

NameTypeReqDescription
domain_idstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

middleware_get_transaction ~60

Middleware admin only: read a middleware transaction's status and result by transaction_id. succeeded confirms completion; pending_provider, outcome_unknown and manual_review must not trigger a duplicate order. Authcodes require middleware_get_transaction_secret.

NameTypeReqDescription
transaction_idstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

middleware_get_transaction_secret ~42

Middleware admin only: read a protected transaction secret through the middleware API. Requires the upstream secret-read scope and is audited.

NameTypeReqDescription
transaction_idstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

middleware_list_transactions ~63

Middleware admin only: list persisted middleware transactions for the selected middleware account, optionally filtered by domain. Pass nextCursor as cursor for the next page.

NameTypeReqDescription
account_id–––
cursorstring––
domain–––
limitinteger––

Structured output declared, but exposes no named fields.

No examples provided.

middleware_submit_transaction ~156

Middleware admin only: submit a middleware transaction using action/input from middleware_get_capabilities. For account actions the selected enabled middleware account is used. For domain actions supply the middleware domain_id. Choose account_id from middleware_get_capabilities when several accounts are enabled. Every submission needs a stable idempotency_key: retry an identical request with the SAME key. 202/queued means accepted, not completed; poll middleware_get_transaction. Paid or destructive actions require explicit user intent. These operator orders do not use the ConnectReseller customer wallet or local domain portfolio.

NameTypeReqDescription
account_id–––
actionstringyes–
domain_id–––
idempotency_keystringyes–
inputobjectyes–

Structured output declared, but exposes no named fields.

No examples provided.

regenerate_transfer_auth_code ~43

Regenerate and return a new EPP transfer auth code for a domain owned by the authenticated customer, invalidating the old code.

NameTypeReqDescription
domainstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

register_domain ~192

Register a domain through AIvikings using the authenticated account's configurable default nameservers when nameservers are omitted. Call list_domain_registration_contacts first and pass contact_handle to use one complete reusable contact for registrant, admin, technical, and billing roles. If there is no registration-ready contact, call create_contact before registration. Set currency to the same USD or EUR currency used for the price quote; otherwise the customer's preferred currency is used. If that wallet is short and automatic conversion is enabled, only the missing amount is converted from the other supported wallet. For a premium domain, first show the current get_domain_pricing quote to the user and set allow_premium=true only after the user explicitly accepts that price.

NameTypeReqDescription
allow_premiumboolean––
contact_handle–––
currency–––
domainstringyes–
nameservers–––
period_yearsintegeryes–

Structured output declared, but exposes no named fields.

No examples provided.

remove_domain_registration_contact_roles ~128

Remove selected default domain-registration roles from one existing contact handle. Set remove_registrant, remove_admin, remove_technical, and/or remove_billing to true; false leaves that role unchanged. This does not delete the contact. Removing a role without assigning it to another contact can make registration validation fail unless register_domain is called with an explicit registration-ready contact_handle.

NameTypeReqDescription
contact_handlestringyes–
remove_adminboolean––
remove_billingboolean––
remove_registrantboolean––
remove_technicalboolean––

Structured output declared, but exposes no named fields.

No examples provided.

renew_domain ~32

Renew a domain through AIvikings.

NameTypeReqDescription
domainstringyes–
period_yearsintegeryes–

Structured output declared, but exposes no named fields.

No examples provided.

unlock_domain ~33

Disable the registrar transfer lock for a domain owned by the authenticated customer before a transfer-out.

NameTypeReqDescription
domainstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

update_dns_record ~108

Replace an existing managed DNS record. Call list_dns_records first and pass its DNS zone record ID. All record fields must describe the desired replacement.

NameTypeReqDescription
dns_zone_record_idstringyes–
domainstringyes–
record_namestringyes–
record_port–––
record_priorityinteger––
record_ttlinteger––
record_typestringyes–
record_valuestringyes–
record_weight–––

Structured output declared, but exposes no named fields.

No examples provided.

update_nameservers ~35

Replace a domain's nameservers through AIvikings.

NameTypeReqDescription
domainstringyes–
nameserversarrayyes–

Structured output declared, but exposes no named fields.

No examples provided.

update_registrant_contact ~172

Update the registrant contact for a domain owned by the authenticated customer. Pass contact_handle by itself to apply an existing reusable contact without copying its fields into a new contact record. Name, organization, or email changes require acknowledge_transfer_lock=true because they initiate registrant verification and can impose a 60-day inter-registrar transfer lock. A provider-accepted change is reported as verification pending until the registrant completes that step.

NameTypeReqDescription
acknowledge_transfer_lockboolean––
address–––
city–––
contact_handle–––
country–––
domainstringyes–
email–––
name–––
organization–––
phone_country_code–––
phone_number–––
postal_code–––
state–––

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the AiVikings.ai MCP server?

AiVikings.ai is a hosted endpoint at https://mcp.aivikings.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.aivikings.ai

# add to Claude Code
claude mcp add --transport http ai-aivikings-registrar 'https://mcp.aivikings.ai/mcp'
Common questions

What is the AiVikings.ai MCP server?

AiVikings.ai is an MCP server listed in the public MCP registry as ai.aivikings/registrar. Find, register, and manage domains from any AI chat or agent. This page covers its hosted endpoint (https://mcp.aivikings.ai/mcp).

Is the AiVikings.ai MCP server safe to use?

AiVikings.ai scores 81 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the AiVikings.ai MCP server expose?

AiVikings.ai exposes 37 tools: get_domain_audit_log, get_current_user, check_domain_availability, get_domain_pricing, get_prepaid_balance, and 32 more. Their descriptions and schemas cost roughly 2,796 tokens of context every time the server is loaded.

Does the AiVikings.ai MCP server require authentication?

Yes. AiVikings.ai asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the AiVikings.ai MCP server still maintained?

AiVikings.ai is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.