{"_id":"@dmarc-examiner/mcp","_rev":"2-bdc548c51bde1ce051979091b2e581a5","name":"@dmarc-examiner/mcp","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@dmarc-examiner/mcp","version":"1.0.0","keywords":["mcp","dmarc","dmarc-examiner","claude","model-context-protocol"],"author":{"name":"DMARC Examiner","email":"support@dmarc-examiner.com"},"license":"MIT","_id":"@dmarc-examiner/mcp@1.0.0","maintainers":[{"name":"dmarc-examiner","email":"support@dmarc-examiner.com"}],"homepage":"https://github.com/dmarc-examiner/mcp#readme","bugs":{"url":"https://github.com/dmarc-examiner/mcp/issues"},"bin":{"dmarc-examiner-mcp":"dist/index.js"},"dist":{"shasum":"6c4a176dc32b3947bf50da498943a16024f798ca","tarball":"https://registry.npmjs.org/@dmarc-examiner/mcp/-/mcp-1.0.0.tgz","fileCount":6,"integrity":"sha512-OyxA5NdtGtcbk6lbjgzUQOgqNjnZGKxZujHe8kSomAXwnk2fjRqktyR0LCs1rUqivK/uMLdXehPoxUzevxjNow==","signatures":[{"sig":"MEUCIDSpLW+TL/XI6DW9Q5A7uQfbnr5A3kJCt+XYjIHKAClSAiEAgBQPpkYaNLqveQnkztAbPOmE5eNVgYmZXO2yFWi0ZIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6959},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ff104aed0f23384f5a09b990be0c16b48a897e8f","mcpName":"io.github.dmarc-examiner/mcp","scripts":{"build":"tsc","prepare":"npm run build"},"_npmUser":{"name":"dmarc-examiner","email":"support@dmarc-examiner.com"},"repository":{"url":"git+https://github.com/dmarc-examiner/mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"DMARC Examiner MCP plugin for Claude Desktop, Claude Code, and Cursor","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.0.0_1785859453461_0.8269463509936079","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dmarc-examiner/mcp","version":"1.1.0","mcpName":"io.github.dmarc-examiner/mcp","description":"DMARC Examiner MCP plugin for Claude Desktop, Claude Code, and Cursor","main":"dist/index.js","bin":{"dmarc-examiner-mcp":"dist/index.js"},"scripts":{"build":"tsc","prepare":"npm run build"},"keywords":["mcp","dmarc","dmarc-examiner","claude","model-context-protocol"],"author":{"name":"DMARC Examiner","email":"support@dmarc-examiner.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dmarc-examiner/mcp.git"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.1"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.7.0"},"engines":{"node":">=18.0.0"},"gitHead":"e228a98fba629cc72019ff9ff6255a65d6003bf4","types":"./dist/index.d.ts","_id":"@dmarc-examiner/mcp@1.1.0","bugs":{"url":"https://github.com/dmarc-examiner/mcp/issues"},"homepage":"https://github.com/dmarc-examiner/mcp#readme","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-0JfFmPPA/RExhujfOfbqPAiUa84bgXJ5B56Rvisgok+3qOJVJpRYIBF+KSjwsxpWSh+kkRAiCoT7ALRdjNGCiQ==","shasum":"faa585451729d98ad8fe8fb9e8f72cee5c9ef2c4","tarball":"https://registry.npmjs.org/@dmarc-examiner/mcp/-/mcp-1.1.0.tgz","fileCount":9,"unpackedSize":29331,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHnoCdx3utMMou79AlrE7MquSNZFrrg0t9YS0JxR8tCxAiAE6ingevxioN9scNXgId4S3DsvoXMUUBJBop2Jpdf5oQ=="}]},"_npmUser":{"name":"dmarc-examiner","email":"support@dmarc-examiner.com"},"directories":{},"maintainers":[{"name":"dmarc-examiner","email":"support@dmarc-examiner.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_1.1.0_1785860344609_0.309379726134128"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T16:04:13.365Z","modified":"2026-08-04T16:19:04.878Z","1.0.0":"2026-08-04T16:04:13.611Z","1.1.0":"2026-08-04T16:19:04.746Z"},"bugs":{"url":"https://github.com/dmarc-examiner/mcp/issues"},"author":{"name":"DMARC Examiner","email":"support@dmarc-examiner.com"},"license":"MIT","homepage":"https://github.com/dmarc-examiner/mcp#readme","keywords":["mcp","dmarc","dmarc-examiner","claude","model-context-protocol"],"repository":{"type":"git","url":"git+https://github.com/dmarc-examiner/mcp.git"},"description":"DMARC Examiner MCP plugin for Claude Desktop, Claude Code, and Cursor","maintainers":[{"name":"dmarc-examiner","email":"support@dmarc-examiner.com"}],"readme":"# @dmarc-examiner/mcp\n\n[![MCP](https://img.shields.io/badge/MCP-compatible-blue)](https://modelcontextprotocol.io)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![Tools](https://img.shields.io/badge/tools-21-orange)](#available-tools)\n\nOfficial MCP (Model Context Protocol) server for [DMARC Examiner](https://dmarc-examiner.com/?utm_source=github&utm_medium=content&utm_campaign=mcp-repo). Query your DMARC monitoring data from AI assistants like Claude Desktop, Claude Code, and Cursor.\n\n## Why\n\nDMARC aggregate reports arrive as compressed XML, one file per receiver per day. Reading them means either opening a dashboard or parsing XML by hand.\n\nThis server puts that data behind an MCP connection, so you can ask questions instead:\n\n> *Which sending sources failed DMARC alignment last week?*\n\n> *Show me the domains where SPF passes but DKIM does not.*\n\n> *Export the report for example.com as CSV.*\n\nDMARC Examiner is a DMARC monitoring service with a free tier — you need an account to use this server, but not a paid one.\n\n## Quick Setup\n\n### Option 1: Remote URL (Recommended)\n\nMost MCP clients support remote HTTP servers directly. Add this to your MCP configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"dmarc-examiner\": {\n      \"url\": \"https://mcp.dmarc-examiner.com/mcp\"\n    }\n  }\n}\n```\n\n### Option 2: npx (for clients without remote HTTP support)\n\n```json\n{\n  \"mcpServers\": {\n    \"dmarc-examiner\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dmarc-examiner/mcp\"]\n    }\n  }\n}\n```\n\n## Configuration by Client\n\n### Claude Desktop\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\\Claude\\claude_desktop_config.json` (Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"dmarc-examiner\": {\n      \"url\": \"https://mcp.dmarc-examiner.com/mcp\"\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add dmarc-examiner --transport http https://mcp.dmarc-examiner.com/mcp\n```\n\n### Cursor\n\nAdd to your Cursor MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"dmarc-examiner\": {\n      \"url\": \"https://mcp.dmarc-examiner.com/mcp\"\n    }\n  }\n}\n```\n\n## Authorization\n\nOn first use a browser window opens so you can authorize access. You'll need to:\n\n1. Log in to your DMARC Examiner account\n2. Select which organization to connect\n3. Approve the requested permissions (scopes)\n\nWith **Option 1** the MCP client runs this flow itself. With **Option 2** the package does it: it registers as an OAuth client, opens your browser, and stores the resulting tokens in `~/.dmarc-examiner/mcp-credentials.json` with `0600` permissions. The refresh token is reused on later runs, so the browser step happens once.\n\nYou can also drive it directly:\n\n```bash\nnpx -y @dmarc-examiner/mcp login    # authorize now, outside your MCP client\nnpx -y @dmarc-examiner/mcp logout   # forget the stored credentials\n```\n\nSet `DMARC_EXAMINER_MCP_URL` to point the package at a different endpoint.\n\n## Available Tools\n\n### Domains\n\n| Tool | Description | Scope |\n|------|-------------|-------|\n| `list_domains` | List all monitored domains in your organization | `domains:read` |\n| `get_domain` | Get details of a specific domain | `domains:read` |\n| `check_dmarc` | Inspect the public DMARC record at `_dmarc.<domain>`. Works on any domain, not only your own | `domains:read` |\n| `create_domain` | Add a domain. Returns the reporting email and DMARC record to publish in DNS | `domains:manage` |\n| `verify_domain` | Re-check DNS to confirm the DMARC record carries your reporting address | `domains:manage` |\n| `delete_domain` | Remove a domain from monitoring. Soft delete — historical reports remain | `domains:manage` |\n\n### Aggregate reports (RUA)\n\n| Tool | Description | Scope |\n|------|-------------|-------|\n| `list_reports` | List DMARC reports with filtering | `reports:read` |\n| `get_report` | Get a detailed report with records | `reports:read` |\n| `get_report_statistics` | Report statistics by country and ASN | `reports:read` |\n| `export_report_csv` | Export a report as CSV | `reports:export` |\n\n### Forensic reports (RUF)\n\nRequires the Pro plan or above; these return 403 otherwise.\n\n| Tool | Description | Scope |\n|------|-------------|-------|\n| `list_forensic_reports` | List RUF reports with filtering and pagination | `forensic:read` |\n| `get_forensic_report` | Full detail of a forensic report, including the failed message envelope | `forensic:read` |\n| `get_forensic_reports_statistics` | Counters by failure type, delivery result, source IP with geolocation, and domain | `forensic:read` |\n| `get_forensic_reports_summary` | Forensic activity over the last 7 days | `forensic:read` |\n\n### Alerts\n\n| Tool | Description | Scope |\n|------|-------------|-------|\n| `list_alerts` | List security alerts | `alerts:read` |\n| `dismiss_alert` | Dismiss an alert | `alerts:manage` |\n\n### Webhooks\n\nRequires the Pro plan or above; these return 403 otherwise.\n\n| Tool | Description | Scope |\n|------|-------------|-------|\n| `list_webhooks` | List configured webhook endpoints | `webhooks:read` |\n| `create_webhook` | Create an endpoint. The URL must be HTTPS | `webhooks:manage` |\n| `update_webhook` | Update the URL, name or active state of an endpoint | `webhooks:manage` |\n| `delete_webhook` | Delete an endpoint permanently | `webhooks:manage` |\n| `test_webhook` | Send a `webhook.test` event and return the delivery status | `webhooks:manage` |\n\n## Scopes\n\n| Scope | Description |\n|-------|-------------|\n| `domains:read` | View monitored domains |\n| `domains:manage` | Add, verify and remove domains |\n| `reports:read` | View reports and statistics |\n| `reports:export` | Export reports to CSV |\n| `forensic:read` | View forensic (RUF) reports |\n| `alerts:read` | View alerts |\n| `alerts:manage` | Manage alerts (dismiss) |\n| `webhooks:read` | View webhook endpoints |\n| `webhooks:manage` | Create, update, delete and test webhooks |\n\n## Documentation\n\nFor detailed documentation, visit: https://dmarc-examiner.com/docs/settings/mcp-integration?utm_source=github&utm_medium=content&utm_campaign=mcp-repo\n\n## Support\n\n- Documentation: https://dmarc-examiner.com/docs?utm_source=github&utm_medium=content&utm_campaign=mcp-repo\n- Email: support@dmarc-examiner.com\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}