# MCP server

The DMARCwise MCP server lets AI applications securely access your domains, reporting data, and monitoring status through the [Model Context Protocol](https://modelcontextprotocol.io/).

The server is available at:

```text
https://mcp.dmarcwise.io/mcp
```

The MCP server supports both read and write operations. Write access is optional and must be explicitly approved when connecting an application, allowing it to change supported settings.

![Example conversation with Claude using the DMARCwise MCP server]($docs/images/mcp.png)

<DocsInfoBlock title="Availability">

- MCP access is included with all paid plans. It is not available in the free plan.

</DocsInfoBlock>

<DocsInfoBlock title="Permissions">

- **Owners**, **Admins**, **Members**, and **Viewers** can connect an MCP application to their organization.
- Your organization role determines which OAuth scopes you can grant to an MCP application: **Owners**, **Admins**, and **Members** can grant read and write access, while **Viewers** can grant read-only access.
- **Owners** and **Admins** can view and revoke MCP connections for their organization.

</DocsInfoBlock>

## Connecting an application

The DMARCwise MCP supports **any AI application** that can connect to **remote MCP servers** and authenticate through **OAuth** credentials.

You don't need to create API keys to connect to the MCP server: the AI client will open a consent screen in your browser where you can securely approve the connection.

<DocsAccordion>
<DocsAccordionItem title="ChatGPT desktop app">

1. In the ChatGPT app, open **Settings → Plugins**.
2. Click the <DocsButton>Add</DocsButton> button and then <DocsButton>Add MCP server</DocsButton>.
3. Enter **DMARCwise** as the MCP server name.
4. For **Type**, choose **Streamable HTTP** and enter `https://mcp.dmarcwise.io/mcp` as the **URL**.
5. Click <DocsButton>Save</DocsButton>.
6. Once the MCP server is successfully added, you will see an <DocsButton>Authenticate</DocsButton> button. Click on it and follow the browser instructions to approve access.
7. Start a new conversation in **Work** or **Codex** mode and DMARCwise tools will be available.

The added MCP server will also be available in the Codex CLI.

See [OpenAI's documentation](https://learn.chatgpt.com/docs/extend/mcp?surface=app) for more information.

</DocsAccordionItem>

<DocsAccordionItem title="Claude desktop app">

1. In Claude Desktop, open **Settings → Connectors**.
2. Click the <DocsButton>Add</DocsButton> button and choose **Add custom connector**.
3. Enter **DMARCwise** as the name.
4. Enter `https://mcp.dmarcwise.io/mcp` as the **Remote MCP server URL**. Leave the advanced OAuth fields empty.
5. Click **Add**, then **Connect** and follow the browser instructions to approve access.
6. DMARCwise tools will be available by default in any conversation.

For Team and Enterprise accounts, an organization owner may need to add the connector before members can connect it. See [Anthropic's custom connector guide](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp) for more information.

</DocsAccordionItem>

<DocsAccordionItem title="Codex CLI">

Run:

```
codex mcp add --url https://mcp.dmarcwise.io/mcp dmarcwise
```

The added MCP servers will also be available in the ChatGPT/Codex desktop app.

See [OpenAI's documentation](https://learn.chatgpt.com/docs/extend/mcp?surface=cli) for more information.

</DocsAccordionItem>

<DocsAccordionItem title="Claude Code CLI">

Run:

```
claude mcp add --transport http dmarcwise https://mcp.dmarcwise.io/mcp
```

See [Anthropic's documentation](https://code.claude.com/docs/en/mcp-quickstart) for more information.

</DocsAccordionItem>

<DocsAccordionItem title="Microsoft Copilot Studio">

Follow the [official Microsoft instructions](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-existing-server-to-agent). When asked, enter the following information:

- **Server name**: DMARCwise
- **Server URL**: `https://mcp.dmarcwise.io/mcp`
- **Authentication**: OAuth 2.0 with Dynamic discovery

</DocsAccordionItem>

</DocsAccordion>

### Consent screen

The consent screen lets you choose whether you want to also allow write permission to make changes to your domains and configuration:

![Consent screen showing the application name, organization name, and a list of access requested options, namely read and write]($docs/images/mcp-connect.png)

## Available tools

The MCP server exposes the following tools:

**Domains**

- `list_domains`: list monitored domains with their current status.
- `get_domain`: inspect the configuration, monitoring status, and recent activity of one domain.

**DMARC**

- `get_dmarc_stats`: summarize message volume and authentication results over time.
- `list_dmarc_sources`: identify services sending email for a domain.
- `list_dmarc_report_rows`: inspect detailed authentication evidence from aggregate reports.
- `list_dmarc_records`: review the history of a domain's published DMARC records.

**Hosted DMARC**

- `get_hosted_dmarc`: inspect the complete hosted DMARC configuration for a domain.
- `enable_hosted_dmarc`: enable hosted DMARC by importing the domain's current configuration and return the CNAME target to publish.
- `update_hosted_dmarc`: update selected settings in a hosted DMARC configuration, including policies, reporting URIs, and alignment modes.
- `disable_hosted_dmarc`: disable hosted DMARC.

**SPF and DKIM**

- `get_spf_chain`: inspect the current SPF resolution chain and diagnose lookup problems.
- `list_spf_records`: review the history of a domain's published SPF record.
- `list_dkim_selectors`: inspect observed DKIM selectors and their DNS and key status.

## Example prompts

- Which of my domains currently have DMARC or SPF problems?
- Summarize DMARC performance for `example.com` over the last 30 days.
- Which sources are sending DMARC-failing email for `example.com`?
- Explain the SPF resolution chain for `example.com` and identify any lookup-limit problems.
- Show active DKIM selectors for `example.com` whose DNS records are missing or invalid.
- Change the hosted DMARC policy for `example.com` to `quarantine`.

## Managing connections

You can review connected applications in the DMARCwise dashboard from **Settings → MCP connections**.

The page shows which application and user created each connection, when it was created, and when it was last used.

Revoking a connection immediately prevents the application from accessing DMARCwise. To use it again, the user must start a new connection from the application.

## Technical details

For interoperability purposes, we publish some technical details on the specifications supported by DMARCwise:

- The DMARCwise MCP uses the stateless **Streamable HTTP** transport.
- Both the `2026-11-25` and `2026-07-28` MCP specifications are supported.
- Both **Client ID Metadata Documents (CIMD)** and the legacy **Dynamic Client Registration (DCR)** are supported as methods for clients to identify themselves.
- Refresh tokens are issued to clients that declare support for them.
