> ## Documentation Index
> Fetch the complete documentation index at: https://developers.entri.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tool Reference

> Reference for all tools exposed by the Entri MCP server.

The Entri MCP server exposes the following tools. For feedback or to request additional tools, contact [support@entri.com](mailto:support@entri.com).

| Tool                          | Description                                                                                                        |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `search-domain-availability`  | Check if a domain is available for registration. Returns availability, price, and renewal price.                   |
| `generate-domain-suggestions` | Generate AI-powered domain name suggestions from keywords or a business description.                               |
| `create-domain-order`         | Register a domain or initiate a purchase flow. Behavior depends on the registrar configured for your account.      |
| `connect-domain`              | Generate a guided DNS configuration link for the user to connect an existing domain to your platform.              |
| `check-connection-status`     | Check DNS propagation and connection status using the `jobId` returned by `connect-domain`.                        |
| `check-order-status`          | Check the current status of a domain registration order using the `orderId` or `jobId` from `create-domain-order`. |

***

### Tool: search-domain-availability

Checks whether a domain is available for registration, along with its registration and renewal pricing.

**Example:**

```txt theme={null}
User: "Is startup.ai available?"
AI calls: search-domain-availability(domain: "startup.ai")
```

**Response (available):**

```json theme={null}
{
  "domain": "startup.ai",
  "available": true,
  "price": "$49.99/year",
  "renewalPrice": "$89.99/year",
  "message": "startup.ai is available!"
}
```

**Response (unavailable):**

```json theme={null}
{
  "domain": "startup.ai",
  "available": false,
  "message": "startup.ai is taken."
}
```

***

### Tool: generate-domain-suggestions

Generates AI-powered domain name suggestions based on keywords or a business description. Returns only available domains, sorted by relevance. Always returns a minimum of 5 suggestions. The top recommendation is marked with 🏆.

**Example:**

```txt theme={null}
User: "Suggest domains for my AI coding assistant startup"
AI calls: generate-domain-suggestions(keywords: "AI coding assistant startup", limit: 5)
```

**Response:**

```json theme={null}
{
  "keywords": "AI coding assistant startup",
  "suggestions": [
    {
      "domain": "🏆 codecopilot.shop",
      "price": "$12.99/year",
      "renewalPrice": "$24.99/year"
    },
    {
      "domain": "codecopilot.ai",
      "price": "$49.99/year",
      "renewalPrice": "$89.99/year"
    },
    {
      "domain": "aicode.dev",
      "price": "$29.99/year",
      "renewalPrice": "$39.99/year"
    }
  ],
  "count": 3,
  "message": "Display these domain suggestions in a table with columns: Domain, Price, Renewal Price. The first domain (marked with 🏆) is the recommended option."
}
```

***

### Tool: create-domain-order

