{"_id":"@daveremy/unsubscribe-mcp","name":"@daveremy/unsubscribe-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@daveremy/unsubscribe-mcp","version":"0.1.0","description":"MCP server for email unsubscribe — RFC 8058 one-click, GET fallback, mailto support","type":"module","license":"MIT","engines":{"node":">=18.0.0"},"keywords":["unsubscribe","email","gmail","newsletter","mcp","model-context-protocol","cli"],"repository":{"type":"git","url":"git+https://github.com/daveremy/unsubscribe-mcp.git"},"main":"./dist/mcp.js","exports":{".":"./dist/mcp.js"},"bin":{"unsubscribe":"dist/cli.js","unsubscribe-mcp":"dist/mcp.js"},"scripts":{"build":"tsc && chmod +x dist/cli.js dist/mcp.js","prepublishOnly":"npm run build","dev":"tsx src/cli.ts","release":"./scripts/release.sh"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","commander":"^14.0.3","zod":"^4.3.6"},"devDependencies":{"@types/node":"^22.0.0","tsx":"^4.21.0","typescript":"^5.7.0"},"gitHead":"34162ad8a2d976312fb613e00bbb72f3179dc343","types":"./dist/mcp.d.ts","_id":"@daveremy/unsubscribe-mcp@0.1.0","bugs":{"url":"https://github.com/daveremy/unsubscribe-mcp/issues"},"homepage":"https://github.com/daveremy/unsubscribe-mcp#readme","_nodeVersion":"25.8.1","_npmVersion":"11.12.0","dist":{"integrity":"sha512-9+nvJ5BGIV7P/pYPmp30j3g2MG04zO9WNGQlECHkhMbCv7OJgqkz8i+/mcnIq56QsfWVFGMK1qXGixG+ZaNZsQ==","shasum":"4e34a9e7cd2c51b0d6c258d8221068594f439c64","tarball":"https://registry.npmjs.org/@daveremy/unsubscribe-mcp/-/unsubscribe-mcp-0.1.0.tgz","fileCount":31,"unpackedSize":53247,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCmUePBfi/ojeFYpOwZ9hoefD94RayeEPGN0jd6iJw5OQIhAK22ukbP3hxae2UHecrK8fIbCftavinCbA/1C+Bkmap4"}]},"_npmUser":{"name":"daveremy","email":"email@daveremy.com"},"directories":{},"maintainers":[{"name":"daveremy","email":"email@daveremy.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/unsubscribe-mcp_0.1.0_1774548966675_0.6581279808488625"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T18:16:06.552Z","0.1.0":"2026-03-26T18:16:06.838Z","modified":"2026-03-26T18:16:07.028Z"},"maintainers":[{"name":"daveremy","email":"email@daveremy.com"}],"description":"MCP server for email unsubscribe — RFC 8058 one-click, GET fallback, mailto support","homepage":"https://github.com/daveremy/unsubscribe-mcp#readme","keywords":["unsubscribe","email","gmail","newsletter","mcp","model-context-protocol","cli"],"repository":{"type":"git","url":"git+https://github.com/daveremy/unsubscribe-mcp.git"},"bugs":{"url":"https://github.com/daveremy/unsubscribe-mcp/issues"},"license":"MIT","readme":"# unsubscribe-mcp\n\nMCP server for email unsubscribe — RFC 8058 one-click, GET fallback, mailto support.\n\nLets Claude Code agents unsubscribe from newsletters during email triage. No browser, no manual clicks.\n\n## Install\n\n```bash\n# As a Claude Code plugin\nclaude plugin add @daveremy/unsubscribe-mcp\n\n# Or via npx (auto-installs)\nnpx -y @daveremy/unsubscribe-mcp\n```\n\n## Setup\n\nThis server uses your existing [gws](https://github.com/nicholasgasior/gws) (Google Workspace CLI) credentials for Gmail access. No separate OAuth setup needed.\n\n```bash\n# Install gws if you don't have it\nnpm i -g @googleworkspace/cli\n\n# Authenticate with Gmail\ngws auth\n```\n\n## MCP Tools\n\n| Tool | Description |\n|---|---|\n| `list_subscriptions` | Search Gmail for newsletters, grouped by sender |\n| `get_unsubscribe_info` | Parse List-Unsubscribe headers for a message |\n| `unsubscribe` | Execute unsubscribe: POST > GET > mailto fallback |\n| `bulk_unsubscribe` | Batch unsubscribe from multiple senders |\n| `unsubscribe_status` | View log of unsubscribe attempts |\n\n## CLI Usage\n\n```bash\n# List newsletter subscriptions\nunsubscribe list --max 100\n\n# Check unsubscribe options for a message\nunsubscribe info <message_id>\n\n# Unsubscribe (dry run first)\nunsubscribe unsub <message_id> --dry-run\nunsubscribe unsub <message_id>\n\n# Batch unsubscribe\nunsubscribe bulk <id1> <id2> <id3>\n\n# View attempt log\nunsubscribe status\n```\n\n## How It Works\n\nMost marketing emails include a `List-Unsubscribe` header (required by Gmail since 2024 for bulk senders). This server parses that header and executes the unsubscribe automatically:\n\n1. **RFC 8058 One-Click POST** (~70-80% of senders) — sends `List-Unsubscribe=One-Click` to the HTTPS URL\n2. **HTTPS GET fallback** (~10-15%) — follows the unsubscribe URL\n3. **Mailto fallback** (~10-15%) — sends an email to the unsubscribe address via Gmail API\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Run CLI in dev mode (no build needed)\nnpm run dev -- list\n\n# Build\nnpm run build\n\n# Release\nnpm run release patch\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-4d1c7483eb876d67da5d755215a8b31e"}