Connect DMARKOFF to Your AI Assistant — MCP Setup Guide

Connecting DMARKOFF MCP to AI Assistants

MCP Endpoint: https://mcp.dmarkoff.com/mcp
You will need: an API key from your DMARKOFF account at app.dmarkoff.com/account/mcp

Prerequisite: You must have an active DMARKOFF account with at least one project. Projects are created in the web app. The AI assistant queries live data from your account (domains, DMARC reports, and analytics that are already collected by DMARKOFF) and can add domains to a project you own and record your decisions on its sending sources.



What you get

25 tools over your live account data: domain health, SPF and DKIM records with the fix for each finding, compliance and daily timelines, sending sources down to individual reports, anomaly reports, record history, DMARKOFF's readiness plan for quarantine and reject, recording your decisions on sending sources, adding domains, and live DNS lookups for any domain.
 
Full reference → https://github.com/dmarcoff/mcp/blob/main/docs/tools.md



What's new

Latest release: 1.5.0. It adds report coverage (whether a period falls before a domain's first report or after its last one), individual reports with each reporter's usual delay, a check that a published record sends reports to your project, a repeatable add_domain, and the list of changes generate_dmarc_record makes to a record. Changelog → https://github.com/dmarcoff/mcp/blob/main/CHANGELOG.md



Claude.ai (web and mobile)

Claude.ai supports remote MCP servers through its Connectors interface. Available on Free (1 custom connector only), Pro, Max, Team, and Enterprise plans.

  1. Go to Settings → Connectors.

  2. Click Add custom connector (on Team/Enterprise plans this must be done by an Owner or Primary Owner).

  3. Enter the remote MCP server URL: https://mcp.dmarkoff.com/mcp

  4. Click Advanced settings and fill in:

    • OAuth Client ID: enter any value (e.g. claude)
    • OAuth Client Secret: enter your DMARKOFF API key
  5. Click Add, then Connect to complete authorization.

  6. The integration will appear in your active connectors list. Start a new chat and ask: "Show me my projects".
    The server implements OAuth 2.1 (RFC 8414, RFC 9728). Claude.ai automatically discovers the authorization endpoints via /.well-known/oauth-authorization-server.



Claude Desktop

Claude Desktop supports remote MCP servers in two ways: through the built-in Connectors UI and through a configuration file.

Option 1: Via the Connectors UI (recommended)

  1. In the chat window, click the + button, then select Connectors → Manage Connectors.
  2. Click Add custom connector and paste the URL: https://mcp.dmarkoff.com/mcp
  3. Complete the OAuth authorization flow (same as Claude.ai).

Option 2: Via the configuration file

  1. Open the Claude Desktop config file:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the following entry:
{ "mcpServers": { "dmarkoff": { "command": "npx", "args": [ "mcp-remote", "https://mcp.dmarkoff.com/mcp", "--header", "Authorization: Bearer YOUR_API_KEY" ] } } }

Note: For remote servers with header-based authentication, Claude Desktop requires the mcp-remote proxy utility (Node.js v18+ must be installed).

  1. Completely quit and restart Claude Desktop. The connectors icon with DMARKOFF tools will appear in the chat panel.


Claude Code (CLI)

Claude Code supports adding MCP servers directly from the command line.

claude mcp add --transport http dmarkoff https://mcp.dmarkoff.com/mcp \ --header "Authorization: Bearer YOUR_API_KEY"

If you have already connected DMARKOFF via Claude.ai (Settings → Connectors), the server will be automatically available in Claude Code as well, with no additional setup.

To verify connected servers: claude mcp list



Cursor

Cursor supports MCP servers through the IDE settings and configuration files. Streamable HTTP transport is supported.

Option 1: Via Settings UI

  1. Open Cursor Settings → Tools & MCP.
  2. Click Add new MCP server.
  3. Select type Streamable HTTP and fill in:
    • Name: DMARKOFF
    • URL: https://mcp.dmarkoff.com/mcp
  4. Click Save.

Option 2: Via config file

  1. Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (project root):
{ "mcpServers": { "dmarkoff": { "url": "https://mcp.dmarkoff.com/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }
  1. Restart Cursor. Tools will be available in Agent mode (Cmd+I → Agent).

Example prompt in Cursor:

@dmarkoff Show all Critical domains in project 12345


ChatGPT

ChatGPT supports MCP servers through Apps (formerly called "Connectors"). Full MCP support (including write operations) is available on Business, Enterprise, and Edu plans via Developer Mode.

Business / Enterprise / Edu plans

  1. Enable Developer Mode: Workspace Settings → Permissions & Roles → Developer Mode.
  2. Go to Settings → Apps → Create App (or configure via Workspace Settings → Apps).
  3. Set the connection parameters:
    • MCP Server URL: https://mcp.dmarkoff.com/mcp
    • Authentication: OAuth, without a client ID or secret. ChatGPT registers its own OAuth client with the server.
  4. Click Connect: ChatGPT opens a DMARKOFF page where you paste your API key.
  5. Publish the App for your workspace.
  6. Start a chat, select the App from the list, and ask a question.

Plus / Pro plans
Plus and Pro plans can use the same setup through Developer Mode (beta). Check the latest status in the OpenAI documentation.



Windsurf (Codeium)

Windsurf supports MCP through its Cascade AI agent. Supported transports: stdio, Streamable HTTP, and SSE.

Option 1: Via MCP Marketplace

  1. Click the MCPs icon in the top-right corner of the Cascade panel.
  2. If DMARKOFF is available in the catalog, install it with one click. Otherwise, click Configure for manual setup.

Option 2: Via config file

  1. Open the configuration file:
    • macOS/Linux: ~/.codeium/windsurf/mcp_config.json
    • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
    • Create the file if it does not exist.
  2. Add the following configuration:
{ "mcpServers": { "dmarkoff": { "serverUrl": "https://mcp.dmarkoff.com/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }

Important: Windsurf uses the serverUrl key (not url) for remote HTTP servers. Environment variable interpolation is also supported: "Authorization": "Bearer ${env:DMARKOFF_API_KEY}".

  1. Restart Windsurf. Tools will appear in the Cascade panel.


Continue.dev

Continue.dev supports MCP servers via YAML configuration. MCP only works in Agent Mode.

Option 1: Standalone MCP server file

  1. Create a .continue/mcpServers/ folder in your workspace root (if it doesn't exist).
  2. Add a file called dmarkoff.yaml:
name: DMARKOFF MCP Server version: 0.0.1 schema: v1 mcpServers: - name: DMARKOFF type: streamable-http url: https://mcp.dmarkoff.com/mcp headers: Authorization: Bearer YOUR_API_KEY

Option 2: Via the main config.yaml

  1. Add to your config.yaml (or .continue/config.yaml):
mcpServers: - name: DMARKOFF type: streamable-http url: https://mcp.dmarkoff.com/mcp headers: Authorization: Bearer YOUR_API_KEY

Note: Continue.dev also supports JSON configuration. If you already have a config from Claude Desktop or Cursor, simply copy your JSON file into .continue/mcpServers/, and Continue will pick it up automatically.
2. Switch to Agent Mode in the Continue interface and start working.



Any MCP-compatible client

If your client supports MCP Streamable HTTP, use the following parameters:

ParameterValue
TransportStreamable HTTP
URLhttps://mcp.dmarkoff.com/mcp
Auth headerAuthorization: Bearer YOUR_API_KEY
OAuth Issuerhttps://mcp.dmarkoff.com
Authorize URLhttps://mcp.dmarkoff.com/oauth/authorize
Token URLhttps://mcp.dmarkoff.com/oauth/token
Scope-

OAuth auto-discovery endpoints:

  • GET https://mcp.dmarkoff.com/.well-known/oauth-authorization-server
  • GET https://mcp.dmarkoff.com/.well-known/oauth-protected-resource

This server is also listed in the official MCP Registry as com.dmarkoff/mcp. If your client supports installing from the registry, you can add it there instead of manually entering the URL.



First prompts to try

Once connected, start with these:

Show me an overview of all my DMARC projects

Which domains have Critical severity right now?

Check domain example.com: what's wrong with it?

Are there any anomalies in email traffic over the last 24 hours?

Why is SPF failing on domain.com? Which senders are the problem?

We publish p=reject on domain.com. Why did some mail still get delivered?

Gmail is throttling us on domain.com. What are they actually complaining about?

Our SPF record is at 10 lookups. Which includes still carry mail and which can go?

Compliance on domain.com dropped last week. Did the DMARC or SPF record change?

Can example.com move to p=reject? What's holding it?

Add example.com to my project and tell me what to put in DNS

I published the record for example.com. Will its reports reach my project?



Troubleshooting

Tools don't appear in the client
→ Confirm your client supports Streamable HTTP (not just SSE).
New tools are missing after an update. Clients read the tool list once per connection. Restart the app, or on Claude.ai go to Settings → Connectors, disconnect DMARKOFF and connect again.
→ Make sure the Authorization: Bearer ... header is being sent correctly.
→ Some clients require a restart after configuration changes.
 
401 Unauthorized
→ Double-check your API key at app.dmarkoff.com/account/mcp.
→ Make sure the key is active and hasn't expired.

Empty response or "no projects found"
→ Verify that the API key has access to at least one project.
→ Log into app.dmarkoff.com and confirm your projects are visible there.

OAuth errors
→ Make sure the Client Secret contains your DMARKOFF API key (not your account password).
→ ChatGPT says redirect_uri not allowed: delete the app and create it again. ChatGPT keeps the OAuth client it registered when the app was created, and that client may lack the callback address ChatGPT uses now.
→ Try disconnecting and reconnecting the integration.

Need help?
Email support@mail.dmarkoff.com.