PowerDMARC MCP

Verbinden Sie Claude, Cursor oder jede MCP-kompatible KI mit Ihrem PowerDMARC-Konto. Fragen Sie DMARC-Berichte ab, verwalten Sie Domains, führen Sie DNS-Abfragen durch und beheben Sie E-Mail-Authentifizierungsprobleme in einfachem Englisch.

Dokumentation

powerdmarcmcp/powerdmarc-mcp

Remote MCP server bridging AI clients with the PowerDMARC email authentication Platform

1

557

powerdmarcmcp/powerdmarc-mcp repository overview

PowerDMARC MCP

A self-hosted MCP server that bridges AI clients with the PowerDMARC⁠ email security API via the Model Context Protocol. It exposes 30+ tools covering DMARC/SPF/DKIM reporting, domain management, DNS lookups, and MSSP operations.


Quick Start

Pull and run the pre-built image from Docker Hub:

docker run -d \
  --name powerdmarc-mcp \
  -e MCP_PUBLIC_URL="your-server-domain.com" \
  -p 3001:3001 \
  -v powerdmarc_data:/app/data \
  powerdmarcmcp/powerdmarc-mcp:1.0.0

The server starts on http://localhost:3001⁠. SQLite data is persisted in the powerdmarc_data volume.

Verify it's running
curl http://localhost:3001/health

Environment Variables

VariableRequiredDefaultDescription
MCP_PUBLIC_URLRecommendedmcp-dmarc.comPublic hostname of this MCP server — used in OAuth WWW-Authenticate headers
PLATFORM_BASE_URLNohttps://app.powerdmarc.comPowerDMARC API base URL for end-user accounts
PLATFORM_MSSP_BASE_URLNofalls back to PLATFORM_BASE_URLPowerDMARC API base URL for MSSP accounts
DATABASE_URLNofile:/app/data/dev.dbSQLite path (or a postgres:// URL for production)
PORTNo3001HTTP port
METRICS_TOKENNoSecret required in X-Metrics-Token header for POST /metrics (min 32 chars). Generate: openssl rand -hex 32
ALLOWED_ORIGINSNohttps://claude.ai,...Comma-separated CORS allowed origins
RATE_LIMIT_MAXNo60Max requests per window per client
RATE_LIMIT_WINDOW_MSNo60000Rate limit window in milliseconds
BLOCKLIST_ENABLEDNofalseEnable token revocation blocklist
LOG_LEVELNoinfoPino log level (fatal/error/warn/info/debug/trace)

Connecting AI Clients

All clients connect to the /mcp endpoint using a Bearer token obtained via OAuth from app.powerdmarc.com⁠. The server handles OAuth Dynamic Client Registration at /register.

Claude Code (CLI)
claude mcp add powerdmarc \
  --transport http \
  --url http://localhost:3001/mcp \
  --header "Authorization: Bearer <your-powerdmarc-token>"

Or via ~/.claude/claude_code_config.json:

{
  "mcpServers": {
    "powerdmarc": {
      "type": "http",
      "url": "http://localhost:3001/mcp",
      "headers": {
        "Authorization": "Bearer <your-powerdmarc-token>"
      }
    }
  }
}
Claude Desktop

Claude Desktop uses stdio transport. Bridge it to the HTTP server via the MCP proxy:

{
  "mcpServers": {
    "powerdmarc": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-proxy",
        "http://localhost:3001/mcp"
      ]
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
VS Code (GitHub Copilot Agent Mode)

Create .vscode/mcp.json in your workspace:

{
  "servers": {
    "powerdmarc": {
      "type": "http",
      "url": "http://localhost:3001/mcp",
      "headers": {
        "Authorization": "Bearer <your-powerdmarc-token>"
      }
    }
  }
}
Cursor

Edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "powerdmarc": {
      "url": "http://localhost:3001/mcp",
      "headers": {
        "Authorization": "Bearer <your-powerdmarc-token>"
      }
    }
  }
}
Windsurf

Edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "powerdmarc": {
      "serverUrl": "http://localhost:3001/mcp",
      "headers": {
        "Authorization": "Bearer <your-powerdmarc-token>"
      }
    }
  }
}

Available Tools

DMARC Reports
ToolDescription
dmarc_aggregate_detailed_statsDetailed aggregate stats for a date range
dmarc_aggregate_per_countryAggregate data grouped by country
dmarc_aggregate_per_hostAggregate data per sending host
dmarc_aggregate_per_orgAggregate data per reporting organization
dmarc_aggregate_per_resultAggregate data grouped by pass/fail result
dmarc_aggregate_per_sending_sourceAggregate data per source IP
dmarc_forensic_dataForensic (RUF) failure reports
Domain Management
ToolDescription
list_domainsList all registered domains
get_domainDetails for a specific domain
create_domainRegister a new domain
delete_domainRemove a domain
Hosted Records
ToolDescription
get_hosted_dmarcHosted DMARC record for a domain
get_hosted_spfHosted SPF record for a domain
get_dkim_selectorsDKIM selectors for a domain
get_hosted_bimiHosted BIMI record
get_mta_sts_policyMTA-STS policy
Analytics
ToolDescription
domain_healthHealth score and authentication status
mail_volume_historyHistorical mail volume
dkim_analyticsDKIM analytics for a domain
DNS & Power Tools
ToolDescription
dns_lookupLook up any DNS record type (DMARC, SPF, DKIM, MX, A, AAAA, CNAME, TXT, NS, SOA, CAA, PTR, MTA-STS)
dns_lookup_appDNS lookup via PowerDMARC platform
whois_lookupWHOIS registration info
generate_dmarc_recordGenerate a DMARC TXT record
generate_spf_recordGenerate an SPF TXT record
generate_dkim_recordGenerate a DKIM public key record
domain_analyzerFull domain email security analysis
dmarc_charts_appDMARC chart data
Audit & MSSP
ToolDescription
get_audit_logsRetrieve platform audit logs
mssp_list_accountsList all MSSP customer sub-accounts
mssp_list_membersList MSSP sub-account users
mssp_create_memberCreate a user in an MSSP sub-account
mssp_delete_memberDelete a user from an MSSP sub-account
mssp_domain_groupsList MSSP domain groups

Endpoints

PathMethodDescription
/mcpPOSTMCP StreamableHTTP transport — main entry point for AI clients
/healthGETLiveness probe
/metricsPOSTPrometheus metrics (requires X-Metrics-Token header)
/registerPOSTOAuth Dynamic Client Registration (proxies to PowerDMARC)

Privacy Policy

PowerDMARC is committed to protecting your privacy.

Data collection: The MCP server acts as a proxy between AI clients and the PowerDMARC API. It does not collect, store, or log any email content or DMARC report data beyond what is required to fulfill each individual API request. Structured request/response logs (without sensitive payload contents) may be retained for up to 30 days for debugging purposes.

Data usage and storage: API tokens provided by users are used solely to authenticate requests to the PowerDMARC API on the user's behalf. Tokens are never stored in plaintext beyond the lifetime of a single request session. A token blocklist (hashed identifiers only) is maintained in the server database to prevent use of revoked credentials.

Third-party sharing: No user data, API tokens, or DMARC report contents are shared with any third party. The only outbound connections made by the MCP server are to the PowerDMARC API endpoints configured by the operator.

Data retention: Request logs are retained for a maximum of 30 days and then purged automatically. The token blocklist retains hashed token identifiers indefinitely to prevent reuse of revoked keys.

Contact: For privacy-related questions or data removal requests, contact [email protected]⁠ or visit https://powerdmarc.com/privacy-policy/⁠.

Tag summary

Content type

Image

Digest

sha256:a7759a646…

Size

169 MB

Last updated

3 months ago

docker pull powerdmarcmcp/powerdmarc-mcp