Horizontal

WorksCode and development

AiVikings.ai

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

Addresshttps://mcp.aivikings.ai/mcp
Claude Codeclaude mcp add --transport http registrar https://mcp.aivikings.ai/mcp
For Cursor and other clients
{
  "mcpServers": {
    "registrar": {
      "type": "http",
      "url": "https://mcp.aivikings.ai/mcp"
    }
  }
}

Watch out

Has tools that change things: 10 of them

The server itself marks these tools as deleting or overwriting data (destructiveHint): have the agent ask you before it calls them.

Test
Works: Handshake succeeded
Tools
37 tools
Handshake
1.9 s
Transport
streamable-http · 2025-06-18
Tested
6 November 2026
Registry name
ai.aivikings/registrar v1.0.3
Listed
24 October 2026
Updated
24 October 2026
Website
aivikings.ai
Source
github.com/AIvikings/aivikings-mcp
The last 1 tests
WhenResultTime
2026-11-06 12:09 UTCHandshake succeeded1.9 s

The 37 tools it listed

"Read only" and "Changes data" are the server's own marks. Underlined parameters are required.

  1. add_dns_record

    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.

    domain record_name record_type record_value record_ttl record_priority record_port record_weight

  2. assign_domain_registration_contact_roles

    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.

    contact_handle assign_registrant assign_admin assign_technical assign_billing

  3. check_domain_availabilityRead only

    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.

    domains include_price currency

  4. configure_dns_recordChanges data

    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.

    domain record_value record_name

  5. create_contact

    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.

    name email address city state country postal_code phone_country_code phone_number handle organization address_line_2 default_registrant default_admin default_technical default_billing

  6. delete_dns_recordChanges data

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

    domain dns_zone_record_id

  7. domain_transfer

    Transfer a domain in through AIvikings.

    domain auth_code period_years

  8. get_contactRead only

    Get one reusable contact by its handle.

    contact_handle

  9. get_current_userRead only

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

  10. get_customerRead only

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

    customer_id

  11. get_domain_audit_logRead only

    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.

    domain action from_timestamp to_timestamp cursor limit

  12. get_domain_pricingRead only

    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.

    domain currency

  13. get_domain_statusRead only

    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.

    domain

  14. get_prepaid_balanceRead only

    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.

    currency

  15. get_transfer_auth_codeRead only

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

    domain

  16. list_contact_countriesRead only

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

  17. list_contact_statesRead only

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

    country

  18. list_contactsRead only

    List reusable contacts belonging to the authenticated customer.

  19. list_dns_recordsRead only

    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.

    domain

  20. list_domain_registration_contactsRead only

    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.

  21. list_domainsRead only

    List domains recorded in the local registrar datastore.

  22. lock_domainChanges data

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

    domain

  23. middleware_get_capabilitiesRead only

    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.

    account_id

  24. middleware_get_contactRead only

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

    contact_id

  25. middleware_get_domainRead only

    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.

    domain_id

  26. middleware_get_transactionRead only

    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.

    transaction_id

  27. middleware_get_transaction_secretRead only

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

    transaction_id

  28. middleware_list_transactionsRead only

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

    cursor limit domain account_id

  29. middleware_submit_transactionChanges data

    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.

    action input idempotency_key domain_id account_id

  30. regenerate_transfer_auth_codeChanges data

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

    domain

  31. register_domain

    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.

    domain period_years nameservers currency contact_handle allow_premium

  32. remove_domain_registration_contact_rolesChanges data

    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.

    contact_handle remove_registrant remove_admin remove_technical remove_billing

  33. renew_domain

    Renew a domain through AIvikings.

    domain period_years

  34. unlock_domainChanges data

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

    domain

  35. update_dns_recordChanges data

    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.

    domain dns_zone_record_id record_name record_type record_value record_ttl record_priority record_port record_weight

  36. update_nameserversChanges data

    Replace a domain's nameservers through AIvikings.

    domain nameservers

  37. update_registrant_contactChanges data

    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.

    domain contact_handle name organization email address city state country postal_code phone_country_code phone_number acknowledge_transfer_lock

Is this yours?

Claim it to hear the moment it breaks, correct this page and add your own ways to use it.

A test is the handshake and the tool list: no tool was called. Names and descriptions are as listed by whoever registered the server; we haven't checked them.

Back to Tested MCP Servers