# AiVikings.ai (ai.aivikings/registrar): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/ai.aivikings%2Fregistrar/versions/latest)
- Connected to: https://mcp.aivikings.ai/mcp
- Homepage: https://aivikings.ai/
- Repository: https://github.com/AIvikings/aivikings-mcp
- Scoring rules: v2
- Tools: 37
- Average: 44.3 / 100 (Cloudy)
- Near-identical pairs: 2

This page shows how AiVikings.ai (ai.aivikings/registrar)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: 37 tools. Above 25, models start to tell tools apart less well.

## Tools

- `domain_transfer`: 24 / 100
  - Major: The description only restates the name (6 words).
  - Major: The description is too short (6 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain, auth_code, period_years.
  - Minor: String arguments with no constraint or example: domain, auth_code.
- `get_contact`: 24 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: contact_handle.
  - Minor: String arguments with no constraint or example: contact_handle.
- `renew_domain`: 24 / 100
  - Major: The description only restates the name (5 words).
  - Major: The description is too short (5 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain, period_years.
  - Minor: String arguments with no constraint or example: domain.
- `update_nameservers`: 24 / 100
  - Major: The description only restates the name (7 words).
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain, nameservers.
  - Minor: String arguments with no constraint or example: domain.
- `middleware_get_contact`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: contact_id.
  - Minor: String arguments with no constraint or example: contact_id.
  - Minor: Required identifiers whose description does not say where the value comes from: contact_id. Name the tool or the place that returns it, or models look it up first.
- `delete_dns_record`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain, dns_zone_record_id.
  - Minor: String arguments with no constraint or example: domain, dns_zone_record_id.
- `middleware_get_domain`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain_id.
  - Minor: String arguments with no constraint or example: domain_id.
  - Minor: Required identifiers whose description does not say where the value comes from: domain_id. Name the tool or the place that returns it, or models look it up first.
- `middleware_list_transactions`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: cursor, limit, domain, account_id.
  - Minor: No `required` list, so every argument is optional.
- `list_contact_states`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: country.
  - Minor: String arguments with no constraint or example: country.
- `middleware_get_transaction_secret`: 37 / 100
  - Major: Arguments without a description: transaction_id.
  - Minor: String arguments with no constraint or example: transaction_id.
  - Minor: Required identifiers whose description does not say where the value comes from: transaction_id. Name the tool or the place that returns it, or models look it up first.
- `lock_domain`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain.
  - Minor: String arguments with no constraint or example: domain.
- `remove_domain_registration_contact_roles`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: contact_handle, remove_registrant, remove_admin, remove_technical, remove_billing.
  - Minor: String arguments with no constraint or example: contact_handle.
  - Minor: The meaning of the boolean argument remove_registrant is unclear.
  - Minor: The meaning of the boolean argument remove_admin is unclear.
  - Minor: The meaning of the boolean argument remove_technical is unclear.
  - Minor: The meaning of the boolean argument remove_billing is unclear.
- `unlock_domain`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain.
  - Minor: String arguments with no constraint or example: domain.
- `update_dns_record`: 40 / 100
  - Major: Arguments without a description: domain, dns_zone_record_id, record_name, record_type, record_value, record_ttl, record_priority, record_port, record_weight.
  - Minor: String arguments with no constraint or example: domain, dns_zone_record_id, record_name, record_type, record_value.
  - Minor: The description mentions none of its 3 or more arguments.
- `get_customer`: 42 / 100
  - Major: Arguments without a description: customer_id.
  - Minor: No `required` list, so every argument is optional.
- `middleware_get_capabilities`: 42 / 100
  - Major: Arguments without a description: account_id.
  - Minor: No `required` list, so every argument is optional.
- `regenerate_transfer_auth_code`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain.
  - Minor: String arguments with no constraint or example: domain.
- `create_contact`: 43 / 100
  - Major: Arguments without a description: 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.
  - Minor: String arguments with no constraint or example: name, email, address, city, state, country, postal_code, phone_country_code, phone_number.
  - Minor: The meaning of the boolean argument default_registrant is unclear.
  - Minor: The meaning of the boolean argument default_admin is unclear.
  - Minor: The meaning of the boolean argument default_technical is unclear.
  - Minor: The meaning of the boolean argument default_billing is unclear.
- `get_domain_status`: 43 / 100
  - Major: Arguments without a description: domain.
  - Minor: String arguments with no constraint or example: domain.
- `get_transfer_auth_code`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain.
  - Minor: String arguments with no constraint or example: domain.
- `list_dns_records`: 46 / 100
  - Major: Arguments without a description: domain.
  - Minor: String arguments with no constraint or example: domain.
- `list_domains`: 46 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
- `update_registrant_contact`: 46 / 100
  - Major: Arguments without a description: domain, contact_handle, name, organization, email, address, city, state, country, postal_code, phone_country_code, phone_number, acknowledge_transfer_lock.
  - Minor: String arguments with no constraint or example: domain.
  - Minor: The meaning of the boolean argument acknowledge_transfer_lock is unclear.
- `assign_domain_registration_contact_roles`: 48 / 100
  - Major: Arguments without a description: contact_handle, assign_registrant, assign_admin, assign_technical, assign_billing.
  - Minor: String arguments with no constraint or example: contact_handle.
  - Minor: The meaning of the boolean argument assign_registrant is unclear.
  - Minor: The meaning of the boolean argument assign_admin is unclear.
  - Minor: The meaning of the boolean argument assign_technical is unclear.
  - Minor: The meaning of the boolean argument assign_billing is unclear.
- `configure_dns_record`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: domain, record_value, record_name.
  - Minor: String arguments with no constraint or example: domain, record_value.
- `list_contacts`: 49 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
- `add_dns_record`: 51 / 100
  - Major: Arguments without a description: domain, record_name, record_type, record_value, record_ttl, record_priority, record_port, record_weight.
  - Minor: String arguments with no constraint or example: domain, record_name, record_type, record_value.
- `register_domain`: 51 / 100
  - Major: Arguments without a description: domain, period_years, nameservers, currency, contact_handle, allow_premium.
  - Minor: String arguments with no constraint or example: domain.
  - Minor: The meaning of the boolean argument allow_premium is unclear.
- `get_prepaid_balance`: 55 / 100
  - Major: Arguments without a description: currency.
  - Minor: No `required` list, so every argument is optional.
- `middleware_get_transaction`: 55 / 100
  - Major: Arguments without a description: transaction_id.
  - Minor: String arguments with no constraint or example: transaction_id.
  - Minor: Required identifiers whose description does not say where the value comes from: transaction_id. Name the tool or the place that returns it, or models look it up first.
- `list_contact_countries`: 57 / 100
  - Major: Says nothing about when to use it, or when not to.
- `get_domain_audit_log`: 58 / 100
  - Major: Arguments without a description: domain, action, from_timestamp, to_timestamp, cursor, limit.
  - Minor: No `required` list, so every argument is optional.
- `get_domain_pricing`: 58 / 100
  - Major: Arguments without a description: domain, currency.
  - Minor: String arguments with no constraint or example: domain.
- `middleware_submit_transaction`: 58 / 100
  - Major: Arguments without a description: action, input, idempotency_key, domain_id, account_id.
  - Minor: String arguments with no constraint or example: action, idempotency_key.
- `check_domain_availability`: 60 / 100
  - Major: Arguments without a description: domains, include_price, currency.
  - Minor: The meaning of the boolean argument include_price is unclear.
- `get_current_user`: 72 / 100
- `list_domain_registration_contacts`: 75 / 100

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
