> ## 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.

# Overview

> Enable AI agents to search, register, and connect domains through Entri's MCP server.

## Overview

Model Context Protocol (MCP) is an open standard that gives AI agents a consistent, secure way to discover and use external tools and services. The **Entri MCP server** exposes Entri Connect and Sell products as MCP tools, allowing AI assistants to handle domain operations on behalf of your users entirely within the conversation.

**MCP Server URL:** `https://mcp.entri.com/mcp`

Depending on which Entri product and registrar are configured for your account, the MCP tools behave differently:

* **Entri Connect** — Returns a sharing link the user follows to connect an existing domain to your platform.
* **Entri Sell (IONOS / Squarespace / GoDaddy)** — Returns a sharing link the user follows to purchase a domain through the registrar's checkout.

***

## Authentication

Entri MCP uses **OAuth 2.0 machine-to-machine (M2M) authentication**, following the [MCP Authorization specification](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization) and the **client credentials grant** defined in [RFC 6749 §4.4](https://www.rfc-editor.org/rfc/rfc6749#section-4.4).

Your **Client ID** and **Client Secret** (available in the Dashboard) are used to obtain a short-lived access token from the OAuth Authentication URL. That token is then passed as a Bearer token on each MCP request.

**Token request:**

```http theme={"system"}
POST https://mcp.entri.com/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET
&userId=END_USER_ID
&geo=us
```

| Parameter       | Required | Description                                            |
| --------------- | -------- | ------------------------------------------------------ |
| `grant_type`    | Yes      | Must be `client_credentials`                           |
| `client_id`     | Yes      | Your Client ID from the Dashboard                      |
| `client_secret` | Yes      | Your Client Secret from the Dashboard                  |
| `userId`        | No       | ID of the end user on whose behalf the request is made |
| `geo`           | No       | Geographic region for the request (e.g. `us`, `fr`)    |

**Token response:**

```json theme={"system"}
{
  "access_token": "eyJ...",
  "token_type": "Bearer"
}
```

Use the returned `access_token` as a Bearer token on all MCP requests:

```
Authorization: Bearer {access_token}
```

<Note>
  MCP hosts using `mcp-remote` (VS Code, Cursor, etc.) can pass credentials directly as `Authorization: Bearer YOUR_CLIENT_ID:YOUR_CLIENT_SECRET` in the configuration JSON — no token exchange needed. For programmatic or server-side integrations, use the OAuth flow above.
</Note>

***

## Dashboard — MCP Settings

All MCP configuration is managed under **Dashboard → Application Settings → MCP Settings**.

### MCP Connection Credentials

These credentials are used to authenticate your MCP server with Entri. Find them under the **MCP Connection** section of MCP Settings.

| Field                        | Description                                                                        |
| ---------------------------- | ---------------------------------------------------------------------------------- |
| **Client ID**                | Your application identifier. Read-only, copyable.                                  |
| **Client Secret**            | Your secret key. Masked by default. Rotatable from Application Settings.           |
| **OAuth Authentication URL** | Token endpoint for obtaining short-lived access tokens (client credentials grant). |
| **MCP Server URL**           | The remote MCP server endpoint to configure in your MCP host.                      |

***

### Entri Connect Settings

Configure how the MCP retrieves DNS records and provider options for Connect domain flows. The `connect-domain` tool always returns a **sharing link** — this setting determines what configuration is pre-loaded when the user opens that link.

#### Configuration Source

<Tabs>
  <Tab title="Static Configuration">
    Use Static Configuration when every user needs the same DNS records. Provide a single Entri configuration that will be applied to all Connect flows.

    ```json theme={"system"}
    {
      "whiteLabel":{
        ...
      },
      "dnsRecords": [
        { "type": "A", "host": "@", "value": "93.184.216.34", "ttl": 300 }
      ],
      //... every other optional key
    }
    ```
  </Tab>

  <Tab title="Dynamic Endpoint">
    Use Dynamic Configuration when each user needs a unique set of DNS records. Provide an endpoint URL that Entri will call per-request to retrieve the full configuration.

    Entri authenticates requests to your endpoint using **Basic Authentication**. Provide the username and password in the fields below the URL.

    **Endpoint requirements:**

    * Must accept `GET` requests.
    * Must support Basic Authentication.
    * Entri will include `userId` as a query string parameter (e.g. `?userId=abc123`) so you can return a user-specific configuration.
    * Must return an Entri configuration object. Minimal example:

    ```json theme={"system"}
    {
      "applicationId": "your-application-id",
      "dnsRecords": [
        {
          "host": "@",
          "type": "TXT",
          "ttl": 300,
          "value": "this-is-a-sample-value"
        }
      ]
    }
    ```

    For the full configuration reference, see the [API Reference](/connect/configuration).
  </Tab>
</Tabs>

***

### Entri Sell Settings

Configure how the MCP retrieves DNS records and whitelabel options for Sell domain purchase flows. This applies when your account uses a **sharing registrar** (IONOS, Squarespace, or GoDaddy) — the purchase flow is presented to the user as a link.

#### Configuration Source

<Tabs>
  <Tab title="Static Configuration">
    Use Static Configuration when every user needs the same DNS records and branding. Provide a single Entri configuration applied to all Sell flows.

    ```json theme={"system"}
    {
      "whiteLabel":{
        ...
      },
      "dnsRecords": [
        { "type": "A", "host": "@", "value": "93.184.216.34", "ttl": 300 }
      ],
      //... every other optional key
    }
    ```
  </Tab>

  <Tab title="Dynamic Endpoint">
    Use Dynamic Configuration when each order requires a unique set of DNS records or custom branding. Provide an endpoint URL that Entri will call per-request.

    Entri authenticates requests to your endpoint using **Basic Authentication**. Provide the username and password in the fields below the URL.

    **Endpoint requirements:**

    * Must accept `GET` requests.
    * Must support Basic Authentication.
    * Entri will include `userId` as a query string parameter (e.g. `?userId=abc123`) so you can return a user-specific configuration.
    * Must return an Entri configuration object. Minimal example:

    ```json theme={"system"}
    {
      "applicationId": "your-application-id",
      "dnsRecords": [
        {
          "host": "@",
          "type": "TXT",
          "ttl": 300,
          "value": "this-is-a-sample-value"
        }
      ]
    }
    ```

    For the full configuration reference, see the [API Reference](/connect/configuration).
  </Tab>
</Tabs>

***

## How Each Product Works via MCP

The behavior of `create-domain-order` and `connect-domain` depends on which Entri product and registrar are configured for your account. The registrar is resolved automatically from your application settings in this order:

1. If `preferred_registrar` is `"ionos"`, `"squarespace"`, or `"godaddy"` → sharing registrar flow
2. Otherwise → no registrar configured; domain tools will return an error

### Entri Connect

The `connect-domain` tool generates a **sharing link** that the user must open to complete DNS configuration. Entri's guided flow walks the user through logging in to their DNS provider and applying the required records.

* The AI agent must present the link to the user and ask them to open it.
* DNS propagation status is tracked with `check-connection-status` using the returned `jobId`.
* The DNS records and provider options loaded in the flow are sourced from your **Entri Connect Settings** (Static or Dynamic).

### Entri Sell — IONOS / Squarespace / GoDaddy

When your account uses IONOS, Squarespace, or GoDaddy as the registrar, `create-domain-order` returns a **sharing link**. The user must follow the link to complete the purchase through the registrar's checkout.

* The AI agent must present the link and ask the user to complete the purchase.
* Order progress is tracked with `check-order-status` using the returned `jobId`.
* The DNS records and whitelabel configuration for the purchase flow come from your **Entri Sell Settings** (Static or Dynamic).

**Summary:**

| Product / Registrar                  | `create-domain-order` outcome       | User action required?                       |
| ------------------------------------ | ----------------------------------- | ------------------------------------------- |
| Sell — IONOS / Squarespace / GoDaddy | Returns a sharing link + `jobId`    | Yes — user completes checkout via the link  |
| Connect (`connect-domain`)           | Returns a DNS config link + `jobId` | Yes — user completes DNS setup via the link |

***

## MCP Tools

The Entri MCP server exposes 6 tools across the Connect and Sell products. For the full reference — including parameters, response shapes, and status values — see the [MCP Tool Reference](/entri-mcp-tools).