Registers a domain or initiates a purchase flow. The response shape depends on which registrar is configured for your account — see [How Each Product Works via MCP](/entri-mcp#how-each-product-works-via-mcp).

**Example:**

```txt theme={null}
User: "Register startup.ai for me"
AI calls: create-domain-order(domain: "startup.ai")
```

**Response — Sell Enterprise (direct registration):**

```json theme={null}
{
  "success": true,
  "domain": "startup.ai",
  "orderId": "ORD-1707000000-abc123",
  "status": "pending",
  "message": "Order created for startup.ai. Use check-order-status with orderId \"ORD-1707000000-abc123\" to track registration progress."
}
```

**Response — Sharing registrar (IONOS / Squarespace):**

```json theme={null}
{
  "success": true,
  "domain": "startup.ai",
  "link": "https://connect.entri.com/sell-flow?token=abc123...",
  "jobId": "JOB-1707000000-abc123",
  "message": "Sharing purchase link for startup.ai — Present this link to the user and ask them to complete the purchase. Then use check-order-status with jobId \"JOB-1707000000-abc123\" to track progress."
}
```

**Response — Error:**

```json theme={null}
{
  "success": false,
  "domain": "startup.ai",
  "error": "HTTP 422",
  "message": "Contact details are required for this registration."
}
```

**Important notes:**

* For sharing registrars, the AI agent **must present the link** to the user and ask them to complete the purchase.
* For Sell Enterprise, contact details are sourced automatically when Lightning Mode is on. Do not ask the user for contact details upfront — always attempt registration with just the `domain` first.
* `dnsRecords` is not a parameter of this tool. DNS records are configured via your MCP Settings (Static or Dynamic) or returned by your Purchase Authorization endpoint.
* After a successful order, always poll `check-order-status` with the returned `orderId` or `jobId` until registration is complete.

| Registrar / Plan    | Response                     | Next step                                                         |
| ------------------- | ---------------------------- | ----------------------------------------------------------------- |
| Sell Enterprise     | Returns `orderId` + `status` | Poll `check-order-status` with `orderId`                          |
| IONOS / Squarespace | Returns `link` + `jobId`     | Present link to user, then poll `check-order-status` with `jobId` |

***

### Tool: connect-domain

Generates a guided DNS configuration link for an existing domain. The user must open this link to complete the DNS setup through Entri's connection flow.

**Example:**

```txt theme={null}
User: "Connect startup.ai to my project"
AI calls: connect-domain(domain: "startup.ai")
```

**Response (success):**

```json theme={null}
{
  "success": true,
  "domain": "startup.ai",
  "link": "https://connect.entri.com/flow?token=abc123...",
  "jobId": "JOB-1707000000-abc123",
  "message": "Connect flow link for startup.ai: https://connect.entri.com/flow?token=abc123..."
}
```

**Response (error):**

```json theme={null}
{
  "success": false,
  "domain": "startup.ai",
  "error": "HTTP 404",
  "message": "The domain startup.ai could not be found in your account."
}
```

**Important notes:**

* The AI agent **must present the returned `link`** to the user and ask them to open it. The DNS setup is completed by the user in Entri's flow — the agent cannot complete it on their behalf.
* After the user opens the link, use `check-connection-status` with the returned `jobId` to monitor DNS propagation.
* DNS propagation can take up to 48 hours in rare cases.

***

### Tool: check-connection-status

Retrieves the current DNS propagation and connection status for a domain. Use it after `connect-domain` to verify whether DNS records have fully propagated.

**Example:**

```txt theme={null}
User: "Is startup.ai fully connected yet?"
AI calls: check-connection-status(jobId: "JOB-1707000000-abc123")
```

**Response (connected):**

```json theme={null}
{
  "jobId": "JOB-1707000000-abc123",
  "connected": true,
  "status": "completed",
  "domain": "startup.ai",
  "message": "DNS configuration complete! Domain startup.ai is now connected."
}
```

**Response (in progress):**

```json theme={null}
{
  "jobId": "JOB-1707000000-abc123",
  "connected": false,
  "status": "pending",
  "domain": "startup.ai",
  "message": "Connection JOB-1707000000-abc123 is still in progress (status: pending). Check again shortly."
}
```

**Response (failed):**

```json theme={null}
{
  "jobId": "JOB-1707000000-abc123",
  "connected": false,
  "status": "failed",
  "message": "Connection JOB-1707000000-abc123 has failed with status: failed."
}
```

**Status values:**

| Status      | Meaning                             |
| ----------- | ----------------------------------- |
| `pending`   | User hasn't completed the flow yet  |
| `completed` | DNS fully propagated and connected  |
| `failed`    | Connection failed                   |
| `error`     | Unexpected error                    |
| `expired`   | The connect link expired before use |

***

### Tool: check-order-status

Retrieves the current processing status of a domain registration order. Use it after `create-domain-order` to track progress.

**Example:**

```txt theme={null}
User: "What's the status of my domain registration?"
AI calls: check-order-status(orderId: "ORD-1707000000-abc123")
```

**Response — Sell Enterprise (registered):**

```json theme={null}
{
  "orderId": "ORD-1707000000-abc123",
  "status": "registered",
  "message": "Domain registration complete! Order ORD-1707000000-abc123 is now registered."
}
```

**Response — Sharing registrar (completed):**

```json theme={null}
{
  "orderId": "JOB-1707000000-abc123",
  "status": "completed",
  "domains": [
    { "domain": "startup.ai", "status": "registered" }
  ],
  "message": "Order JOB-1707000000-abc123 is complete."
}
```

**Response (in progress):**

```json theme={null}
{
  "orderId": "ORD-1707000000-abc123",
  "status": "pending",
  "message": "Order ORD-1707000000-abc123 is still in progress (status: pending). Check again shortly."
}
```

**Response (failed):**

```json theme={null}
{
  "orderId": "ORD-1707000000-abc123",
  "status": "failed",
  "message": "Order ORD-1707000000-abc123 has failed with status: failed."
}
```

**Status values:**

| Status                     | Meaning                                                    |
| -------------------------- | ---------------------------------------------------------- |
| `pending`                  | Registration queued, not yet processed                     |
| `registration_in_progress` | Actively being processed (Sell Enterprise)                 |
| `in_progress`              | Actively being processed (IONOS / Squarespace)             |
| `registered`               | Domain successfully registered (Sell Enterprise)           |
| `completed`                | Purchase completed (IONOS / Squarespace)                   |
| `failed`                   | Registration failed                                        |
| `cancelled`                | Order was cancelled                                        |
| `rejected`                 | Registration was rejected                                  |
| `error`                    | Unexpected error occurred                                  |
| `expired`                  | Sharing link expired before use (IONOS / Squarespace only) |
