WorksCode and development
AiVikings.ai
Find, register, and manage domains from any AI chat or agent
https://mcp.aivikings.ai/mcpclaude mcp add --transport http registrar https://mcp.aivikings.ai/mcpFor 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/registrarv1.0.3- Listed
- 24 October 2026
- Updated
- 24 October 2026
- Website
- aivikings.ai
The last 1 tests
| When | Result | Time |
|---|---|---|
| 2026-11-06 12:09 UTC | Handshake succeeded | 1.9 s |
The 37 tools it listed
"Read only" and "Changes data" are the server's own marks. Underlined parameters are required.
add_dns_recordAdd 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.
domainrecord_namerecord_typerecord_valuerecord_ttlrecord_priorityrecord_portrecord_weightassign_domain_registration_contact_rolesAssign 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_handleassign_registrantassign_adminassign_technicalassign_billingcheck_domain_availabilityRead onlyCheck 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.
domainsinclude_pricecurrencyconfigure_dns_recordChanges dataConfigure 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.
domainrecord_valuerecord_namecreate_contactCreate 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.
nameemailaddresscitystatecountrypostal_codephone_country_codephone_numberhandleorganizationaddress_line_2default_registrantdefault_admindefault_technicaldefault_billingdelete_dns_recordChanges dataPermanently delete a managed DNS record. Call list_dns_records first and pass the exact DNS zone record ID returned by the provider.
domaindns_zone_record_iddomain_transferTransfer a domain in through AIvikings.
domainauth_codeperiod_yearsget_contactRead onlyGet one reusable contact by its handle.
contact_handleget_current_userRead onlyReturn the authenticated AIvikings customer for the current bearer API key, including name and email when the key belongs to a customer.
get_customerRead onlyGet the customer record linked to the current bearer token. A supplied customer ID must match that token.
customer_idget_domain_audit_logRead onlyRead 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.
domainactionfrom_timestampto_timestampcursorlimitget_domain_pricingRead onlyGet 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.
domaincurrencyget_domain_statusRead onlyFetch 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.
domainget_prepaid_balanceRead onlyReturn 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.
currencyget_transfer_auth_codeRead onlyReturn the EPP transfer auth code for a domain owned by the authenticated customer. The secret is fetched only on demand.
domainlist_contact_countriesRead onlyList exact ConnectReseller country names and IDs for creating or updating contacts.
list_contact_statesRead onlyList exact ConnectReseller state names for a country name, country ID, or ISO code. Use the returned name in contact requests.
countrylist_contactsRead onlyList reusable contacts belonging to the authenticated customer.
list_dns_recordsRead onlyList 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.
domainlist_domain_registration_contactsRead onlyList 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.
list_domainsRead onlyList domains recorded in the local registrar datastore.
lock_domainChanges dataEnable the registrar transfer lock for a domain owned by the authenticated customer.
domainmiddleware_get_capabilitiesRead onlyMiddleware 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_idmiddleware_get_contactRead onlyMiddleware admin only: read a local middleware contact by contact_id.
contact_idmiddleware_get_domainRead onlyMiddleware 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_idmiddleware_get_transactionRead onlyMiddleware 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_idmiddleware_get_transaction_secretRead onlyMiddleware admin only: read a protected transaction secret through the middleware API. Requires the upstream secret-read scope and is audited.
transaction_idmiddleware_list_transactionsRead onlyMiddleware admin only: list persisted middleware transactions for the selected middleware account, optionally filtered by domain. Pass nextCursor as cursor for the next page.
cursorlimitdomainaccount_idmiddleware_submit_transactionChanges dataMiddleware 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.
actioninputidempotency_keydomain_idaccount_idregenerate_transfer_auth_codeChanges dataRegenerate and return a new EPP transfer auth code for a domain owned by the authenticated customer, invalidating the old code.
domainregister_domainRegister 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.
domainperiod_yearsnameserverscurrencycontact_handleallow_premiumremove_domain_registration_contact_rolesChanges dataRemove 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_handleremove_registrantremove_adminremove_technicalremove_billingrenew_domainRenew a domain through AIvikings.
domainperiod_yearsunlock_domainChanges dataDisable the registrar transfer lock for a domain owned by the authenticated customer before a transfer-out.
domainupdate_dns_recordChanges dataReplace 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.
domaindns_zone_record_idrecord_namerecord_typerecord_valuerecord_ttlrecord_priorityrecord_portrecord_weightupdate_nameserversChanges dataReplace a domain's nameservers through AIvikings.
domainnameserversupdate_registrant_contactChanges dataUpdate 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.
domaincontact_handlenameorganizationemailaddresscitystatecountrypostal_codephone_country_codephone_numberacknowledge_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.