{"_id":"@spideriq/mcp-mail","_rev":"3-eb4755205c9a0e8f5c80e450a3760df0","name":"@spideriq/mcp-mail","dist-tags":{"latest":"1.15.0"},"versions":{"1.4.0":{"name":"@spideriq/mcp-mail","version":"1.4.0","keywords":["spideriq","spidermail","mcp","model-context-protocol","email","imap","smtp","claude","ai-assistant"],"author":{"name":"SpiderIQ"},"license":"MIT","_id":"@spideriq/mcp-mail@1.4.0","maintainers":[{"name":"martinshein","email":"martin@di-atomic.com"}],"homepage":"https://github.com/SpiderIQ/SpiderIQ#readme","bugs":{"url":"https://github.com/SpiderIQ/SpiderIQ/issues"},"bin":{"spideriq-mcp-mail":"dist/server.js"},"dist":{"shasum":"257701d038de698371b646ec466b0b9312c383b5","tarball":"https://registry.npmjs.org/@spideriq/mcp-mail/-/mcp-mail-1.4.0.tgz","fileCount":2,"integrity":"sha512-ttoKIFpbB6Y/u50xag+XjrhvjBTknahchVpFpfwt5ahaxJUS/8aN/+MjerxczXEazkAfc4oAOggMAleF0euKjg==","signatures":[{"sig":"MEQCIHJOB8rtFFs2rvaXHbOM1jSrqQNihUa6HD3/76A2LXCZAiABuSuaJLA+s1vQbJD017O32BteIxay42mJz/FF5R2mvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46995},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"d5d1825200b9b1c0e47d5cf8ef44c6816a8eaceb","mcpName":"ai.spideriq/mail","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","start":"node dist/server.js","typecheck":"tsc --noEmit","prepublishOnly":"echo 'ERROR: Use packages/scripts/publish-package.sh, not raw npm publish. See docs/services/SpiderCLI/LEARNINGS.md' && exit 1"},"_npmUser":{"name":"martinshein","email":"martin@di-atomic.com"},"repository":{"url":"git+https://github.com/SpiderIQ/SpiderIQ.git","type":"git","directory":"packages/mcp-mail"},"_npmVersion":"10.9.7","description":"SpiderIQ Mail MCP Server — SpiderMail mailboxes, messages, threads, send, compose for AI assistants","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.22.4","yaml":"^2.3.4","@spideriq/core":"^1.31.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","typescript":"^5.3.3","@types/node":"^20.11.0","@spideriq/mcp-tools":"^1.34.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mail_1.4.0_1781911969710_0.9647522348455544","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@spideriq/mcp-mail","version":"1.5.0","keywords":["spideriq","spidermail","mcp","model-context-protocol","email","imap","smtp","claude","ai-assistant"],"author":{"name":"SpiderIQ"},"license":"MIT","_id":"@spideriq/mcp-mail@1.5.0","maintainers":[{"name":"martinshein","email":"martin@di-atomic.com"}],"homepage":"https://github.com/SpiderIQ/SpiderIQ#readme","bugs":{"url":"https://github.com/SpiderIQ/SpiderIQ/issues"},"bin":{"spideriq-mcp-mail":"dist/server.js"},"dist":{"shasum":"3e7397d5c153789efefbc04b287e897065cce156","tarball":"https://registry.npmjs.org/@spideriq/mcp-mail/-/mcp-mail-1.5.0.tgz","fileCount":2,"integrity":"sha512-mmLYsHZj8M7kkBSVmrirYBEQLHgTB/A8vvXn9QyNvU/xzYoRwe4sEkgKniULnkbkatndQlDEmNGCo7vcYqofNQ==","signatures":[{"sig":"MEYCIQDGZD78QaNnMjzIvUcNZRsvgpMgXMUQUb3+K3f1+csaTgIhANp5tUFNcylmAozF09tIuWB7o6F44b6rslRhGJbiMgZ0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48875},"main":"dist/server.js","type":"module","engines":{"node":">=18.0.0"},"mcpName":"ai.spideriq/mail","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","start":"node dist/server.js","typecheck":"tsc --noEmit","prepublishOnly":"echo 'ERROR: Use packages/scripts/publish-package.sh, not raw npm publish. See docs/services/SpiderCLI/LEARNINGS.md' && exit 1"},"_npmUser":{"name":"martinshein","email":"martin@di-atomic.com"},"repository":{"url":"git+https://github.com/SpiderIQ/SpiderIQ.git","type":"git","directory":"packages/mcp-mail"},"_npmVersion":"10.9.7","description":"SpiderIQ Mail MCP Server — SpiderMail mailboxes, messages, threads, send, compose for AI assistants","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.22.4","yaml":"^2.3.4","@spideriq/core":"^1.57.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","typescript":"^5.3.3","@types/node":"^20.11.0","@spideriq/mcp-tools":"^1.68.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mail_1.5.0_1785073033091_0.26520283295115044","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@spideriq/mcp-mail","version":"1.15.0","mcpName":"ai.spideriq/mail","description":"SpiderIQ Mail MCP Server — SpiderMail mailboxes, messages, threads, send, compose for AI assistants","main":"dist/server.js","type":"module","bin":{"spideriq-mcp-mail":"dist/server.js"},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist","typecheck":"tsc --noEmit","start":"node dist/server.js","prepublishOnly":"echo 'ERROR: Use packages/scripts/publish-package.sh, not raw npm publish. See docs/services/SpiderCLI/LEARNINGS.md' && exit 1"},"keywords":["spideriq","spidermail","mcp","model-context-protocol","email","imap","smtp","claude","ai-assistant"],"author":{"name":"SpiderIQ"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SpiderIQ/SpiderIQ.git","directory":"packages/mcp-mail"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","@spideriq/core":"^1.76.0","yaml":"^2.3.4","zod":"^3.22.4"},"devDependencies":{"@spideriq/mcp-tools":"^1.85.0","@types/node":"^20.11.0","tsup":"^8.0.1","typescript":"^5.3.3"},"engines":{"node":">=18.0.0"},"publishConfig":{},"_id":"@spideriq/mcp-mail@1.15.0","gitHead":"f909117cc1b0406d8f58ad755c2d40e393518e4b","bugs":{"url":"https://github.com/SpiderIQ/SpiderIQ/issues"},"homepage":"https://github.com/SpiderIQ/SpiderIQ#readme","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-hIs60QcjeCNuUfxxak31RSX95V5BCpx4Rp5pjPtid3CNh/x3TEqi6KFHxlnqHpMTJSFbF1EezIZxrQ/2eopCGQ==","shasum":"48557d97c8dc224961da9d3b7d1cff4f3cfaa477","tarball":"https://registry.npmjs.org/@spideriq/mcp-mail/-/mcp-mail-1.15.0.tgz","fileCount":3,"unpackedSize":108563,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF67iZrJka7D6VpUeG/MXp7yf1TqvHBCihaYErBdj+tsAiBw1e+dWNKQKo5xKt/NH9h9QyTHm7dPFIjtHo/sbgW21w=="}]},"_npmUser":{"name":"martinshein","email":"martin@di-atomic.com"},"directories":{},"maintainers":[{"name":"martinshein","email":"martin@di-atomic.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-mail_1.15.0_1788524744907_0.21368748234331747"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T23:32:49.594Z","modified":"2026-09-04T12:25:45.243Z","1.4.0":"2026-06-19T23:32:49.846Z","1.5.0":"2026-07-26T13:37:13.238Z","1.15.0":"2026-09-04T12:25:45.030Z"},"bugs":{"url":"https://github.com/SpiderIQ/SpiderIQ/issues"},"author":{"name":"SpiderIQ"},"license":"MIT","homepage":"https://github.com/SpiderIQ/SpiderIQ#readme","keywords":["spideriq","spidermail","mcp","model-context-protocol","email","imap","smtp","claude","ai-assistant"],"repository":{"type":"git","url":"git+https://github.com/SpiderIQ/SpiderIQ.git","directory":"packages/mcp-mail"},"description":"SpiderIQ Mail MCP Server — SpiderMail mailboxes, messages, threads, send, compose for AI assistants","maintainers":[{"name":"martinshein","email":"martin@di-atomic.com"}],"readme":"# @spideriq/mcp-mail\n\nMCP server for SpiderMail — mailboxes, messages, threads, send, compose, templates,\nplus the **send tier**: bring-your-own sending domain, the sending pool and its\nreputation, and broadcasts.\n\n## Two layers, and picking the wrong one is the common mistake\n\n| You want to… | Use | Scope |\n|---|---|---|\n| Send **one** message through **one** registered mailbox | `send_email` | a mailbox |\n| Read an inbox, thread, or search mail | `get_inbox` · `get_thread` · `search_mail` | a mailbox |\n| Onboard a sending domain you own | `send_check_domain` → `send_enroll_domain` | the fleet |\n| See the sending pool, caps, warm-up, reputation | `send_list_sources` · `send_get_deliverability` | the fleet |\n| Mail **many** people | `send_create_broadcast` → `send_queue_broadcast` | the fleet |\n\n### Three contracts worth reading before you call anything\n\n1. **A draft is not a send.** `send_create_broadcast` creates a draft, and setting\n   `scheduled_at` records intent — it does **not** send. Only `send_queue_broadcast`\n   puts mail on the wire, and rows already enqueued are not withdrawn by a later cancel.\n2. **A `null` DNS verdict is UNDETERMINABLE, never a pass.** Each check in\n   `send_check_domain` is tri-state; `verified` is true only when all three are true.\n   When one fails, its `expected` field names the exact record to publish.\n3. **`already_enqueued > 0` and `provider_configured: false` are not failures.** The\n   first is a resumed fan-out (the enqueue is idempotent per broadcast+address, so a\n   retry fills gaps instead of double-sending); the second means the messages are\n   queued and will hold until credentials exist — a deliberate dormant state.\n\nAll send-tier tools are tenant-scoped by your PAT. None takes a `client_id`.\n\n## Install\n\n```bash\nnpm install @spideriq/mcp-mail --registry https://npm.spideriq.ai\n```\n\n## Configure\n\n```json\n{\n  \"mcpServers\": {\n    \"spideriq-mail\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@spideriq/mcp-mail\"],\n      \"env\": {\n        \"SPIDERIQ_WORKSPACE\": \"cli_…\"\n      }\n    }\n  }\n}\n```\n\n## Which tenant will this write to?\n\nResolution order — first hit wins. Every response reports which rung won as `_tenancy.via`.\n\n| # | Source | How |\n|---|--------|-----|\n| 1 | explicit | `workspace: \"cli_…\"` argument on the call — **always wins, works per-call** |\n| 2 | environment | `SPIDERIQ_WORKSPACE=cli_…` |\n| 3 | binding | a `spideriq.json` in cwd or an ancestor (`SPIDERIQ_WORKSPACE_CWD` overrides where we look) |\n| 4 | sole credential | automatic when exactly one is stored — reported as `via: \"sole-credential\"`, never silent |\n| 5 | — | **REFUSED.** With several tenants and no binding we do not guess. The error carries `retry_with` — merge it into your retry. |\n\n**Running an agency / multiple clients?** Pass `workspace` on every call. `cwd` is a\nper-process fact; tenancy is a per-call fact, so one session can drive many tenants\nwith no `cd`, restart, or reconfiguration.\n\n```js\ncontent_list_pages({ workspace: \"cli_clientA\" })\ncontent_create_page({ workspace: \"cli_clientB\", title: \"…\" })\n```\n\n> ⚠️ **Some IDEs spawn MCP servers with `cwd=/`** (Antigravity does). Nothing\n> cwd-derived is reachable from there, so set `SPIDERIQ_WORKSPACE` or\n> `SPIDERIQ_WORKSPACE_CWD` in the server's `env` block, or pass `workspace` per call.\n\nLost? Call `get_auth_status({topic:\"tenancy\"})` — it returns the active tenant, why it\nwas chosen, every workspace you can reach, and how to switch.\n","readmeFilename":"README.md"}