{"_id":"@duocircle/dmarcreport-mcp","name":"@duocircle/dmarcreport-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@duocircle/dmarcreport-mcp","version":"0.1.0","type":"module","description":"MCP server for DMARCReport API - enables AI assistants to manage DMARC configurations","main":"dist/index.js","bin":{"dmarcreport-mcp":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","test":"jest","lint":"eslint src/**/*.ts","prepare":"npm run build","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","dmarc","dmarcreport","email-security","email-authentication","ai-tools","claude","spf","dkim"],"author":{"name":"DuoCircle"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/duocircle/dmarcreport-mcp.git"},"bugs":{"url":"https://github.com/duocircle/dmarcreport-mcp/issues"},"homepage":"https://github.com/duocircle/dmarcreport-mcp#readme","publishConfig":{"access":"public"},"engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","bottleneck":"^2.19.5"},"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^20.0.0","jest":"^30.4.2","ts-jest":"^29.4.10","typescript":"^5.0.0"},"_id":"@duocircle/dmarcreport-mcp@0.1.0","gitHead":"22c45588c267c65e4f811154ee5c9b338af6792b","types":"./dist/index.d.ts","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-G1SdkccCyy+B/bBNrVjvT06XYn0wJrsrKAe3CymeOhAjwUOrpzrWa69pf57/MmwwC92x7OIvG+N584p03b+u2g==","shasum":"e4986223a21d1edf80584d24f8ba0ec53ea852f6","tarball":"https://registry.npmjs.org/@duocircle/dmarcreport-mcp/-/dmarcreport-mcp-0.1.0.tgz","fileCount":58,"unpackedSize":581840,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCZ9lG4AwxtQYTRPHvgck/Ol3ZAEzelp3Irug2/+GmM7gIhALtnb1bUnocTaNA8vvirVcYeh6F/Py9/5nO0/0YqovXI"}]},"_npmUser":{"name":"mawaissaeed","email":"asaeed897@gmail.com"},"directories":{},"maintainers":[{"name":"duocircle-hq","email":"support@duocircle.com"},{"name":"mawaissaeed","email":"asaeed897@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dmarcreport-mcp_0.1.0_1787149971402_0.43109878281477276"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-19T14:32:51.205Z","0.1.0":"2026-08-19T14:32:51.558Z","modified":"2026-08-19T14:32:51.782Z"},"maintainers":[{"name":"duocircle-hq","email":"support@duocircle.com"},{"name":"mawaissaeed","email":"asaeed897@gmail.com"}],"description":"MCP server for DMARCReport API - enables AI assistants to manage DMARC configurations","homepage":"https://github.com/duocircle/dmarcreport-mcp#readme","keywords":["mcp","model-context-protocol","dmarc","dmarcreport","email-security","email-authentication","ai-tools","claude","spf","dkim"],"repository":{"type":"git","url":"git+https://github.com/duocircle/dmarcreport-mcp.git"},"author":{"name":"DuoCircle"},"bugs":{"url":"https://github.com/duocircle/dmarcreport-mcp/issues"},"license":"MIT","readme":"# DMARCReport MCP Server\n\n[![npm version](https://img.shields.io/npm/v/@duocircle/dmarcreport-mcp.svg)](https://www.npmjs.com/package/@duocircle/dmarcreport-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\nAn MCP (Model Context Protocol) server that enables AI assistants to interact with the [DMARCReport](https://dmarcreport.com) API. Goes beyond data passthrough by providing DMARC-aware reasoning and actionable recommendations.\n\n> **What is MCP?** [Model Context Protocol](https://modelcontextprotocol.io) is an open standard that allows AI assistants to connect to external tools and data sources.\n\n## Features\n\n- **Full API Coverage** - Access all DMARCReport data (domains, aggregate reports, forensic reports, MTA-STS)\n- **DMARC Reasoning** - Get intelligent analysis with grades, blockers, and recommendations\n- **Policy Progression** - Check if domains are ready to advance from none → quarantine → reject\n- **Configurable Profiles** - Novice, expert, and partner profiles for different user needs\n\n## Quick Start\n\n```bash\nDMARCREPORT_API_KEY=your-key npx @duocircle/dmarcreport-mcp\n```\n\n> **Need an API key?** See the [API Token Setup Guide](https://support.dmarcreport.com/support/solutions/articles/5000873350-api-tokens) to generate one from your DMARCReport account.\n\n## Installation\n\nThis MCP server works with any AI assistant that supports the Model Context Protocol.\n\n### Claude Desktop\n\nAdd to your Claude Desktop configuration:\n\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"dmarcreport\": {\n      \"command\": \"npx\",\n      \"args\": [\"@duocircle/dmarcreport-mcp\"],\n      \"env\": {\n        \"DMARCREPORT_API_KEY\": \"your-api-key\",\n        \"DMARCREPORT_PROFILE\": \"novice\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code (CLI)\n\nAdd to `~/.claude.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"dmarcreport\": {\n      \"command\": \"npx\",\n      \"args\": [\"@duocircle/dmarcreport-mcp\"],\n      \"env\": {\n        \"DMARCREPORT_API_KEY\": \"your-api-key\",\n        \"DMARCREPORT_PROFILE\": \"expert\"\n      }\n    }\n  }\n}\n```\n\nOr use the CLI command:\n```bash\nclaude mcp add dmarcreport -- npx @duocircle/dmarcreport-mcp\n```\n\n### Other MCP-Compatible AI Tools\n\nThis server follows the MCP standard and works with any compatible client. Configure your AI tool with:\n\n- **Command:** `npx @duocircle/dmarcreport-mcp`\n- **Environment:** `DMARCREPORT_API_KEY=your-api-key`\n\nRefer to your AI tool's documentation for MCP server configuration.\n\n## Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `DMARCREPORT_API_KEY` | Yes | - | Your DMARCReport API key |\n| `DMARCREPORT_API_URL` | No | `https://api.dmarcreport.com` | API base URL |\n| `DMARCREPORT_PROFILE` | No | `novice` | Analysis profile (novice/expert/partner) |\n| `DMARCREPORT_CONFIG_FILE` | No | - | Path to JSON config file |\n\n### Rate Limiting Configuration\n\nThe MCP server includes automatic rate limiting to prevent API throttling.\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `DMARCREPORT_MAX_CONCURRENT` | `5` | Maximum parallel API requests |\n| `DMARCREPORT_MIN_TIME_MS` | `200` | Minimum milliseconds between requests |\n| `DMARCREPORT_RESERVOIR` | `18` | Request budget per interval |\n| `DMARCREPORT_RESERVOIR_INTERVAL_MS` | `20000` | Budget refresh interval (20 sec) |\n| `DMARCREPORT_MAX_RETRIES` | `3` | Max retry attempts on 429/5xx errors |\n| `DMARCREPORT_BASE_RETRY_DELAY_MS` | `1000` | Initial retry delay (1 sec) |\n| `DMARCREPORT_MAX_RETRY_DELAY_MS` | `30000` | Maximum retry delay cap (30 sec) |\n\n**Default behavior:**\n- Max 5 API calls run in parallel\n- 200ms minimum gap between requests\n- 18 requests per 20-second window\n- Automatic retry with exponential backoff on 429/5xx errors\n- Respects `Retry-After` header when present\n\n## Profiles\n\n| Profile | Description | Best For |\n|---------|-------------|----------|\n| `novice` | Plain English explanations, simplified output | End users, non-technical stakeholders |\n| `expert` | Technical details, DNS records, remediation diffs | IT administrators, email specialists |\n| `partner` | MSP-focused, multi-tenant summaries, stricter thresholds | Managed service providers |\n\n## Available Tools\n\n### Account Tools\n| Tool | Description |\n|------|-------------|\n| `list_accounts` | List all accessible accounts |\n| `get_account` | Get account details |\n| `get_email_sources` | List known email sources |\n\n### Domain Tools\n| Tool | Description |\n|------|-------------|\n| `list_domains` | List domains for an account |\n| `get_domain` | Get domain details with DMARC/SPF/DKIM status |\n| `get_hosted_services` | Get hosted DMARC and MTA-STS status |\n| `verify_hosted_dmarc` | Verify hosted DMARC configuration |\n| `generate_dmarc_record` | Generate DMARC DNS record |\n\n### Report Tools\n| Tool | Description |\n|------|-------------|\n| `get_aggregate_reports` | List DMARC aggregate reports |\n| `get_aggregate_report` | Get detailed aggregate report |\n| `get_aggregate_report_records` | Get individual report records |\n| `get_aggregate_report_stats` | Get DMARC statistics |\n| `get_forensic_reports` | List forensic (failure) reports |\n| `get_forensic_report` | Get detailed forensic report |\n| `get_mta_sts_reports` | List MTA-STS TLS reports |\n| `get_mta_sts_report` | Get detailed MTA-STS report |\n\n### Analysis Tools\n| Tool | Description |\n|------|-------------|\n| `get_domain_summary` | Comprehensive domain overview with alignment stats |\n| `get_top_sources` | Top email sources by volume |\n| `get_alignment_failures` | SPF/DKIM failures ranked by volume |\n| `get_mta_sts_status` | MTA-STS status and recent reports |\n\n### Reasoning Tools\n| Tool | Description |\n|------|-------------|\n| `analyze_domain_posture` | Security grade (A-F), blockers, recommendations |\n| `policy_progression_check` | Check readiness for policy advancement |\n| `compliance_summary` | Account-wide compliance scorecard |\n\n## Example Prompts\n\nOnce configured, you can ask your AI assistant:\n\n**Domain Analysis**\n- \"List all my DMARC domains\"\n- \"What's the DMARC status of example.com?\"\n- \"Analyze the security posture of my domain\"\n\n**Policy Progression**\n- \"Is example.com ready for p=quarantine?\"\n- \"What's blocking my domain from moving to reject policy?\"\n- \"Show me domains that are ready to advance their policy\"\n\n**Troubleshooting**\n- \"Which senders are failing DKIM alignment?\"\n- \"Show me the top email sources for my domain\"\n- \"What are the recent forensic reports for example.com?\"\n\n**Compliance**\n- \"Give me a compliance summary for my account\"\n- \"Which domains need attention?\"\n- \"What's my overall DMARC alignment rate?\"\n\n## Configuration File\n\nCreate a `config.json` for custom settings:\n\n```json\n{\n  \"profile\": \"expert\",\n  \"thresholds\": {\n    \"min_alignment_for_quarantine\": 90,\n    \"min_alignment_for_reject\": 98,\n    \"analysis_window_days\": 30,\n    \"min_volume_for_recommendation\": 100\n  },\n  \"output\": {\n    \"explain_technical_terms\": false,\n    \"include_dns_records\": true,\n    \"show_remediation_diffs\": true\n  }\n}\n```\n\nThen set `DMARCREPORT_CONFIG_FILE=/path/to/config.json`.\n\n## Support\n\n- [DMARCReport](https://dmarcreport.com) - Email Authentication Made Simple\n- [Help Center](https://support.dmarcreport.com)\n- [API Token Setup Guide](https://support.dmarcreport.com/support/solutions/articles/5000873350-api-tokens)\n- [GitHub Issues](https://github.com/duocircle/dmarcreport-mcp/issues)\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-51d1dbe2000fedc3b7ffa6b22247af03"}