{"_id":"@1amsheldon/mail-mcp","_rev":"13-5f9384fa783cc09d2e0ec8c988402f09","name":"@1amsheldon/mail-mcp","dist-tags":{"latest":"3.0.0"},"versions":{"1.5.0":{"name":"@1amsheldon/mail-mcp","version":"1.5.0","keywords":["mcp","email","imap","smtp","model-context-protocol"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@1.5.0","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"e60a26f70acfb12d256fb8e92b2709c3d67fc6c8","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-1.5.0.tgz","fileCount":75,"integrity":"sha512-dZ0LuQaWU539wnFKcS5XPzWux2SBmcivLO1B2NmxbVdCip95Vmd1COG5kwJZ7jWVm8uvCbevRqeUA8F+ZFOCrg==","signatures":[{"sig":"MEYCIQDkcE5X5aJI3I37PYnZWQacNdOIetbx4VKmZ4vprSAdEwIhAK9LabCgqdXI/Z7sNtJhZBKT/ZURxeoRckLFBB6Gw13O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408814},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"0654956881f3899b54dbefb12016c99f9c11e095","scripts":{"test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","release:check":"npm run build && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Reliable IMAP and SMTP MCP server with explicit delivery states","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/pdf-parse":"^1.1.5","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_1.5.0_1787397370874_0.11387481824479284","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@1amsheldon/mail-mcp","version":"1.5.1","keywords":["mcp","email","imap","smtp","model-context-protocol","gmail","codex","claude"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@1.5.1","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"dc88278ef3df0dfc9b346159541c1b2410da8f27","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-1.5.1.tgz","fileCount":26,"integrity":"sha512-yCaZcSaLLqI6msip7TRTdYEuazu1RQwCSHHsycORraIjfi/KZEOYGOwExixW0vdNCbAPnrOaQJSspOcIjxlRKA==","signatures":[{"sig":"MEUCIQDfbGirXCoAzSkQzefGIC2o8GZs6B5Deh2yvBGeJJerUAIgawXp5YXBxdelvLotz5XNL4al4k6OPTu5BiMyfTGgOmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186995},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"cd757bd5d5968a2490a522c05a38be5a715316fe","scripts":{"test":"vitest run","build":"tsc","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","release:check":"npm run build && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"MCP server for IMAP and SMTP email with guarded writes and explicit delivery states","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.3","dotenv":"^17.4.2","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_1.5.1_1788105327487_0.9326390461170608","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@1amsheldon/mail-mcp","version":"1.5.2","keywords":["mcp","email","imap","smtp","model-context-protocol","gmail","codex","claude"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@1.5.2","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"046d3bf0d0f22f1e69df6cfab1b6fbe0be54031b","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-1.5.2.tgz","fileCount":26,"integrity":"sha512-VW5HLcvG8j6YHLdU11ZCAW8WsIuAkYS3+byrJmU0x1/9wGZN7Oy4sUD7Aw1hT5VHsQfKEhDQa/5ZfsNLTrlBzg==","signatures":[{"sig":"MEUCIQChThycBDpc3ZFEjGN23/SackKlLqfuv25shOgptzimhgIgRwsROVO9k0v/9PJdUePWvYfM3z4PhdeQRZwAZZnpGWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187674},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"636bd443f9ad8cba418ec2c42ffd4fe5caf9e16a","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"MCP server for IMAP and SMTP email with guarded writes and explicit delivery states","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_1.5.2_1788107616235_0.9903957010486302","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@1amsheldon/mail-mcp","version":"1.5.3","keywords":["mcp","email","imap","smtp","model-context-protocol","gmail","codex","claude"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@1.5.3","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"2f9f3df0f4fda680810360b1189550c8bcd3a49a","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-1.5.3.tgz","fileCount":27,"integrity":"sha512-gDhcvxjYuIOpsIS8OpogI2xS+qnctYLzTQOjVR2qgnQYqDIIy3gynnqTmY5fW1pNQ8Me5noaJajHPSrcPXc1Fg==","signatures":[{"sig":"MEUCIEAHolozZVUNiuf15QN3Zq/1x1x9rMKnJ/qEHx31VCaaAiEAnZ8t2DiqyNxzzTXvwXYwyr3Fa0HZv2OKEwOjnKAP9w8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193399},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"c9ef643f3f6ff74ae34fd0858fa9769430e0a726","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"MCP server for IMAP and SMTP email with guarded writes and explicit delivery states","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_1.5.3_1788109278643_0.10310929592465823","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@1amsheldon/mail-mcp","version":"1.5.4","keywords":["mcp","email","imap","smtp","model-context-protocol","gmail","codex","claude"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@1.5.4","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"961658790cdb2f12f4bd33ca934521e1f9cf9b55","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-1.5.4.tgz","fileCount":28,"integrity":"sha512-RG72kvFGZO+RKLBg8tPpBRCoTi3ZvMoampgN89cuVxRr5PHY7PvCdjYElmE/sZ3WOaCJfpckdj5ynAccT5wJKg==","signatures":[{"sig":"MEUCIQCEBmk+lgKEdvL670is+4B1M2z5VZ9zOcEr594q70PMDAIgEzcDlYRhOd3pIEpdzMS84CinTRlP81ZnP+s00mNAg18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@1.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":194797},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"bb697c13b85ab1e8fe23cf7d9fb5264c85f5a60c","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"MCP server for IMAP and SMTP email with guarded writes and explicit delivery states","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_1.5.4_1788113249893_0.3695472420750947","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@1amsheldon/mail-mcp","version":"1.5.5","keywords":["mcp","email","imap","smtp","model-context-protocol","gmail","codex","claude"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@1.5.5","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"c6fd981509b6e3063144e66ef7d873c8584e42c1","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-1.5.5.tgz","fileCount":28,"integrity":"sha512-JmoNTLrmwn7z7Jpcs89QbxGHD/KttC8oOd5gJptcqKu1IWwUJrebQN0ZCc9/MdjaeFjvzseu0EWAbrhM6dm1fg==","signatures":[{"sig":"MEYCIQC0cDmtUld8l9UJuwSulz7N0C6dwWcWewZWToUHb4s9uwIhAKBuJnzXdEbOKVPZ8SJ0+PHPUGLnO8fmFSo9BD5C94+f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@1.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":195361},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"f7249f4582b672a0531e14068c2ba9b96ef73ef5","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"MCP server for IMAP and SMTP email with guarded writes and explicit delivery states","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_1.5.5_1788114106319_0.8267003200621135","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@1amsheldon/mail-mcp","version":"1.6.0","keywords":["mcp","email","imap","smtp","model-context-protocol","gmail","codex","claude"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@1.6.0","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"f6f148c0a5f9a46c9d76f21c756ca30d539d5dd7","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-1.6.0.tgz","fileCount":30,"integrity":"sha512-x2EPVV1orgBIsXFJ02qq94tZp6DfMUWem4uME6Tzy5OeDtoCAOOpRv7v0SH7hhe29HzG7cczhDOMRQtaDNt1pw==","signatures":[{"sig":"MEUCIHd+vF3PywqE4cwqhLI3y8Qy/aNGdSa2OjVlMCW1qJVtAiEAjmGfzIL6Ve49z5mGdvqkmrBjKQ4Bv/Jp0PiQtCXeYtE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":222345},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"167f880b5c51b450f6a0e9efb885e4871fabe63e","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"MCP server for IMAP and SMTP email with guarded writes and explicit delivery states","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_1.6.0_1788117047247_0.3274210444021499","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@1amsheldon/mail-mcp","version":"2.0.0","keywords":["mcp","mcp-server","model-context-protocol","email","mail","email-mcp","mail-mcp","imap","smtp","managesieve","gmail","outlook","exchange","apple-mail","microsoft-graph","ews","mailtrap","codex","claude","email-automation"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@2.0.0","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"8a3091424e321bf3aaedc498095f68be2dd3f841","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-2.0.0.tgz","fileCount":58,"integrity":"sha512-wb7tJS6esKX/S8gB7IHp8FY8LGLjn+W7+dM1Xf1sGoLjsBX4voaqSNSmFQladcuh9MI+nZGn7iHDT7WqOCSYFg==","signatures":[{"sig":"MEUCIEfMGp6A8TcGlZ2Q8ZA8hMampS9AyD9wZDW77TwEOFudAiEAohWne5VX7Aj+CtM1LnJ6HW/0uLtMNH1U+09vTkaT7jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":454510},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"73b291db2f64194cd132232343b7bf451de53dd4","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Email MCP server for Codex and Claude with IMAP, SMTP, Apple Mail, Microsoft, and Mailtrap","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_2.0.0_1788198294521_0.35889476957827404","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@1amsheldon/mail-mcp","version":"2.0.1","keywords":["mcp","mcp-server","model-context-protocol","email","mail","email-mcp","mail-mcp","imap","smtp","managesieve","gmail","outlook","exchange","apple-mail","microsoft-graph","ews","mailtrap","codex","claude","email-automation"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@2.0.1","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"7f228db20337f612855eb2e2aa5bd12afe0ba440","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-2.0.1.tgz","fileCount":58,"integrity":"sha512-O3Uj2Co7skjUXNqEGs/1JYoLjlBqGnNZkFUoh50n7KR5RfnQnXd3aixbgWB9553EUgpWmkvOKuXnv8nnE1q/Rw==","signatures":[{"sig":"MEMCH0zjw/YRtT9INZSwMOtB4uaQwuxpHJQOQmFhj8AFMGECIEp5pmbLhYPuWiZu0wxW641NNQjpiLacowfNqAWjh1w8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":456671},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"feaa2fc1451e1002a9a407b20fdfbce98436b0c4","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Email MCP server for Codex and Claude with IMAP, SMTP, Apple Mail, Microsoft, and Mailtrap","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^9.0.5","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_2.0.1_1788248790292_0.7869370709208594","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@1amsheldon/mail-mcp","version":"2.0.2","keywords":["mcp","mcp-server","model-context-protocol","email","mail","email-mcp","mail-mcp","imap","smtp","managesieve","gmail","outlook","exchange","apple-mail","microsoft-graph","ews","mailtrap","codex","claude","email-automation"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@2.0.2","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"3003fa7ec10cd9ceb21983e103654ac4324c088d","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-2.0.2.tgz","fileCount":58,"integrity":"sha512-LzzY3OChjZzs5clxh5uDW/Z4HZ0yrSyF2fD5fpczzqkPUiICtgz1BM2y57LStlP/Jjubr/xbvWIgaz5eaNgNwA==","signatures":[{"sig":"MEQCIAv7Z+vGTKD/Xg0+7xFLs+YqwZZoj1z3TWeO/LF9PQ9kAiAcfKyY6WUrte0Y5aVkXw5PLS/J53nfiYVdMJLGZY+AAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCKqAgbevL+hpKU2sIaFuBLmIxeET146PmDuSl4YA37DwIgBKGy3QDoNAX3KShE9nt37J+c9ZcGLlU5YwUaULAjVHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":457193},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"d7cd765cb9d476e397f792a081829ec3672bb97a","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Email MCP server for Codex and Claude with IMAP, SMTP, Apple Mail, Microsoft, and Mailtrap","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^10.0.9","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_2.0.2_1789410724950_0.6856097159177101","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@1amsheldon/mail-mcp","version":"2.1.2","keywords":["mcp","mcp-server","model-context-protocol","email","mail","email-mcp","mail-mcp","imap","smtp","managesieve","gmail","outlook","exchange","apple-mail","microsoft-graph","ews","mailtrap","codex","claude","email-automation"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@2.1.2","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"82b5eaf4790f4fe5fd89ecb7254e2158f05e2ee8","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-2.1.2.tgz","fileCount":58,"integrity":"sha512-j0LhfOTAmPuQjTpkYrfGW2a+W2XbYMtxC+rb1k1ACd1dtyK5dh2LKyti2PjaGDATe5MlUpKKzDfbCb2n1pYKEA==","signatures":[{"sig":"MEUCIEZFkFuXjiY5s1iX4CxxMTTzVYthry9aiQ7imMzWKjinAiEAs5xNFN6byQpVKsfL31EBnpmnFuw9BELGY24xxTMmKys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDgrKatxC/6hU4rb7dJUcyGEGZV52CA14+0VxKwgBy2eAIgBT19O6jd3Vg8aQY/ptFM6aZONYAXA9jdH9QSgI3IlMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@2.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":459221},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"eb36cfc4e02e96d4231b7f745d452b08ca8e91e1","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Email MCP server for Codex and Claude with IMAP, SMTP, Apple Mail, Microsoft, and Mailtrap","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^10.0.9","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_2.1.2_1789411260781_0.9272940965784768","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@1amsheldon/mail-mcp","version":"2.1.3","keywords":["mcp","mcp-server","model-context-protocol","email","mail","email-mcp","mail-mcp","imap","smtp","managesieve","gmail","outlook","exchange","apple-mail","microsoft-graph","ews","mailtrap","codex","claude","email-automation"],"author":{"name":"1amSheldon"},"license":"MIT","_id":"@1amsheldon/mail-mcp@2.1.3","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"homepage":"https://github.com/1amSheldon/mail-mcp#readme","bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"bin":{"mail-mcp":"dist/index.js"},"dist":{"shasum":"67bd49c18a480a1e882b26cdfc66e0bd4f90dfef","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-2.1.3.tgz","fileCount":58,"integrity":"sha512-LMI5kaJe0I62ajsoQe+nuQSTMp7STFUX7AxnByA1m2nYygLGwze+PD0xeBc1zYr47bZwLd8Ky/GBkKYqONQdqg==","signatures":[{"sig":"MEYCIQDJneTCHV9vcrVB0oCnKpsODIhCGiiWcwuVdomYPKhz0QIhAMCUjPL1fUj2f9g6icQeN8nyhxMKJtYKnQvueuXia4kb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHWBzoI4KmhkFrGhSDFfcYt/6ZMYde27cypX39j71HgEAiEA77+ytYG/oQpMriPi91VWAlgL7ZwE7LzUFc0HXx6A100=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@2.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":464893},"type":"module","engines":{"node":">=20.19.0"},"gitHead":"f2851fa878ce868fbc4fa6e4206c40c6248c182a","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Email MCP server for Codex and Claude with IMAP, SMTP, Apple Mail, Microsoft, and Mailtrap","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^10.0.9","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"tmp":"tmp/mail-mcp_2.1.3_1789505325315_0.11469129465192363","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"@1amsheldon/mail-mcp@3.0.0","bin":{"mail-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"dist":{"shasum":"7ed432506e429d81517bdb7699c7fec706087c19","tarball":"https://registry.npmjs.org/@1amsheldon/mail-mcp/-/mail-mcp-3.0.0.tgz","fileCount":60,"integrity":"sha512-5QrX5KSM8wnrFDi23qG4yQfbSf2xvL5b1UBvbj2Kst1ffaUyw9GrhHoev6s8Yt0gX+/Xd03CZyclvFIHt0FCfQ==","signatures":[{"sig":"MEUCIQCRqeIwesnmOyxXDLe+gPSXrAArRTOyFmOZZTWwSShb7wIgQFu/9xEgQx7Z2XyLxUgDLtPc4TJdbaTioWbUCo0yLAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDI/Orew2nprrLp5i3J6Dta/eu5QY0ecWXYoTKpgygXIQIgds/UvMKII9Sip97yu4RdaYnKXYsttX3zKUVTQV4Yl2w="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@1amsheldon%2fmail-mcp@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":516010},"name":"@1amsheldon/mail-mcp","type":"module","author":{"name":"1amSheldon"},"engines":{"node":">=20.19.0"},"gitHead":"587f09f04ad0c9bdf8ea57c83fa84d5e24f0cf12","license":"MIT","scripts":{"test":"vitest run","build":"npm run clean && tsc","clean":"node scripts/clean.mjs","start":"node dist/index.js","prepack":"npm run build","smoke:http":"node scripts/smoke-http.mjs","smoke:stdio":"node scripts/smoke-stdio.mjs","smoke:import":"node -e \"import('./dist/index.js')\"","check:english":"node scripts/check-english.mjs","release:check":"npm run build && npm run check:english && npm test && npm run test:integration && npm run smoke:stdio && npm run smoke:http && npm run smoke:import && npm audit","prepublishOnly":"npm run release:check","probe:mail-read":"node scripts/probe-mail-read.mjs","test:integration":"vitest run --config vitest.integration.config.ts","probe:draft-workflow":"node scripts/probe-draft-workflow.mjs","backup:windows-service":"powershell -NoProfile -ExecutionPolicy Bypass -File scripts/backup-windows-service.ps1"},"version":"3.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4a950003-66cb-4340-a6e3-5de961062db3"}},"homepage":"https://github.com/1amSheldon/mail-mcp#readme","keywords":["mcp","mcp-server","model-context-protocol","email","mail","email-mcp","mail-mcp","imap","smtp","managesieve","gmail","outlook","exchange","apple-mail","microsoft-graph","ews","mailtrap","codex","claude","email-automation"],"overrides":{"deepmerge-ts":"^8.0.0"},"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"_npmVersion":"11.9.0","description":"Email MCP server for Codex and Claude with IMAP, SMTP, Apple Mail, Microsoft, and Mailtrap","directories":{},"maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.4.3","imapflow":"^1.6.5","turndown":"^7.2.4","pdf-parse":"^2.4.5","smol-toml":"^1.8.0","mailparser":"^3.9.15","nodemailer":"^10.0.9","cross-keychain":"^1.1.0","rate-limiter-flexible":"^10.0.1","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.11","ts-node":"^10.9.2","typescript":"^5.9.3","@types/node":"^20.19.43","smtp-server":"^3.18.1","@types/turndown":"^5.0.6","@types/mailparser":"^3.4.6","@types/nodemailer":"^8.0.1","@types/smtp-server":"^3.5.13"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mail-mcp_3.0.0_1789997150470_0.3435044572665904"}}},"time":{"created":"2026-08-22T11:16:10.674Z","modified":"2026-09-21T13:25:50.925Z","1.5.0":"2026-08-22T11:16:11.020Z","1.5.1":"2026-08-30T15:55:27.640Z","1.5.2":"2026-08-30T16:33:36.433Z","1.5.3":"2026-08-30T17:01:18.788Z","1.5.4":"2026-08-30T18:07:30.028Z","1.5.5":"2026-08-30T18:21:46.454Z","1.6.0":"2026-08-30T19:10:47.384Z","2.0.0":"2026-08-31T17:44:54.695Z","2.0.1":"2026-09-01T07:46:30.410Z","2.0.2":"2026-09-14T18:32:05.057Z","2.1.2":"2026-09-14T18:41:00.917Z","2.1.3":"2026-09-15T20:48:45.416Z","3.0.0":"2026-09-21T13:25:50.578Z"},"bugs":{"url":"https://github.com/1amSheldon/mail-mcp/issues"},"author":{"name":"1amSheldon"},"license":"MIT","homepage":"https://github.com/1amSheldon/mail-mcp#readme","keywords":["mcp","mcp-server","model-context-protocol","email","mail","email-mcp","mail-mcp","imap","smtp","managesieve","gmail","outlook","exchange","apple-mail","microsoft-graph","ews","mailtrap","codex","claude","email-automation"],"repository":{"url":"git+https://github.com/1amSheldon/mail-mcp.git","type":"git"},"description":"Email MCP server for Codex and Claude with IMAP, SMTP, Apple Mail, Microsoft, and Mailtrap","maintainers":[{"name":"1amsheldon","email":"v.i.zubarev@bk.ru"}],"readme":"# mail-mcp\n\n[![npm](https://img.shields.io/npm/v/@1amsheldon/mail-mcp)](https://www.npmjs.com/package/@1amsheldon/mail-mcp)\n[![CI](https://github.com/1amSheldon/mail-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/1amSheldon/mail-mcp/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-111111.svg)](LICENSE)\n\nAn email MCP server for Codex, Claude Code, Claude Desktop, and other MCP clients. It connects to IMAP, SMTP, ManageSieve, Apple Mail, Microsoft Graph, Exchange Web Services, and Mailtrap without putting mail credentials in client configuration.\n\n## Backends\n\n| Backend | What it supports | Runtime requirement |\n| --- | --- | --- |\n| IMAP + SMTP | Cursor-based listing and search, stable message locators, raw RFC 822, folders, copy/move/trash/permanent delete, flags, threads, contacts, MIME drafts and sends, reply-all, attachments, delivery verification | Any provider exposing IMAP and SMTP |\n| ManageSieve | List, read, create, update, and delete server-side filters | A ManageSieve endpoint on the IMAP account |\n| Apple Mail | Accounts, mailboxes, messages, raw source, drafts, compose, reply, reply-all, forward, flags, move, trash, and rule management | macOS with Mail.app and Automation permission |\n| Microsoft Graph | Read by ID, Internet Message-ID lookup, thread lookup, send, reply, inline attachments, and large attachment upload sessions | Pre-provisioned Microsoft OAuth2 credentials |\n| Exchange Web Services | Search, read, and send through EWS with escaped XML payloads | EWS endpoint and pre-provisioned OAuth2 credentials |\n| Mailtrap | Send, templates, sandboxes, logs, statistics, inbound streams, domains, suppressions, webhooks, contacts, lists, fields, imports, exports, and campaigns | Mailtrap API token |\n\nGmail, Google Workspace, Mail.ru, iCloud, Fastmail, Yahoo, Zoho, and other standards-based providers use the IMAP + SMTP backend. POP3 and JMAP are not implemented.\n\n## Install\n\nRequirements:\n\n- Node.js 20.19 or newer\n- an operating-system credential store supported by `cross-keychain`\n- credentials for at least one backend\n\nAdd an account with the interactive backend wizard:\n\n```bash\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest accounts add\n```\n\nThe wizard supports IMAP/SMTP, Apple Mail, Microsoft Graph, EWS, and Mailtrap. List or remove configured accounts with:\n\n```bash\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest accounts list\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest accounts remove ACCOUNT_ID\n```\n\nAccount definitions are stored in `~/.config/mail-mcp/accounts.json`. Passwords, OAuth2 credentials, and API tokens are stored in the operating-system credential store under `com.1amsheldon.mail-mcp`.\n\n### Codex\n\n```bash\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest --install-codex\n```\n\nThe installer updates only `[mcp_servers.mail]`, backs up an existing config, and installs the bundled `mail-mcp` skill in `~/.codex/skills/mail-mcp`.\n\nOn Windows, it installs one authenticated Streamable HTTP service at `http://127.0.0.1:8765/mcp`. Every Codex conversation shares the same process and cached per-account connections, so opening more conversations does not create more mail sessions. A supervised task starts it at sign-in, checks health, and applies later npm releases after a graceful restart.\n\nOn macOS and Linux, the installer writes an auto-updating stdio entry. To select stdio explicitly on any platform:\n\n```bash\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest --install-codex-stdio\n```\n\nAdd `--read-only` to either installer command to expose only read tools. Restart Codex after installation.\n\n### Claude Desktop\n\n```bash\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest --install-claude\n```\n\nThe installer preserves other MCP servers, creates `claude_desktop_config.json.mail-mcp.bak` when replacing an existing file, and writes an `npx` command that checks for the latest release when Claude starts the server. Add `--read-only` for read-only access, then restart Claude Desktop.\n\n### Claude Code\n\n```bash\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest --install-claude-code\n```\n\nThe installer delegates configuration to the official [`claude mcp` CLI](https://code.claude.com/docs/en/mcp), registers `mail` at user scope, and installs the bundled workflow in `~/.claude/skills/mail-mcp`. Replacing an existing `mail` registration is transactional: the installer backs up `~/.claude.json` and restores it byte-for-byte if registration or skill installation fails. Native Windows uses the required `cmd /c npx` wrapper; macOS, Linux, and WSL use `npx` directly. Add `--read-only` for read-only access, then restart Claude Code.\n\n### Other MCP clients\n\nRun the server over stdio:\n\n```text\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest --confirm --audit-log --redact\n```\n\nExample Codex-compatible TOML:\n\n```toml\n[mcp_servers.mail]\ncommand = \"npx\"\nargs = [\"-y\", \"--prefer-online\", \"@1amsheldon/mail-mcp@latest\", \"--confirm\", \"--audit-log\", \"--redact\"]\nenabled = true\nstartup_timeout_sec = 30.0\ntool_timeout_sec = 300.0\n```\n\nDo not put passwords, refresh tokens, client secrets, API tokens, or HTTP bearer tokens in MCP configuration.\n\n## Agent workflow\n\nThe server publishes the `mail://agent-guide` resource and the `mail_agent_workflow` prompt. The Codex installer also installs the same workflow as a skill.\n\nThe important rules are short:\n\n1. Call `list_accounts` and inspect backend capabilities before choosing an operation.\n2. For IMAP/SMTP, call `listFolders` before assuming mailbox names. For Apple Mail, use `apple.listMailboxes`. Microsoft and Mailtrap expose provider resources instead of a universal folder list.\n3. For IMAP/SMTP, start `listMessages` or `searchMessages` without a cursor, then pass `nextCursor` back unchanged. Use the matching provider-prefixed operation for other backends. Offset pagination is rejected.\n4. Keep the returned locator. It binds the account, mailbox, UIDVALIDITY, and UID so mailbox changes cannot silently retarget an operation.\n5. Read a message before replying, forwarding, moving, deleting, changing flags, or fetching attachments.\n6. Prefer a draft when recipients or wording are not final.\n7. Never retry `smtp_outcome_unknown` automatically. Use `verifySentMessage` with the returned Message-ID first.\n\nIMAP cursor snapshots are capped at 10,000 UIDs and hydrate only the requested page. Page size is capped at 100.\n\n### Keyword search\n\nUse `mail_query` with `searchMessages` for IMAP accounts:\n\n```json\n{\n  \"accountId\": \"work\",\n  \"operation\": \"searchMessages\",\n  \"input\": {\n    \"folder\": \"INBOX\",\n    \"keywordsAny\": [\"invoice\", \"payment overdue\"],\n    \"excludeKeywords\": [\"newsletter\"],\n    \"keywordScope\": \"all\",\n    \"unread\": true,\n    \"since\": \"2026-09-01\",\n    \"limit\": 20,\n    \"headerOnly\": true\n  }\n}\n```\n\n- `keywordsAll`: every word or phrase must match.\n- `keywordsAny`: at least one word or phrase must match.\n- `excludeKeywords`: none may match.\n- `keywordScope`: `body` (default), `subject`, or `all` (headers and body).\n- `unread` and `flagged`: filter message state; `false` selects read or unflagged messages.\n\nCombine these with `from`, `to`, `cc`, `subject`, `messageId`, `since`, and `before`. Different filter groups are combined with AND. Array elements are literal substrings, not regular expressions or an AI relevance score. Each list accepts up to 20 terms of up to 256 characters. Matching and language behavior depend on the IMAP provider. The existing `keywords` string searches a literal phrase in the body.\n\nSearch runs on the mail server and fetches only the requested result page. Use `headerOnly: true` to avoid body snippets. To continue, repeat the same filters with `cursor` set to `nextCursor`; changing filters requires a new search. Apple Mail and Microsoft use their provider-specific search operations.\n\n## MCP surface\n\nThe server exposes three tools instead of publishing a separate JSON schema for every operation:\n\n| Tool | Purpose |\n| --- | --- |\n| `list_accounts` | Discover configured accounts, backends, and capabilities |\n| `mail_query` | Read, search, inspect, and render mail data |\n| `mail_mutate` | Draft, send, organize, delete, and configure mail |\n\nOperations are routed through those two tools rather than registered as separate tools or servers. Detailed input rules are loaded on demand through the `mail://agent-guide` resource and the `mail_agent_workflow` prompt, keeping the initial tool catalog small.\n\nBoth routers use the same envelope:\n\n```json\n{\n  \"accountId\": \"work\",\n  \"operation\": \"listMessages\",\n  \"input\": {\n    \"folder\": \"INBOX\",\n    \"limit\": 25\n  }\n}\n```\n\nUse `mail_query` for `listMessages`, `searchMessages`, `readMessage`, `listFolders`, threads, attachments, statistics, contacts, templates, delivery verification, and filter reads. Use `mail_mutate` for sends, drafts, replies, forwarding, mailbox changes, labels, flags, Trash, permanent deletion, OAuth registration, and filter changes.\n\nProvider operations use a prefix, for example `apple.listMessages`, `microsoft.searchMessages`, or `mailtrap.templates`. Mailtrap keeps its resource action inside `input`:\n\n```json\n{\n  \"accountId\": \"mailtrap\",\n  \"operation\": \"mailtrap.templates\",\n  \"input\": { \"operation\": \"list\" }\n}\n```\n\n`microsoft.searchMessages` is available through EWS. Microsoft Graph supports ID lookup, Internet Message-ID lookup, and thread lookup instead.\n\nMoving to Trash and permanent deletion remain separate operations: `moveToTrash` and `permanentlyDelete`.\n\n## Account configuration\n\nThe CLI writes secret-free JSON. Optional IMAP/SMTP fields include:\n\n- `signature`: append a signature to sends and drafts.\n- `allowedRecipients`: exact addresses or domains such as `@example.org`.\n- `allowedAttachmentRoots`: real paths from which file attachments may be loaded. Base64 attachments do not use filesystem paths.\n- `fromAliases`: approved From addresses.\n- `smtpSecurity`: `tls`, `starttls`, or `plain`; plaintext SMTP is restricted to loopback hosts.\n- `sentPolicy`: `auto`, `always`, or `never` for providers that save Sent mail themselves.\n- `sentFolder`: explicit Sent-folder override.\n- `manageSievePort`: enable server-side filter tools.\n\nApple Mail accounts also accept `allowedAttachmentRoots`. Path-based attachments are disabled until at least one root is configured, and symlinks cannot escape those roots.\n\nMail.app automation is useful for native rules and accounts that do not expose server credentials, but AppleScript scans can be slow on large mailboxes. Configure the same mailbox through the IMAP + SMTP backend when fast server-side listing and search are required; use the Apple Mail backend only for Mail.app-specific operations.\n\nIMAP/SMTP OAuth2 uses pre-provisioned XOAUTH2 credentials and refreshes them at runtime. The package does not create provider applications or run browser consent flows.\n\nFor Gmail, the shortest personal setup is usually a Google app password with 2-Step Verification enabled:\n\n| Setting | Value |\n| --- | --- |\n| IMAP host | `imap.gmail.com` |\n| IMAP port | `993` |\n| SMTP host | `smtp.gmail.com` |\n| SMTP port | `465` for implicit TLS or `587` for STARTTLS |\n| User | full Gmail or Workspace address |\n| Password | app password, not the normal account password |\n\nManaged Google environments may require OAuth2 instead.\n\n## Guarded writes\n\n```bash\nmail-mcp --read-only\nmail-mcp --allow-tools createDraft,moveMessage\nmail-mcp --confirm --audit-log --redact\n```\n\n- `--read-only` removes `mail_mutate`.\n- `--allow-tools` narrows `mail_mutate` to named operations. Version 1 internal names remain accepted as CLI selectors during upgrades, but they are not advertised as MCP tools.\n- `--confirm` requires a short-lived confirmation ID bound to the exact tool arguments.\n- `--audit-log` writes JSONL diagnostics to `~/.config/mail-mcp/audit.log`.\n- `--redact` masks selected sensitive values before content reaches the client.\n\nNested audit fields are sanitized. Provider errors are reduced to safe codes and request metadata instead of returning raw response bodies or process stderr.\n\n## Delivery states\n\n### Server drafts\n\nFor IMAP/SMTP accounts, `createDraft` returns a stable `draftId`. Keep it to edit or send the same draft later:\n\n```json\n{\"accountId\":\"work\",\"operation\":\"updateDraft\",\"input\":{\"draftId\":\"returned-id\",\"changes\":{\"subject\":\"Revised subject\",\"textBody\":\"Ready for review.\"}}}\n```\n\n```json\n{\"accountId\":\"work\",\"operation\":\"sendDraft\",\"input\":{\"draftId\":\"returned-id\"}}\n```\n\nBoth calls use `mail_mutate`. Supply `locator` instead of `draftId` to use an existing server draft. Updates accept `to`, `cc`, `bcc`, `subject`, `textBody`, `htmlBody`, and `attachments`. Omitted fields stay unchanged. An attachment list replaces the old list; `[]` clears it. Changing a body format removes unspecified alternatives so old HTML cannot override new plain text.\n\nSending reads the latest server content, preserves MIME bodies and reply headers, and excludes Bcc headers from the transmitted message while keeping those recipients in the SMTP envelope. The unchanged draft moves to Trash only after full recipient acceptance and a confirmed Sent copy. Partial or uncertain delivery retains the draft and must not trigger an automatic resend.\n\nDelivery records in `~/.config/mail-mcp/draft-state` prevent repeated calls from resending a recorded attempt, including after a restart. Keep this directory when moving an installation. This protection applies to this installation, not independent sends from webmail or another computer. Do not schedule the same draft in both places.\n\nInterrupted replacements and stale process locks require inspection; the service does not guess which copy to delete or resend. IMAP cannot atomically compare and replace a draft, so avoid editing it in webmail during an update or send. If webmail replaces both its UID and Message-ID, select the current draft again.\n\n### SMTP results\n\nSMTP acceptance and the Sent-folder copy are independent. Send, reply, and forward return structured results:\n\n| Status | Meaning |\n| --- | --- |\n| `sent_and_saved` | SMTP accepted every recipient and IMAP confirmed the Sent copy |\n| `partially_sent_and_saved` | SMTP accepted some recipients and IMAP confirmed the Sent copy |\n| `smtp_accepted_sent_not_confirmed` | SMTP accepted the message, but the Sent copy was not confirmed |\n| `smtp_partially_accepted_sent_not_confirmed` | Partial SMTP acceptance without a confirmed Sent copy |\n| `smtp_rejected` | SMTP rejected every recipient |\n| `smtp_connection_failed` | The connection failed before a confirmed delivery attempt |\n| `smtp_outcome_unknown` | Delivery may have happened; do not retry automatically |\n\nUse `retrySafe`, `messageId`, and the `verifySentMessage` query operation. Absence from Sent is not proof that SMTP delivery failed.\n\n## Shared HTTP service\n\nManual loopback start:\n\n```powershell\n$env:MAIL_MCP_BEARER_TOKEN = '<random-token>'\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest --http --host 127.0.0.1 --port 8765 --confirm --audit-log --redact\n```\n\n`GET /health` reports version, start time, and active session count. `POST /mcp` requires the bearer token. Keep the bind address on loopback unless an authenticated reverse proxy protects the server.\n\nIf the managed service restarts after sleep or an automatic update, requests carrying an older MCP session ID are recovered without requiring the chat to be reopened. Within each service process, the mail connection cache, pagination snapshots, rate limits, and pending write confirmations are shared by ordinary and recovered requests.\n\n## Updates\n\nManaged Codex and Claude installations run `@1amsheldon/mail-mcp@latest`. Updates replace package code only; account JSON and keychain credentials remain in their existing user directories.\n\nVersion 2 changes the MCP tool surface from individual operation names to `mail_query` and `mail_mutate`. Restart the MCP client after upgrading so it refreshes the tool list. Stored accounts and credentials do not need migration.\n\nVersion 3 keeps the same three-tool interface and adds server draft editing/sending and keyword filters. Accounts and credentials stay in place; draft delivery records are created on first use. Refresh the client's tool catalog or restart the client to discover the new operations.\n\nThe Windows service checks npm every six hours. It stops accepting new requests, gives in-flight requests up to eight seconds to finish, and then restarts on the new package. Stdio clients update when the MCP process next starts.\n\nWindows logon and watchdog tasks use a windowless launcher. Managed services created by older versions migrate their scheduled-task action when the updated service next starts; the previous task definition is saved as `~/.config/mail-mcp/service/task-before-windowless.xml`.\n\nIf a Windows installation predates 2.1.3, run `npx -y --prefer-online @1amsheldon/mail-mcp@latest --install-codex` once from outside a source checkout to replace the old supervisor as well. The new supervisor installs package updates without lifecycle scripts and launches Node directly, avoiding the `npx`/`cmd.exe` process chain that can open Windows Terminal. Accounts and credentials are preserved.\n\nIf an older installation pins an exact version, run its installer command again.\n\nRe-running `--install-codex` on an existing Windows HTTP installation preserves its bearer token. When the connection settings are unchanged, existing chats can continue after the service updates without restarting Codex.\n\n## Connection diagnostics\n\n```bash\nnpx -y --prefer-online @1amsheldon/mail-mcp@latest --validate-accounts\n```\n\nChecks configured IMAP connections and SMTP hosts without sending mail. Prints a result for each connection and a total of passed, failed, and skipped probes. Exits with code `1` if a probe fails or no IMAP accounts are configured; otherwise exits with `0`. This command does not validate Apple Mail, Microsoft API, or Mailtrap accounts.\n\n## Develop\n\n```bash\ngit clone https://github.com/1amSheldon/mail-mcp.git\ncd mail-mcp\nnpm ci\nnpm run release:check\nnpm pack --dry-run\n```\n\n`release:check` builds the package, enforces English repository text, runs the complete test suite, exercises stdio and HTTP transports, checks importability, and runs `npm audit`.\n\nThe default suite uses protocol and provider mocks. It does not access a real mailbox, send mail, call Microsoft or Mailtrap, or automate Mail.app. `--validate-accounts` opens configured IMAP and SMTP connections without sending a message.\n\n### Local Windows build\n\n\nAfter building and testing, `node dist/index.js --install-codex-local` runs that checkout as the shared Windows service. This disables npm refresh and runtime auto-update for that installation. Rebuild and rerun the installer to update it. Use `--install-codex` to return to the published npm package. Account definitions and credentials are reused.\n\n`npm run backup:windows-service` backs up the task, service files, and Codex configuration under the local mail-mcp configuration directory. Keep these backups private. `npm run probe:draft-workflow -- --check` checks the draft operation catalog and lists folders without writing mail. It requires `MAIL_MCP_ACCOUNT_ID` and `MAIL_MCP_BEARER_TOKEN`. The separate `--prepare` mode creates and updates a test draft and must be explicitly requested; it never sends.\n\n## Release\n\nPublishing is handled by `.github/workflows/publish.yml`. Publish a GitHub Release whose tag is `v` followed by the exact version in `package.json`. GitHub Actions verifies the tag and publishes to npm through OIDC trusted publishing; the workflow contains no npm token.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}