Discovery tools

These three tools reach every operation in the OpusDNS API without putting a tool per endpoint in the model's context. Search the catalog, read the call details for the operation you picked, then call it.

A search that matches exactly one operation usually returns that operation's full call details inline, so describe_operation can be skipped. Operations with a very large request body are the exception — for those, and for any search with more than one match, call describe_operation on the id you picked.

search_operations

Search OpusDNS API operations — approval required: no

Search the OpusDNS API catalog. Returns compact entries (operationId, method, path, summary, safety), plus total (matches at the top relevance tier: total>count means results were capped, so refine the query). Read-only, no side effects. When exactly one operation matches, the response also carries detail with full call details, so you can call_operation directly without describe_operation; otherwise describe_operation the id you pick.

When to use it. Start here whenever you know what you want to do but not which endpoint does it. Search by intent ("renew a domain", "add a DNS record"), not by path.

Parameter Type Required Description
query string yes free-text query matched against operationId, path, summary, tags and description
limit integer no maximum number of results (default 25)

Unknown parameters are rejected.

  • Read-only: never changes anything in your account.
  • Repeating the same call has the same effect.
  • Answered from the server's built-in API catalog; makes no network call.

Example call.

{
  "query": "renew domain",
  "limit": 5
}

Example result.

{
  "count": 2,
  "total": 2,
  "results": [
    {
      "operationId": "renew_domain_v1_domains__domain_reference__renew_post",
      "method": "POST",
      "path": "/v1/domains/{domain_reference}/renew",
      "tags": [
        "domain"
      ],
      "summary": "Renew a domain",
      "safety": {
        "read": false,
        "write": true,
        "cost": true,
        "destructive": false
      }
    },
    {
      "operationId": "epp_check_domain_v1_domains_check_get",
      "method": "GET",
      "path": "/v1/domains/check",
      "tags": [
        "domain"
      ],
      "summary": "Check domain availability and registration metadata",
      "safety": {
        "read": true,
        "write": false,
        "cost": false,
        "destructive": false
      }
    }
  ]
}

describe_operation

Describe an OpusDNS API operation — approval required: no

Return full call details for one operation: method, path, parameters, request-body schema, safety flags, and whether confirmation is required before calling. An unknown operationId is answered with status "not_found" as a normal result, not an error — search_operations for the right id rather than retrying this one.

When to use it. Use it when a search returned several candidates and you need the parameters and request body of the one you picked. A single-match search already includes this, so you can skip it there.

Parameter Type Required Description
operationId string yes the operationId returned by search_operations

Unknown parameters are rejected.

  • Read-only: never changes anything in your account.
  • Repeating the same call has the same effect.
  • Answered from the server's built-in API catalog; makes no network call.

Example call.

{
  "operationId": "renew_domain_v1_domains__domain_reference__renew_post"
}

Example result.

{
  "operation": {
    "operationId": "renew_domain_v1_domains__domain_reference__renew_post",
    "method": "POST",
    "path": "/v1/domains/{domain_reference}/renew",
    "tags": [
      "domain"
    ],
    "summary": "Renew a domain",
    "description": "Extends the registration period of an existing domain.",
    "safety": {
      "read": false,
      "write": true,
      "cost": true,
      "destructive": false
    },
    "parameters": [
      {
        "name": "domain_reference",
        "in": "path",
        "required": true,
        "schema": {
          "title": "Domain Reference",
          "…": "a domain id or a domain name"
        }
      }
    ],
    "requestBody": {
      "required": true,
      "contentTypes": [
        "application/json"
      ],
      "schema": {
        "…": "the full request-body schema"
      }
    },
    "responseContentTypes": [
      "application/json"
    ]
  },
  "requiresConfirmation": true
}

call_operation

Call an OpusDNS API operation — approval required: depends on the operation

Call one OpusDNS operation. Path parameters go in pathParams, query parameters in query, and the JSON body in body — never interpolate a value into the operationId. Write/cost/destructive operations require explicit user approval before they run; clients that support elicitation are asked directly, others receive a confirmation_required payload to approve and retry with the confirmationToken, changing nothing else. For multi-domain mutations use the bulk_* tools instead of looping this tool.

When to use it. For one operation on one resource. For the same change across many domains, use bulk_preview and bulk_submit instead — looping this tool is slower, costs more context, and asks for a separate approval every time.

Parameter Type Required Description
operationId string yes the operationId to call
body any (JSON) no JSON request body for write operations
confirmationToken string no token from a prior confirmation_required response, echoed back to execute the approved action. Omit on the first call
organizationId string no act on this sub-organization instead of your own, e.g. organization_01h45ytscbebyvny4gc8cr8ma2. It must be a sub-organization of the signed-in account; find its id with the organizations list operation
pathParams object (any keys) no path parameter values keyed by name
query object (any keys) no query parameter values keyed by name

Unknown parameters are rejected.

  • Can modify or delete data, depending on what you call. Anything that is not a read requires your explicit approval first.
  • Repeating the call repeats the effect.
  • Calls the OpusDNS API.

Example call.

{
  "operationId": "renew_domain_v1_domains__domain_reference__renew_post",
  "pathParams": {
    "domain_reference": "acme-labs.com"
  },
  "body": {
    "period": {
      "unit": "y",
      "value": 1
    },
    "current_expiry_date": "2026-11-04T00:00:00Z"
  }
}

Example result.

{
  "status": "ok",
  "operationId": "renew_domain_v1_domains__domain_reference__renew_post",
  "httpStatus": 200,
  "headers": {
    "content-type": "application/json",
    "x-server-request-id": "8f3c2e10-1b4a-4c6b-9e77-2a91f5d0c4aa"
  },
  "data": {
    "…": "the updated domain"
  },
  "truncated": false
}