{"_id":"mcp-mailtrap","_rev":"15-b3ead52397323677c5041e2987e26c41","name":"mcp-mailtrap","dist-tags":{"latest":"0.7.0"},"versions":{"0.0.1":{"name":"mcp-mailtrap","version":"0.0.1","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.0.1","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/railsware/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"015f2bce574340958dbf8e90a2f54064804b2942","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.0.1.tgz","fileCount":10,"integrity":"sha512-kTEGyT6Gu2jcELQFzBJYA9m4aLZ3QvMGswTGo+tRyMvbpaqfyI/THoinvzueSNZWKzNqgxfVEkKZZBRwPQkH0Q==","signatures":[{"sig":"MEQCIEQTHHtRcf6nzqoT/pOTMM6fDy7tPM92HX+HCcppqlYhAiAZZuQwtip+3e3JNvCI8CHxy/4RcdvkqOoH8ehasMvOcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11033},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"6030eff2055c76a9a4ca5e61d963ead1bc3524f2","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","lint:tsc":"tsc -p . --noEmit --incremental false","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"_npmVersion":"10.9.2","description":"Official MCP Server for Mailtrap","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.0.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.6.0","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.0.1_1743772689185_0.30430363629666823","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"mcp-mailtrap","version":"0.0.2","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.0.2","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/railsware/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"d3bbed4f84faebcda3a4e62a65bc3ea77b59397c","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.0.2.tgz","fileCount":10,"integrity":"sha512-neELPGNurzr8SQ4nlGIfG4yb98dfFg84kDacx2oJcGjtJt7c5TXbjWbN/1teMUkDRNfJQC5sBI6l7jjctf9cdQ==","signatures":[{"sig":"MEUCIQCa50Z/ZXRcwBy59Gm08yIxqIYraSaF1DZwWipAkZS1dgIgUxU2697d6OPXXT6oOuvRMnekhAEyafP97YkJ/TIAoSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12582},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"e124ea9fa5428ed01d431fe781319cfefa05f85d","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","lint:tsc":"tsc -p . --noEmit --incremental false","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"repository":{"url":"git+https://github.com/railsware/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Official MCP Server for Mailtrap","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.0.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.6.0","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.0.2_1743777684537_0.5568891975077397","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"mcp-mailtrap","version":"0.0.3","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.0.3","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/railsware/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"ae93c479e75ca56d8e5b97b5f8eef6550e3ac276","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.0.3.tgz","fileCount":22,"integrity":"sha512-KiiBl4w+g+Br+ZEsplOZz/dYCroWsSU06l1LB+o27z5YgOsA0FslMRxaDy8LZfxvaXp0ixUiMJhI0qSwTuNu+A==","signatures":[{"sig":"MEUCICquCvRm8g9a7KtJwGLomu6FmZWqJtCLV/wIq6lLHn6dAiEAs9YxYPg/FVhwrnAR9aFEjsVUsOjK6fFYFOEC6g8wvTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36708},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"efb4a8a9e3f96419f1ca9adc2b12f2f2eaccb34f","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","lint:tsc":"tsc -p . --noEmit --incremental false","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"repository":{"url":"git+https://github.com/railsware/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Official MCP Server for Mailtrap","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.2.0","@modelcontextprotocol/sdk":"^1.8.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.14.1","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.0.3_1756900447730_0.3678674296986859","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"mcp-mailtrap","version":"0.0.4","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.0.4","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"aee49db0a8c0d2742af3e278e11a092d633a3a07","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.0.4.tgz","fileCount":23,"integrity":"sha512-o/jG65dc2ani5JaF1R+FFJrqP+9zqDwL7nONgsPvbxLluQRJpRNKcU766djNrGsHZnSUbhHZrV6viIdRFUcv/w==","signatures":[{"sig":"MEYCIQDFNenjpwBMaMATXDXIA7K03RlcMMKgITtw6CAGa1g3qwIhAN1LdiUNYwHgnkkeCvya9ERPLGM/OMifffFxaT1+gH7R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43592},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"75737e09f9ccaed3d53d4399a88961879d39d766","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Official MCP Server for Mailtrap","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.3.0","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^1.1.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.0.4_1761311978851_0.2626552931362207","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"mcp-mailtrap","version":"0.0.5","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.0.5","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"6d0ab91b9840caa236196ac1304939557773bb79","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.0.5.tgz","fileCount":23,"integrity":"sha512-aGSJJdRbCzgIjHQbbJX2pjDsVzbiEfggFIOQXm+6M2B/YghZ/2FIVnHa9HMrqxnLptIYwGSWPN5bw6417z54Lg==","signatures":[{"sig":"MEUCICKupvUz0HPjHqroPaE1TsVM+tF/MoXv9q932f/L0tSpAiEAidIEq/sMbd9yXk38jBwqAoMHn6Npfkr9R3uY3/WXuUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44947},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"7f338ee69f8f573f2929ba5346ff4466cc1c3016","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Official MCP Server for Mailtrap","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.3.0","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^1.1.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.0.5_1762858758262_0.29218005830403726","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"mcp-mailtrap","version":"0.1.0","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.1.0","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"bdd3d64f7c59d9cb641a70984796b326de2ce04c","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.1.0.tgz","fileCount":27,"integrity":"sha512-OgZ4y/fnP4G17cSLo3qGSGrId+zp5t79j3t999WJA5K35AsN78iK07JGTniSN2gPePeh5gTSQYe1IaDG8aTj/Q==","signatures":[{"sig":"MEQCIGfjEWrziNrBR4mxGHKcXo5sXwFHJVga9ERIwjMqRxpDAiB+U+kIBKQBNuY6juo3jvjTMgiedu0AZMXM0hOPXR6SPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54770},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"d0b3d2482b5b83199f3fdd737400006b9fb6a716","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Official MCP Server for Mailtrap","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.4.0","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^1.1.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.1.0_1765297704997_0.11954905274553118","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"mcp-mailtrap","version":"0.2.0","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.2.0","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"545c1815d13ae44b3f49cfcd71efa6192fcc8ac2","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.2.0.tgz","fileCount":62,"integrity":"sha512-yddidVfi6K6vs9oxjMqSPv/jQiTKLAkJ093Bg6GrdkGd/aj6gETIJfN54SPGqvItl4eUwertPbmvXm/8uOuSmQ==","signatures":[{"sig":"MEYCIQCbFfyWbieiNzqJGPhY5QaoJmVTCUz44y0+tdItwJu+gQIhANtdbsjhqmHlUglyttdwRN1ADpFSuL0FrrLfYFJgVLHX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141979},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"d6201c44dda4255b5721349558b952587c10ceae","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Official MCP Server for Mailtrap","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.5.1","mailsplit":"^5.4.6","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^1.1.1","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.2.0_1774893474746_0.16409196115270608","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"mcp-mailtrap","version":"0.3.0","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.3.0","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"2def7bcf7dc5312b44bbd42864be315748854c1a","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.3.0.tgz","fileCount":64,"integrity":"sha512-Ew2F0M+lJegQRuWWz638kAvk3HF/cq4K5jPuPsCbBwB6ewl6TXA3OD50raqjcLCRs7PU4ByTeVlz3R3YmnYkgw==","signatures":[{"sig":"MEUCIFIMnVRRLf7vMqL5gMzzhNTjzxDpoNNuv+mcdmdIUGpRAiEAiRJDHfC66H4NbLwKYnJiyMXsSh00zV7Ct5QnBjuKYNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145293},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"ec92130b330f14e98bedde4986fee63e68391e79","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"overrides":{"tmp":"0.2.5","@typescript-eslint/typescript-estree":{"minimatch":"9.0.7"}},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Official MCP Server for Mailtrap","directories":{},"resolutions":{"tmp":"0.2.5","@typescript-eslint/typescript-estree/minimatch":"9.0.7"},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.5.1","mailsplit":"^5.4.6","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^2.1.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.3.0_1774966657497_0.8155935605884317","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"mcp-mailtrap","version":"0.4.0","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.4.0","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"6e4f870c12e0c9d4d861e40515b5c1e95257d316","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.4.0.tgz","fileCount":64,"integrity":"sha512-SQGd9qjoWKwsrkUr4xb3e+hDibI5j8MqNGsIpS3yxRQDytHB5f/pRMrDDflyOnVLDic7AqpcsPMpsVdLrFFSFg==","signatures":[{"sig":"MEQCICkJaV7i+OY0xqAX6JMCVuerYx97FBDQz0NyVPV4EhgQAiA7k/Pcz/kHhV0TUjfzyg3f0oZtKDifgeqEyEglQEZ2qg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151542},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"cfe5b3d689c9308bf9305044d45e3d6b7e6433bc","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"overrides":{"tmp":"0.2.5","@typescript-eslint/typescript-estree":{"minimatch":"9.0.7"}},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Official MCP Server for Mailtrap","directories":{},"resolutions":{"tmp":"0.2.5","@typescript-eslint/typescript-estree/minimatch":"9.0.7"},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.5.1","mailsplit":"^5.4.6","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^2.1.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.4.0_1778588640121_0.6029938213981798","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"mcp-mailtrap","version":"0.4.1","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.4.1","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"21cbd637daeac915a81162237f1899f0ed10b3c7","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.4.1.tgz","fileCount":192,"integrity":"sha512-XE+Cm4ktbmT/FMo4RwHfHwC4BzJoFvhOyQw9q8jiXuveOaunY4I24kbPOxrtXqjguvzHOrowbjHWrvoaokbkcA==","signatures":[{"sig":"MEQCID+xF9J32ijgVN7/bHSqHRmRnm89xs7ELGF+PmutOgfHAiBfnvgjc7RXh+O0fXopqz+R0ZTohw5/l/wJ3Btr8bLefg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311605},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"cc69606f5718bcfd8946db84cfcfc9d357f5640b","mcpName":"io.mailtrap/mcp","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","mcp:cli":"npx @modelcontextprotocol/inspector --cli  node dist/index.js","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"mailtrap","email":"support@mailtrap.io"},"overrides":{"tmp":"0.2.5","@typescript-eslint/typescript-estree":{"minimatch":"9.0.7"}},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Official MCP Server for Mailtrap","directories":{},"resolutions":{"tmp":"0.2.5","@typescript-eslint/typescript-estree/minimatch":"9.0.7"},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.6.0","mailsplit":"^5.4.6","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^2.1.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.4.1_1781095530401_0.9065932540700907","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"mcp-mailtrap","version":"0.4.2","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.4.2","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"13756e072ed8ebe58bc8fce1f4cc222f96e0f4c9","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.4.2.tgz","fileCount":193,"integrity":"sha512-VA7CIdMsdtRCdtkUkQVIcYwKXcwrMfdz2E+FHLvIqCtBo80MmN/OEvISuWV2GFYVKYYEZU4W7bOYs9mIiG73yQ==","signatures":[{"sig":"MEUCIG0/y9hqQUiuDQ7ZIaFmnLO5CWcGka676VdQG6D+v8ysAiEA/NUpe99M3OEO1UYvsl5k3Y3DfhtMnPRm4jwBI9RJAHo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311915},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"155e5be7f5eddae8577117a40fbdf5b48aab2d45","mcpName":"io.mailtrap/mcp","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","mcp:cli":"npx @modelcontextprotocol/inspector --cli  node dist/index.js","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3157d962-8e99-4b96-b13a-45fa25a46c4e"}},"overrides":{"tmp":"0.2.5","@typescript-eslint/typescript-estree":{"minimatch":"9.0.7"}},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Official MCP Server for Mailtrap","directories":{},"resolutions":{"tmp":"0.2.5","@typescript-eslint/typescript-estree/minimatch":"9.0.7"},"_nodeVersion":"24.17.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.6.0","mailsplit":"^5.4.6","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^2.1.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.4.2_1782306130678_0.8535178317006293","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"mcp-mailtrap","version":"0.4.3","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.4.3","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"70e9ae8c322a6b162f37a0c24e72cf85710c403c","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.4.3.tgz","fileCount":193,"integrity":"sha512-oV+xERIun7xQlb8OA0fEr1RwJatACq11boIRd358V4cVeyShmctvWGvgK9J8pX34VZk1NLnktSUJl2PqaO9WLA==","signatures":[{"sig":"MEQCIFGpQ+1AEbMSp/wqKzwAy4t2p7a4DkRFgYo3IsMLD9J7AiAyk9KHbeDozacRb6o+BmeoxOKV2DWgrg3K1bhoG5Mvww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311915},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"64a29b48bcfb4ee15c5c61b9b5908f554f2ca274","mcpName":"io.mailtrap/mcp","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","mcp:cli":"npx @modelcontextprotocol/inspector --cli  node dist/index.js","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3157d962-8e99-4b96-b13a-45fa25a46c4e"}},"overrides":{"tmp":"0.2.5","@typescript-eslint/typescript-estree":{"minimatch":"9.0.7"}},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Official MCP Server for Mailtrap","directories":{},"resolutions":{"tmp":"0.2.5","@typescript-eslint/typescript-estree/minimatch":"9.0.7"},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.6.0","mailsplit":"^5.4.6","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^2.1.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.4.3_1782307169008_0.3272706443249569","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"mcp-mailtrap","version":"0.5.0","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.5.0","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"6035e21228cf94b1d6df715e13ddb7d09a07f391","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.5.0.tgz","fileCount":193,"integrity":"sha512-UHJYOgY2KJNEpFa6iYZxPvZMv47gNb80zwV8rE/csBz1+rl84c47q1xdQ/GsSL4FgW4sAFnf7MDDkAuqgsZdsA==","signatures":[{"sig":"MEQCIF4YcCkxzwIi12wwz2wRB5KVv7+B/q7L5bxV9Zf5+q7sAiB8GafKSg6DBATVzNqbAmRrAGK36q8i2sgamI3hOwHijw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315795},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"672b92585f839e94b78ae982691991ae5a781b11","mcpName":"io.mailtrap/mcp","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","mcp:cli":"npx @modelcontextprotocol/inspector --cli  node dist/index.js","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3157d962-8e99-4b96-b13a-45fa25a46c4e"}},"overrides":{"tmp":"0.2.5","@typescript-eslint/typescript-estree":{"minimatch":"9.0.7"}},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official MCP Server for Mailtrap","directories":{},"resolutions":{"tmp":"0.2.5","@typescript-eslint/typescript-estree/minimatch":"9.0.7"},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.7.0","mailsplit":"^5.4.6","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^2.1.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.5.0_1784783583887_0.5032055632648997","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"mcp-mailtrap","version":"0.6.0","author":{"name":"Railsware Products Studio LLC"},"license":"MIT","_id":"mcp-mailtrap@0.6.0","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"homepage":"https://mailtrap.io","bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap":"dist/index.js","mcp-mailtrap-server":"dist/index.js"},"dist":{"shasum":"c06ef84b2897041e3856e5a10385889c53af0f94","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.6.0.tgz","fileCount":234,"integrity":"sha512-xDgUdqX6y6XbAp+J6NsACjpMJiGKl8qyEMHGkXHSnKR23TYJ1KAnMAMR6OjIchhShwsb1mkx9HNZXt1UpKaBFQ==","signatures":[{"sig":"MEQCIFk2EoltPvRSokQFzwvUq4JTrhLpGa9bjEaEKmGpT9FhAiB/Yovz09teq19FSYqyidHnjBmsnQNEQWkG+krm4jjgtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379728},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"gitHead":"2d143016b5d8ca9208e58df8506a9f0fc34d75aa","mcpName":"io.mailtrap/mcp","scripts":{"dev":"npx @modelcontextprotocol/inspector node dist/index.js","lint":"npm run lint:eslint && npm run lint:tsc","test":"jest","build":"shx rm -rf dist && tsc --project tsconfig.build.json","mcp:cli":"npx @modelcontextprotocol/inspector --cli  node dist/index.js","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","lint:tsc":"tsc -p . --noEmit --incremental false","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","prepublish":"npm run build && shx chmod +x dist/index.js","test:watch":"jest --watch","lint:eslint":"npx eslint . --ext .js,.ts","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3157d962-8e99-4b96-b13a-45fa25a46c4e"}},"overrides":{"tmp":"0.2.7","@hono/node-server":"2.0.11","@typescript-eslint/typescript-estree":{"minimatch":{".":"9.0.7","brace-expansion":"5.0.8"}}},"repository":{"url":"git+https://github.com/mailtrap/mailtrap-mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"Official MCP Server for Mailtrap","directories":{},"resolutions":{"tmp":"0.2.7","@hono/node-server":"2.0.11","@typescript-eslint/typescript-estree/minimatch":"9.0.7"},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.24.2","dotenv":"^16.4.7","mailtrap":"^4.8.0","mailsplit":"^5.4.6","@modelcontextprotocol/sdk":"^1.18.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","eslint":"^8.2.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^2.8.8","typescript":"^5.8.2","@types/jest":"^29.5.12","@types/node":"^22.13.13","@anthropic-ai/mcpb":"^2.1.2","eslint-plugin-import":"^2.29.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^6.19.0","eslint-config-airbnb-base":"^15.0.0","@modelcontextprotocol/inspector":"^0.16.6","eslint-config-airbnb-typescript":"^17.0.0","@typescript-eslint/eslint-plugin":"^6.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-mailtrap_0.6.0_1785224442071_0.7801822830273477","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"mcp-mailtrap","version":"0.7.0","mcpName":"io.mailtrap/mcp","description":"Official MCP Server for Mailtrap","license":"MIT","author":{"name":"Railsware Products Studio LLC"},"homepage":"https://mailtrap.io","repository":{"type":"git","url":"git+https://github.com/mailtrap/mailtrap-mcp.git"},"bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"bin":{"mcp-mailtrap-server":"dist/index.js","mcp-mailtrap":"dist/index.js"},"engines":{"node":">=16.20.1","yarn":">=1.22.17"},"scripts":{"lint":"npm run lint:eslint && npm run lint:tsc","lint:eslint":"npx eslint . --ext .js,.ts","lint:tsc":"tsc -p . --noEmit --incremental false","build":"shx rm -rf dist && tsc --project tsconfig.build.json","prepublish":"npm run build && shx chmod +x dist/index.js","dev":"npx @modelcontextprotocol/inspector node dist/index.js","dev:mcpb":"npx @modelcontextprotocol/inspector node dist/index.js","mcp:cli":"npx @modelcontextprotocol/inspector --cli  node dist/index.js","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","mcpb:pack":"npm run build && npx @anthropic-ai/mcpb pack . mailtrap-mcp.mcpb","mcpb:sign":"npx @anthropic-ai/mcpb sign mailtrap-mcp.mcpb","mcpb:info":"npx @anthropic-ai/mcpb info mailtrap-mcp.mcpb"},"dependencies":{"@modelcontextprotocol/sdk":"^1.18.2","dotenv":"^16.4.7","mailsplit":"^5.4.6","mailtrap":"^4.8.0","zod":"^3.24.2"},"overrides":{"@typescript-eslint/typescript-estree":{"minimatch":{".":"9.0.7","brace-expansion":"5.0.8"}},"@hono/node-server":"2.0.11","tmp":"0.2.7"},"resolutions":{"@typescript-eslint/typescript-estree/minimatch":"9.0.7","@hono/node-server":"2.0.11","tmp":"0.2.7"},"devDependencies":{"@anthropic-ai/mcpb":"^2.1.2","@modelcontextprotocol/inspector":"^0.16.6","@types/jest":"^29.5.12","@types/node":"^22.13.13","@typescript-eslint/eslint-plugin":"^6.19.0","@typescript-eslint/parser":"^6.19.0","eslint":"^8.2.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-airbnb-typescript":"^17.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.29.1","eslint-plugin-prettier":"^4.0.0","jest":"^29.7.0","prettier":"^2.8.8","shx":"^0.3.4","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.8.2"},"gitHead":"98ba8a808fadcb71bb0254783e92a39205997985","_id":"mcp-mailtrap@0.7.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-ygnnZ9+cr8o8w40BD1IIUsgVdVkWe34RxKxPftO5A0G9W0TaBfidjXVmtC5frm3E24agC78bWTRzfAUjEAiYsQ==","shasum":"f81cce3af7dbdf0d5995b961970dc3142ead5241","tarball":"https://registry.npmjs.org/mcp-mailtrap/-/mcp-mailtrap-0.7.0.tgz","fileCount":235,"unpackedSize":383498,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICZBFydGrcPFZ8TD6K63picjMKggUPdIfm6WDLJS+jx6AiEAwhZoEFLlBhIkmV8KlgHqSSJTIbNUVdn2bxeQQEHUiG8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3157d962-8e99-4b96-b13a-45fa25a46c4e"}},"directories":{},"maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-mailtrap_0.7.0_1785843314411_0.725288891851235"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-04T13:18:09.185Z","modified":"2026-08-04T11:35:14.693Z","0.0.1":"2025-04-04T13:18:09.372Z","0.0.2":"2025-04-04T14:41:24.734Z","0.0.3":"2025-09-03T11:54:07.916Z","0.0.4":"2025-10-24T13:19:39.061Z","0.0.5":"2025-11-11T10:59:18.452Z","0.1.0":"2025-12-09T16:28:25.154Z","0.2.0":"2026-03-30T17:57:54.896Z","0.3.0":"2026-03-31T14:17:37.638Z","0.4.0":"2026-05-12T12:24:00.348Z","0.4.1":"2026-06-10T12:45:30.584Z","0.4.2":"2026-06-24T13:02:10.878Z","0.4.3":"2026-06-24T13:19:29.181Z","0.5.0":"2026-07-23T05:13:04.022Z","0.6.0":"2026-07-28T07:40:42.210Z","0.7.0":"2026-08-04T11:35:14.538Z"},"bugs":{"url":"https://github.com/mailtrap/mailtrap-mcp/issues"},"author":{"name":"Railsware Products Studio LLC"},"license":"MIT","homepage":"https://mailtrap.io","repository":{"type":"git","url":"git+https://github.com/mailtrap/mailtrap-mcp.git"},"description":"Official MCP Server for Mailtrap","maintainers":[{"name":"mailtrap","email":"support@mailtrap.io"}],"readme":"![TypeScript](https://img.shields.io/npm/types/mailtrap?logo=typescript&logoColor=white&label=%20)\n[![test](https://github.com/mailtrap/mailtrap-mcp/actions/workflows/main.yml/badge.svg)](https://github.com/mailtrap/mailtrap-mcp/actions/workflows/main.yml)\n[![NPM](https://shields.io/npm/v/mcp-mailtrap?logo=npm&logoColor=white)](https://www.npmjs.com/package/mcp-mailtrap)\n\n# MCP Mailtrap Server\n\nAn MCP server that provides tools for sending and testing in sandbox via Mailtrap.\n\n## Prerequisites\n\nBefore using this MCP server, you need to:\n\n1. [Create a Mailtrap account](https://mailtrap.io/signup)\n2. [Verify your domain](https://mailtrap.io/sending/domains)\n3. Get your API token from [Mailtrap API settings](https://mailtrap.io/api-tokens)\n4. Get your Account ID from [Mailtrap account management](https://mailtrap.io/account-management)\n\n**Required Environment Variables:**\n\n- `MAILTRAP_API_TOKEN` - Required for all functionality\n- `MAILTRAP_ACCOUNT_ID` - Required for templates, stats, email logs, sandbox list/show, and sending domains. Optional only for send-email and send-sandbox-email.\n\n**Optional (can be passed as tool parameters instead):**\n\n- `DEFAULT_FROM_EMAIL` - Default sender email when `from` is not provided to send-email or send-sandbox-email. Enables switching sender per call via the `from` parameter.\n- `MAILTRAP_TEST_INBOX_ID` - Default test inbox ID for sandbox tools when `test_inbox_id` is not provided. Enables switching between inboxes per call via the `test_inbox_id` parameter.\n- `MAILTRAP_SANDBOX_ID` - Default sandbox ID for sandbox tools when `sandbox_id` is not provided. Enables switching between sandboxes per call via the `sandbox_id` parameter.\n- `MAILTRAP_ORGANIZATION_ID` - Required for organization tools (`list-sub-accounts`, `create-sub-account`).\n- `MAILTRAP_ORGANIZATION_API_TOKEN` - Organization-scoped API token. Required for organization tools (separate from `MAILTRAP_API_TOKEN`).\n\n## Quick Install\n\n[![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=mailtrap&config=eyJlbnYiOnsiTUFJTFRSQVBfQVBJX1RPS0VOIjoieW91cl9tYWlsdHJhcF9hcGlfdG9rZW4iLCJERUZBVUxUX0ZST01fRU1BSUwiOiJ5b3VyX3NlbmRlckBleGFtcGxlLmNvbSIsIk1BSUxUUkFQX0FDQ09VTlRfSUQiOiJ5b3VyX2FjY291bnRfaWQiLCJNQUlMVFJBUF9URVNUX0lOQk9YX0lEIjoieW91cl90ZXN0X2luYm94X2lkIn0sImNvbW1hbmQiOiJucHggLXkgbWNwLW1haWx0cmFwIn0%3D)\n\n[![Install with Node in VS Code](https://img.shields.io/badge/VS_Code-Node-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=mailtrap&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22mcp-mailtrap%22%5D%2C%22env%22%3A%7B%22MAILTRAP_API_TOKEN%22%3A%22%24%7Binput%3AmailtrapApiToken%7D%22%2C%22DEFAULT_FROM_EMAIL%22%3A%22%24%7Binput%3AsenderEmail%7D%22%2C%22MAILTRAP_ACCOUNT_ID%22%3A%22%24%7Binput%3AmailtrapAccountId%7D%22%2C%22MAILTRAP_TEST_INBOX_ID%22%3A%22%24%7Binput%3AmailtrapTestInboxId%7D%22%7D%7D&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22mailtrapApiToken%22%2C%22description%22%3A%22Mailtrap+API+Token%22%2C%22password%22%3Atrue%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22senderEmail%22%2C%22description%22%3A%22Sender+Email+Address%22%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22mailtrapAccountId%22%2C%22description%22%3A%22Mailtrap+Account+ID%22%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22mailtrapTestInboxId%22%2C%22description%22%3A%22Mailtrap+Test+Inbox+ID+%28optional%29%22%7D%5D)\n\n### Smithery CLI\n\n[Smithery](https://github.com/smithery-ai/cli) is a registry installer and manager for MCP servers that works with all AI clients.\n\n```\nnpx @smithery/cli install mailtrap\n```\n\n> Smithery automatically handles client configuration and provides an interactive setup process. It's the easiest way to get started with MCP servers locally.\n\n## Setup\n\n### Claude Desktop\n\nUse MCPB to install the Mailtrap server. You can find those files in [Releases](https://github.com/mailtrap/mailtrap-mcp/releases). <br>Download .MCPB file and open it. If you have Claude Desktop - it will open it and suggest to configure.\n\n### Claude Desktop or Cursor\n\nAdd the following configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"mailtrap\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-mailtrap\"],\n      \"env\": {\n        \"MAILTRAP_API_TOKEN\": \"your_mailtrap_api_token\",\n        \"DEFAULT_FROM_EMAIL\": \"your_sender@example.com\",\n        \"MAILTRAP_ACCOUNT_ID\": \"your_account_id\",\n        \"MAILTRAP_TEST_INBOX_ID\": \"your_test_inbox_id\"\n      }\n    }\n  }\n}\n```\n\nIf you are using `asdf` for managing Node.js you must use absolute path to executable (example for Mac)\n\n```json\n{\n  \"mcpServers\": {\n    \"mailtrap\": {\n      \"command\": \"/Users/<username>/.asdf/shims/npx\",\n      \"args\": [\"-y\", \"mcp-mailtrap\"],\n      \"env\": {\n        \"PATH\": \"/Users/<username>/.asdf/shims:/usr/bin:/bin\",\n        \"ASDF_DIR\": \"/opt/homebrew/opt/asdf/libexec\",\n        \"ASDF_DATA_DIR\": \"/Users/<username>/.asdf\",\n        \"ASDF_NODEJS_VERSION\": \"20.6.1\",\n        \"MAILTRAP_API_TOKEN\": \"your_mailtrap_api_token\",\n        \"DEFAULT_FROM_EMAIL\": \"your_sender@example.com\",\n        \"MAILTRAP_ACCOUNT_ID\": \"your_account_id\",\n        \"MAILTRAP_TEST_INBOX_ID\": \"your_test_inbox_id\"\n      }\n    }\n  }\n}\n```\n\n#### Claude Desktop config file location\n\n**Mac**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n#### Cursor config file location\n\n**Mac**: `~/.cursor/mcp.json`\n\n**Windows**: `%USERPROFILE%\\.cursor\\mcp.json`\n\n### VS Code\n\n#### Manually changing config\n\nRun in Command Palette: `Preferences: Open User Settings (JSON)`\n\nThen, in the settings file, add the following configuration:\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"mailtrap\": {\n        \"command\": \"npx\",\n        \"args\": [\"-y\", \"mcp-mailtrap\"],\n        \"env\": {\n          \"MAILTRAP_API_TOKEN\": \"your_mailtrap_api_token\",\n          \"DEFAULT_FROM_EMAIL\": \"your_sender@example.com\",\n          \"MAILTRAP_ACCOUNT_ID\": \"your_account_id\",\n          \"MAILTRAP_TEST_INBOX_ID\": \"your_test_inbox_id\"\n        }\n      }\n    }\n  }\n}\n```\n\n> [!TIP]\n> Don't forget to restart your MCP server after changing the \"env\" section.\n\n### MCP Bundle (MCPB)\n\nFor easy installation in hosts that support MCP Bundles, you can distribute an `.mcpb` bundle file.\n\n```bash\n# Build TypeScript and pack the MCPB bundle\nnpm run mcpb:pack\n\n# Inspect bundle metadata\nnpm run mcpb:info\n\n# Sign the bundle for distribution (optional)\nnpm run mcpb:sign\n```\n\nThis creates `mailtrap-mcp.mcpb` using the repository `manifest.json` and built artifacts in `dist/`.\n\n## Usage\n\nOnce configured, you can ask agent to send emails and manage templates, for example:\n\n**Email Sending Operations:**\n\n- \"Send an email to john.doe@example.com with the subject 'Meeting Tomorrow' and a friendly reminder about our upcoming meeting.\"\n- \"Email sarah@example.com about the project update, and CC the team at team@example.com\"\n- \"Send the welcome template (uuid `b81aabcd-1a1e-41cf-91b6-eca0254b3d96`) to new@example.com with variables `{ name: 'Alex' }`\"\n- \"Send a sandbox email to test@example.com with subject 'Test Template' to preview how our welcome email looks\"\n\n**Email Logs (debug delivery):**\n\n- \"List my recent sent email logs\"\n- \"Show email logs for emails sent to user@example.com\"\n- \"Get the email log message for ID abc-123-uuid to check delivery status\"\n\n**Sending Statistics:**\n\n- \"Get sending stats for January 2025\"\n- \"Show delivery rates broken down by domain for last month\"\n- \"What are my email stats by category from 2025-01-01 to 2025-01-31?\"\n\n**Sandbox Operations:**\n\n- \"Get all messages from my sandbox inbox\"\n- \"Show me the first page of sandbox messages\"\n- \"Search for messages containing 'test' in my sandbox inbox\"\n- \"Show me the details of sandbox message with ID 5159037506\"\n\n**Template Operations:**\n\n- \"List all email templates in my Mailtrap account\"\n- \"Create a new email template called 'Welcome Email' with subject 'Welcome to our platform!'\"\n- \"Update the template with ID 12345 to change the subject to 'Updated Welcome Message'\"\n- \"Delete the template with ID 67890\"\n\n**Sending Domains:**\n\n- \"List my sending domains\"\n- \"Get sending domain with ID 3938\"\n- \"Create a sending domain for example.com\"\n- \"Delete sending domain 3938\"\n- \"Get sending domain 3938 with DNS setup instructions\"\n\n## Available Tools\n\n### send-email\n\nSends a transactional email through Mailtrap. Supports two mutually exclusive modes — **inline content** (`subject` + `text`/`html`) or **template-based** (`template_uuid`).\n\n**Parameters:**\n\n- `from` (optional): Sender as `{ email, name? }` (a bare email string is also accepted at runtime). If not provided, `DEFAULT_FROM_EMAIL` is used.\n- `to` (optional): Array of recipients as `{ email, name? }` objects (bare email strings, or a single non-array address, are also accepted at runtime). Optional if `cc` or `bcc` is provided; at least one of `to` / `cc` / `bcc` must contain a recipient.\n- `cc` (optional): Array of CC recipients as `{ email, name? }` objects (bare email strings also accepted at runtime).\n- `bcc` (optional): Array of BCC recipients as `{ email, name? }` objects (bare email strings also accepted at runtime).\n- `subject` (conditional): Email subject line. Required for inline sends; must be omitted when `template_uuid` is set.\n- `text` (conditional): Email body text. Required (alongside or instead of `html`) for inline sends; must be omitted when `template_uuid` is set.\n- `html` (conditional): HTML version of the email body. Required (alongside or instead of `text`) for inline sends; must be omitted when `template_uuid` is set.\n- `category` (optional): Email category for tracking and analytics. Must be omitted when `template_uuid` is set.\n- `template_uuid` (optional): Use a Mailtrap email template instead of inline content. When set, `subject` / `text` / `html` / `category` must be omitted (per Mailtrap API).\n- `template_variables` (optional): Object of variables substituted into the template referenced by `template_uuid`. Only allowed together with `template_uuid`.\n\n### batch-send-transactional-email\n\nSends a batch of transactional emails in one Mailtrap API call (default sending stream). Shared fields go on `base`; per-recipient overrides go in `requests[]`. Each request must include at least one recipient via `to`, `cc`, or `bcc`. Same inline-vs-template mutual exclusion as `send-email` — checked after merging base with each request.\n\n**Parameters:**\n\n- `base` (optional): Object with fields shared across the batch.\n  - `from` (optional): Sender as `{ email, name? }` (a bare email string is also accepted at runtime). Falls back to `DEFAULT_FROM_EMAIL`.\n  - `reply_to` (optional): Reply-to address.\n  - `subject` / `text` / `html` / `category` (optional, inline mode): Default content for every request.\n  - `template_uuid` / `template_variables` (optional, template mode): Default template + variables. Mutually exclusive with the inline fields.\n  - `custom_variables` (optional): Default custom variables (string-valued).\n  - `headers` (optional): Default custom headers.\n- `requests` (required): Non-empty array of per-recipient messages. Each entry has:\n  - `to` (optional): Array of recipients as `{ email, name? }` objects (bare email strings, or a single non-array address, are also accepted at runtime). Optional if `cc` or `bcc` is provided; at least one of `to` / `cc` / `bcc` must contain a recipient.\n  - `cc`, `bcc`, `reply_to` (optional).\n  - Inline (`subject`/`text`/`html`/`category`) or template (`template_uuid`/`template_variables`) overrides; any field omitted falls back to the matching `base` value.\n  - `custom_variables`, `headers` (optional).\n\n### batch-send-bulk-email\n\nSends a batch of bulk emails through Mailtrap's bulk-stream API. Same `base` + `requests[]` shape, validation, and inline-vs-template rules as `batch-send-transactional-email` — the only difference is that this tool routes the call through the bulk endpoint instead of the transactional one. See the parameters above.\n\n### list-email-logs\n\nLists sent email logs (delivery history) with optional pagination and filters. Use to debug delivery issues from the IDE.\n\n**Parameters:**\n\n- `search_after` (optional): Pagination cursor from the previous response's `next_page_cursor`\n- `sent_after` (optional): ISO 8601 date/time; only logs sent after this time\n- `sent_before` (optional): ISO 8601 date/time; only logs sent before this time\n- `from_email` (optional): Filter by sender email; use with `from_operator` (default: ci_equal)\n- `to_email` (optional): Filter by recipient email; use with `to_operator` (default: ci_equal)\n- `status` (optional): Filter by delivery status: delivered, not_delivered, enqueued, opted_out; use with `status_operator` (default: equal)\n- `subject` (optional): Filter by email subject; use with `subject_operator` (default: ci_contain). Use `subject_operator`: empty/not_empty to filter by presence of subject.\n- `sending_domain_id` (optional): Filter by sending domain ID (number); use with `sending_domain_id_operator` (default: equal)\n- `sending_stream` (optional): Filter by stream: transactional or bulk; use with `sending_stream_operator` (default: equal)\n- `events` (optional): Filter by event type(s): delivery, open, click, bounce, spam, unsubscribe, soft_bounce, reject, suspension; use with `events_operator` (include_event / not_include_event)\n- `clicks_count` / `opens_count` (optional): Filter by click/open count; use with `*_operator`: equal, greater_than, less_than\n- `client_ip` / `sending_ip` (optional): Filter by IP; use with `*_operator`: equal, not_equal, contain, not_contain\n- `email_service_provider_response` (optional): Filter by provider response text; use with `*_operator` (ci_contain, etc.)\n- `email_service_provider` (optional): Filter by provider (exact); use with `*_operator`: equal, not_equal\n- `recipient_mx` (optional): Filter by recipient MX; use with `recipient_mx_operator` (ci_contain, etc.)\n- `category` (optional): Filter by email category; use with `category_operator`: equal, not_equal\n\nAll parameters are optional.\n\n### get-email-log-message\n\nGets a single email log message by ID (UUID): a readable summary (from, to, subject, sent time, status, category, stream, engagement, delivery context), then detailed event history. Optionally, with `include_content: true`, you can also load and show the message body (HTML and plain text) when Mailtrap exposes a raw message URL.\n\n**Parameters:**\n\n- `message_id` (required): UUID of the email log message (from send response or list-email-logs). Use `list-email-logs` to find message IDs.\n- `include_content` (optional): When `true`, fetches the raw EML (if `raw_message_url` is available) and appends parsed HTML and plain-text body sections, similar to show-sandbox-email-message.\n\n### get-sending-stats\n\nGet email sending statistics (delivery, bounce, open, click, spam rates) for a date range. Optionally break down by domain, category, email service provider, or date. Check delivery rates without leaving the editor.\n\n**Parameters:**\n\n- `start_date` (required): Start date for the stats range (YYYY-MM-DD)\n- `end_date` (required): End date for the stats range (YYYY-MM-DD)\n- `breakdown` (optional): How to break down the stats: `aggregated` (default), `by_domain`, `by_category`, `by_email_service_provider`, or `by_date`\n- `sending_domain_ids` (optional): Limit results to these sending domain IDs (array of integers)\n- `sending_streams` (optional): Limit to `transactional` and/or `bulk` (array of strings)\n- `categories` (optional): Limit to these email categories (array of strings)\n- `email_service_providers` (optional): Limit to these providers, e.g. Google, Yahoo, Outlook (array of strings)\n\n### create-template\n\nCreates a new email template in your Mailtrap account.\n\n**Parameters:**\n\n- `name` (required): Name of the template\n- `subject` (required): Email subject line\n- `html` (or `text` is required): HTML content of the template\n- `text` (or `html` is required): Plain text version of the template\n- `category` (optional): Template category (defaults to \"General\")\n\n### list-templates\n\nLists all email templates in your Mailtrap account.\n\n**Parameters:**\n\n- No parameters required\n\n### get-template\n\nGet a single email template by ID, including subject, category, and HTML/text body.\n\n**Parameters:**\n\n- `template_id` (required): ID of the template to fetch\n\n### update-template\n\nUpdates an existing email template.\n\n**Parameters:**\n\n- `template_id` (required): ID of the template to update\n- `name` (optional): New name for the template\n- `subject` (optional): New email subject line\n- `html` (optional): New HTML content of the template\n- `text` (optional): New plain text version of the template\n- `category` (optional): New category for the template\n\n> [!NOTE]\n> At least one updatable field (name, subject, html, text, or category) must be provided when calling update-template to perform an update.\n\n### delete-template\n\nDeletes an existing email template.\n\n**Parameters:**\n\n- `template_id` (required): ID of the template to delete\n\n### send-sandbox-email\n\nSends an email to your Mailtrap test inbox for development and testing purposes. This is perfect for testing email templates without sending emails to real recipients. Supports the same two modes as `send-email` — **inline content** or **template-based** (`template_uuid`).\n\n**Parameters:**\n\n- `test_inbox_id` (optional): Mailtrap test inbox ID. Required unless `MAILTRAP_TEST_INBOX_ID` is set; pass per call to target a specific inbox.\n- `from` (optional): Sender as `{ email, name? }` (a bare email string is also accepted at runtime). If not provided, `DEFAULT_FROM_EMAIL` is used.\n- `to` (optional): Array of recipients as `{ email, name? }` objects (bare email strings in the array, or a comma-separated string of plain emails, are also accepted at runtime). Optional if `cc` or `bcc` is provided; at least one of `to` / `cc` / `bcc` must contain a recipient.\n- `cc` (optional): Array of CC recipients as `{ email, name? }` objects (bare email strings also accepted at runtime).\n- `bcc` (optional): Array of BCC recipients as `{ email, name? }` objects (bare email strings also accepted at runtime).\n- `subject` (conditional): Email subject line. Required for inline sends; must be omitted when `template_uuid` is set.\n- `text` (conditional): Email body text. Required (alongside or instead of `html`) for inline sends; must be omitted when `template_uuid` is set.\n- `html` (conditional): HTML version of the email body. Required (alongside or instead of `text`) for inline sends; must be omitted when `template_uuid` is set.\n- `category` (optional): Email category for tracking. Must be omitted when `template_uuid` is set.\n- `template_uuid` (optional): Use a Mailtrap email template instead of inline content. When set, `subject` / `text` / `html` / `category` must be omitted.\n- `template_variables` (optional): Object of variables substituted into the template referenced by `template_uuid`. Only allowed together with `template_uuid`.\n\n> [!NOTE]\n> For sandbox tools, provide `test_inbox_id` in the tool call or set the `MAILTRAP_TEST_INBOX_ID` environment variable. You can switch between inboxes per call by passing `test_inbox_id`.\n\n### get-sandbox-messages\n\nRetrieves a list of messages from your Mailtrap test inbox. Useful for checking what emails have been received in your sandbox during testing.\n\n**Parameters:**\n\n- `page` (optional): Page number for pagination (minimum: 1)\n- `last_id` (optional): Pagination using last message ID. Returns messages after the specified message ID (minimum: 1)\n- `search` (optional): Search query to filter messages\n\n> [!NOTE]\n> All parameters are optional. If none are provided, the first page of messages from the inbox will be returned. Use page for traditional pagination, last_id for cursor-based pagination, or search to filter messages by content.\n\n### show-sandbox-email-message\n\nShows detailed information and content of a specific email message from your Mailtrap test inbox, including HTML and text body content.\n\n**Parameters:**\n\n- `message_id` (required): ID of the sandbox email message to retrieve\n\n> [!NOTE]\n> Use `get-sandbox-messages` first to get the list of messages and their IDs, then use this tool to view the full content of a specific message.\n\n### get-sandbox-project\n\nGet a sandbox project by ID, including its inboxes and email counts.\n\n**Parameters:**\n\n- `project_id` (required): ID of the project to fetch\n\n### update-sandbox-project\n\nRename an existing sandbox project.\n\n**Parameters:**\n\n- `project_id` (required): ID of the project to update\n- `name` (required): New name for the project (2–100 characters)\n\n### list-sandboxes\n\nList every sandbox accessible to the API token across all projects.\n\n**Parameters:**\n\n- No parameters required\n\n### mark-sandbox-as-read\n\nMark all messages in a sandbox as read.\n\n**Parameters:**\n\n- `sandbox_id` (required): ID of the sandbox to act on\n\n### reset-sandbox-credentials\n\nReset the SMTP credentials for a sandbox. Returns the new username/password.\n\n**Parameters:**\n\n- `sandbox_id` (required): ID of the sandbox to act on\n\n### enable-sandbox-email-address\n\nEnable the receive-by-email address for a sandbox (turns on the Mailtrap address that delivers messages to the sandbox via SMTP).\n\n**Parameters:**\n\n- `sandbox_id` (required): ID of the sandbox to act on\n\n### reset-sandbox-email-address\n\nGenerate a new receive-by-email address for a sandbox.\n\n**Parameters:**\n\n- `sandbox_id` (required): ID of the sandbox to act on\n\n### forward-sandbox-message\n\nForward a sandbox message to an external email address. Counts against your monthly forwarding quota.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message to forward\n- `email` (required): Email address to forward the message to\n\n### update-sandbox-message\n\nMark a sandbox message as read or unread.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message to update\n- `is_read` (required): `true` marks as read, `false` marks as unread\n\n### delete-sandbox-message\n\nDelete a single sandbox message.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message to delete\n\n### get-sandbox-message-spam-score\n\nGet the SpamAssassin spam report for a sandbox message (score, rules, full report). Standalone alternative to `include_spam_report: true` on `show-sandbox-email-message`.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### get-sandbox-message-html-analysis\n\nGet the HTML analysis report for a sandbox message (client compatibility scores, problematic elements). Standalone alternative to `include_html_analysis: true` on `show-sandbox-email-message`.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### get-sandbox-message-headers\n\nGet the parsed mail headers for a sandbox message.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### get-sandbox-message-html\n\nGet the rendered HTML body of a sandbox message.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### get-sandbox-message-text\n\nGet the plain-text body of a sandbox message.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### get-sandbox-message-raw\n\nGet the raw, MIME-formatted message (headers + body) for a sandbox message.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### get-sandbox-message-eml\n\nGet the message rendered as an EML file payload (suitable for attaching to a ticket or importing into another mail client).\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### get-sandbox-message-html-source\n\nGet the unrendered HTML source of a sandbox message (HTML before any Mailtrap-side transformations like CID-link rewrites).\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### list-sandbox-attachments\n\nList all attachments on a sandbox message (filename, content type, size, download path).\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message\n\n### get-sandbox-attachment\n\nGet metadata and download URL for a single attachment.\n\n**Parameters:**\n\n- `sandbox_id` (optional): Sandbox ID. Falls back to `MAILTRAP_SANDBOX_ID`.\n- `message_id` (required): ID of the sandbox message that contains the attachment\n- `attachment_id` (required): ID of the attachment to fetch\n\n### list-sending-domains\n\nList sending domains and their DNS verification status.\n\n**Parameters:**\n\n- No parameters required\n\n### get-sending-domain\n\nGet a sending domain by ID and its verification status (including DNS records). Optionally include DNS setup instructions by setting `include_setup_instructions` to `true`.\n\n**Parameters:**\n\n- `sending_domain_id` (required): Sending domain ID\n- `include_setup_instructions` (optional): If `true`, append DNS setup instructions to the response. Default: `false`\n\n### create-sending-domain\n\nCreate a new sending domain. After creation, add DNS records to verify the domain (use get-sending-domain with `include_setup_instructions: true` to see the records).\n\n**Parameters:**\n\n- `domain_name` (required): Domain name (e.g. example.com)\n\n### delete-sending-domain\n\nDelete a sending domain.\n\n**Parameters:**\n\n- `sending_domain_id` (required): Sending domain ID to delete\n\n### send-sending-domain-setup-instructions\n\nEmail DNS setup instructions for a sending domain to a given address. Useful for forwarding DNS records to a DevOps teammate.\n\n**Parameters:**\n\n- `sending_domain_id` (required): Sending domain ID\n- `email` (required): Email address to send DNS setup instructions to\n\n### list-suppressions\n\nList or search suppressions (hard bounces, spam complaints, unsubscriptions, manual imports). Returns up to 1000 results per call.\n\n**Parameters:**\n\n- `email` (optional): Email filter. Returns only suppressions matching this address.\n\n### delete-suppression\n\nDelete a suppression by ID. Mailtrap will resume delivery to this email unless it gets suppressed again.\n\n**Parameters:**\n\n- `suppression_id` (required): ID of the suppression to delete\n\n### list-webhooks\n\nList all webhooks configured for the account. Returns the full webhook records as JSON.\n\n**Parameters:**\n\n- No parameters required\n\n### get-webhook\n\nGet a single webhook by ID. Returns the full webhook record as JSON. Note: `signing_secret` is **not** returned here — it is only available in the response from `create-webhook`.\n\n**Parameters:**\n\n- `webhook_id` (required): ID of the webhook to fetch\n\n### create-webhook\n\nCreate a webhook. The response includes a `signing_secret` for verifying webhook payload signatures — this secret is returned **only on creation**, so store it now. If you lose it, recreate the webhook.\n\n**Parameters:**\n\n- `url` (required): URL Mailtrap will POST webhook events to\n- `webhook_type` (required): `\"email_sending\"`, `\"audit_log\"`, or `\"inbound_receiving\"`\n- `active` (optional, boolean): defaults to `true`\n- `payload_format` (optional): `\"json\"` or `\"jsonlines\"`. Defaults to `\"json\"`\n- `sending_stream` (optional, `email_sending` only): `\"transactional\"` or `\"bulk\"`\n- `event_types` (optional, `email_sending` only): array of `delivery`, `soft_bounce`, `bounce`, `suspension`, `unsubscribe`, `open`, `spam_complaint`, `click`, `reject`\n- `domain_id` (optional, `email_sending` only): sending domain ID to scope this webhook to\n- `inbound_inbox_id` (optional, `inbound_receiving` only): ID of the inbound inbox the webhook is linked to; omit to apply to all inboxes in the account\n\n### update-webhook\n\nUpdate a webhook's mutable fields. `webhook_type`, `sending_stream`, and `domain_id` cannot be changed after creation — recreate the webhook if you need to change those.\n\n**Parameters:**\n\n- `webhook_id` (required): ID of the webhook to update\n- `url` (optional): New webhook URL\n- `active` (optional, boolean): Enable or disable the webhook\n- `payload_format` (optional): `\"json\"` or `\"jsonlines\"`\n- `event_types` (optional, `email_sending` only): array of `delivery`, `soft_bounce`, `bounce`, `suspension`, `unsubscribe`, `open`, `spam_complaint`, `click`, `reject`\n- `inbound_inbox_id` (optional, `inbound_receiving` only): ID of the inbound inbox the webhook is linked to\n\n### delete-webhook\n\nPermanently delete a webhook by ID. Returns the deleted webhook record.\n\n**Parameters:**\n\n- `webhook_id` (required): ID of the webhook to delete\n\n### get-contact\n\nGet a contact by ID or email. Returns the full contact record (list memberships, status, custom fields).\n\n**Parameters:**\n\n- `contact_identifier` (required): Contact ID or email address\n\n### create-contact\n\nCreate a new contact.\n\n**Parameters:**\n\n- `email` (required): Email address\n- `fields` (optional): Custom field values keyed by merge tag (e.g. `first_name`). String, number, or boolean values\n- `list_ids` (optional): IDs of contact lists to subscribe this contact to\n- `unsubscribed` (optional, boolean): Create the contact in `unsubscribed` status\n\n### update-contact\n\nUpdate an existing contact identified by ID or email. `list_ids` replaces the contact's full membership set; `list_ids_included`/`list_ids_excluded` add/remove without disturbing the rest.\n\n**Parameters:**\n\n- `contact_identifier` (required): Contact ID or email\n- `email` (optional): New email address\n- `fields` (optional): Custom field values keyed by merge tag\n- `list_ids` (optional): Replace membership set with this exact list\n- `list_ids_included` (optional): List IDs to add (additive)\n- `list_ids_excluded` (optional): List IDs to remove\n- `unsubscribed` (optional, boolean): Set to `unsubscribed` (true) or `subscribed` (false)\n\n### delete-contact\n\nPermanently delete a contact by ID or email. Returns the deleted contact record when the API responds with one; otherwise returns a confirmation payload.\n\n**Parameters:**\n\n- `contact_identifier` (required): Contact ID or email\n\n### create-contact-event\n\nRecord a contact event against a contact (by ID or email). Used to trigger contact-list automations.\n\n**Parameters:**\n\n- `contact_identifier` (required): Contact ID or email\n- `name` (required): Event name (matches automation triggers)\n- `params` (required): Object of arbitrary key/value pairs. Values may be string, number, boolean, or null\n\n### list-contact-lists\n\nList all contact lists for the account.\n\n**Parameters:**\n\n- `search` (optional): Filter contact lists by name (case-insensitive match), e.g. `news`\n\n### get-contact-list\n\nGet a contact list by ID.\n\n**Parameters:**\n\n- `list_id` (required): ID of the contact list to fetch\n\n### create-contact-list\n\nCreate a new contact list.\n\n**Parameters:**\n\n- `name` (required): Name for the new list\n\n### update-contact-list\n\nRename an existing contact list.\n\n**Parameters:**\n\n- `list_id` (required): ID of the contact list\n- `name` (required): New name for the list\n\n### delete-contact-list\n\nPermanently delete a contact list by ID.\n\n**Parameters:**\n\n- `list_id` (required): ID of the contact list to delete\n\n### list-contact-fields\n\nList all contact field definitions for the account.\n\n**Parameters:**\n\n- No parameters required\n\n### get-contact-field\n\nGet a contact field definition by ID.\n\n**Parameters:**\n\n- `field_id` (required): ID of the contact field\n\n### create-contact-field\n\nCreate a new contact field definition. `merge_tag` must be unique within the account and is used as the placeholder name in template variables.\n\n**Parameters:**\n\n- `name` (required): Display name (e.g. \"First Name\")\n- `merge_tag` (required): Unique placeholder name (e.g. `first_name`)\n- `data_type` (required): One of `text`, `number`, `boolean`, `date`\n\n### update-contact-field\n\nUpdate a contact field definition. Any combination of `name`, `merge_tag`, and `data_type` can be changed.\n\n**Parameters:**\n\n- `field_id` (required): ID of the contact field\n- `name` (optional): New display name\n- `merge_tag` (optional): New merge tag (must remain unique)\n- `data_type` (optional): One of `text`, `number`, `boolean`, `date`\n\n### delete-contact-field\n\nPermanently delete a contact field definition by ID.\n\n**Parameters:**\n\n- `field_id` (required): ID of the contact field to delete\n\n### create-contact-import\n\nBulk import contacts. Returns an import job record; poll its status with `get-contact-import`.\n\n**Parameters:**\n\n- `contacts` (required): Array of contact entries. Each entry needs:\n  - `email` (required): Contact email address\n  - `fields` (optional): Custom field values keyed by merge tag (string or number values)\n  - `list_ids_included` (optional): List IDs to add the contact to\n  - `list_ids_excluded` (optional): List IDs to remove the contact from\n\n### get-contact-import\n\nGet the status of a contact import job (created/started/finished/failed) with created/updated/over-limit counts.\n\n**Parameters:**\n\n- `import_id` (required): ID of the contact import job\n\n### create-contact-export\n\nExport contacts matching a set of AND-combined filters. Returns an export job record; poll status with `get-contact-export` to retrieve the download URL once `status` is `finished`.\n\n**Parameters:**\n\n- `filters` (required): Array of filter objects. Each has:\n  - `name` (required): Field to filter on (`list_id`, `subscription_status`, `email`, etc.)\n  - `operator` (required): One of `equal`, `not_equal`, `contains`, `not_contains`, `is_empty`, `is_not_empty`\n  - `value` (required): Comparison value (string, number, boolean, or array)\n\n### get-contact-export\n\nGet the status of a contact export job. Once `status` is `finished`, the `url` field holds the CSV download link.\n\n**Parameters:**\n\n- `export_id` (required): ID of the contact export job\n\n### list-accounts\n\nList Mailtrap accounts the current API token can access, with each account's access levels.\n\n**Parameters:**\n\n- No parameters required\n\n### get-billing-usage\n\nGet the current billing cycle usage for the account: sending and testing plans, limits, and current counts.\n\n**Parameters:**\n\n- No parameters required\n\n### list-account-accesses\n\nList account accesses (users, invites, API tokens) for the account. Optional filters narrow the result to specific resources. Requires account admin/owner permissions.\n\n**Parameters:**\n\n- `domain_uuids` (optional): Filter by sending domain UUIDs (array of strings)\n- `inbox_ids` (optional): Filter by sandbox inbox IDs (array of strings)\n- `project_ids` (optional): Filter by sandbox project IDs (array of strings)\n\n### remove-account-access\n\nRemove an account access by ID. For `User` specifiers this revokes their permissions; for `Invite` or `ApiToken` specifiers it removes the specifier entirely. Requires admin/owner.\n\n**Parameters:**\n\n- `account_access_id` (required): ID of the access record to remove\n\n### get-permission-resources\n\nGet all resources (inboxes, projects, domains, billing, account) to which the API token has admin access, nested by hierarchy.\n\n**Parameters:**\n\n- No parameters required\n\n### bulk-update-permissions\n\nBulk create, update, or destroy permissions for a single account access. Existing `(resource_type, resource_id)` pairs are updated; new ones are created. Set `destroy: true` on an entry to remove it.\n\n**Parameters:**\n\n- `account_access_id` (required): Target account access ID\n- `permissions` (required): Array of permission entries. Each has:\n  - `resource_id` (required): Resource ID (number or string)\n  - `resource_type` (required): One of `account`, `project`, `inbox`, `domain`, `billing`\n  - `access_level` (optional): `admin`/`100` or `viewer`/`10`\n  - `destroy` (optional, boolean): When true, removes this permission instead of creating/updating it\n\n### list-api-tokens\n\nList all API tokens for the account.\n\n**Parameters:**\n\n- No parameters required\n\n### create-api-token\n\nCreate a new API token. The response includes the secret `token` value — this is the **only time** the full token is returned, so store it immediately. If you lose it, recreate the token.\n\n**Parameters:**\n\n- `name` (required): Display name for the token\n- `resources` (optional): Array of resource permissions to scope the token to. Each entry has:\n  - `resource_type` (required): One of `account`, `project`, `inbox`, `domain`, `billing`\n  - `resource_id` (required): ID of the resource\n  - `access_level` (required): `100` (admin) or `10` (viewer)\n\n### get-api-token\n\nGet an API token by ID. Returns metadata only — the secret token value is **not** returned here (only from `create-api-token` / `reset-api-token`).\n\n**Parameters:**\n\n- `api_token_id` (required): ID of the API token\n\n### reset-api-token\n\nReset (rotate) an API token by ID. The response includes the **new** secret `token` value — returned only on this call, so store it immediately. The previous token is invalidated.\n\n**Parameters:**\n\n- `api_token_id` (required): ID of the API token to reset\n\n### delete-api-token\n\nPermanently delete an API token by ID. The token can no longer authenticate after deletion.\n\n**Parameters:**\n\n- `api_token_id` (required): ID of the API token to delete\n\n### list-sub-accounts\n\nList sub-accounts in the organization. Requires `MAILTRAP_ORGANIZATION_ID` env var and sub-account management permissions.\n\n**Parameters:**\n\n- No parameters required\n\n### create-sub-account\n\nCreate a new sub-account under the organization. Requires `MAILTRAP_ORGANIZATION_ID` env var and sub-account management permissions.\n\n**Parameters:**\n\n- `name` (required): Display name for the new sub-account\n\n### list-inbound-folders\n\nList all inbound folders in the account. Returns a formatted summary.\n\n**Parameters:**\n\n- No parameters required\n\n### get-inbound-folder\n\nGet a single inbound folder by ID. Returns the full folder record as JSON.\n\n**Parameters:**\n\n- `folder_id` (required): ID of the inbound folder\n\n### create-inbound-folder\n\nCreate a new inbound folder.\n\n**Parameters:**\n\n- `name` (required): The folder name\n\n### update-inbound-folder\n\nRename an inbound folder.\n\n**Parameters:**\n\n- `folder_id` (required): ID of the inbound folder\n- `name` (required): The new folder name\n\n### delete-inbound-folder\n\nPermanently delete an inbound folder along with all of its inboxes.\n\n**Parameters:**\n\n- `folder_id` (required): ID of the inbound folder\n\n### list-inbound-inboxes\n\nList all inboxes in an inbound folder. Returns a formatted summary.\n\n**Parameters:**\n\n- `folder_id` (required): ID of the inbound folder\n\n### get-inbound-inbox\n\nGet a single inbound inbox by ID. Returns the full inbox record as JSON.\n\n**Parameters:**\n\n- `folder_id` (required): ID of the inbound folder\n- `inbox_id` (required): ID of the inbox\n\n### create-inbound-inbox\n\nCreate a new inbound inbox in a folder.\n\n**Parameters:**\n\n- `folder_id` (required): ID of the inbound folder\n- `name` (required): The inbox name\n- `domain_id` (optional): Attach to a custom sending domain (catch-all inbox). Omit for a Mailtrap-hosted inbox\n\n### update-inbound-inbox\n\nRename an inbound inbox.\n\n**Parameters:**\n\n- `folder_id` (required): ID of the inbound folder\n- `inbox_id` (required): ID of the inbox\n- `name` (required): The new inbox name\n\n### delete-inbound-inbox\n\nPermanently delete an inbound inbox.\n\n**Parameters:**\n\n- `folder_id` (required): ID of the inbound folder\n- `inbox_id` (required): ID of the inbox\n\n### list-inbound-messages\n\nList received messages in an inbound inbox (cursor-paginated). Returns a formatted summary with a next-page hint when more results exist.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `last_id` (optional): Pagination cursor from a previous response's `last_id`\n\n### get-inbound-message\n\nGet a single inbound message with its full body and attachment download URLs. Returns the full message record as JSON.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `message_id` (required): ID of the message\n\n### delete-inbound-message\n\nPermanently delete an inbound message.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `message_id` (required): ID of the message\n\n### reply-to-inbound-message\n\nReply to an inbound message (sends to the original sender). Sends a real email. Addresses accept a bare email string or `{ email, name? }`.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `message_id` (required): ID of the message to reply to\n- `text` / `html` (at least one recommended): Reply body\n- `from` (optional): Sender. Rejected for Mailtrap-hosted inboxes; required for custom-domain inboxes\n- `cc` / `bcc` / `reply_to` (optional): Additional addresses\n- `category` (optional): Message category\n- `attachments` (optional): Array of `{ content (base64), filename, type?, disposition?, content_id? }`\n- `headers` / `custom_variables` (optional): Objects of string values\n\n### reply-all-to-inbound-message\n\nReply to an inbound message and copy the original's other recipients. Sends a real email. Same parameters as `reply-to-inbound-message`.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `message_id` (required): ID of the message to reply to\n- Plus the same optional send fields as `reply-to-inbound-message`\n\n### forward-inbound-message\n\nForward an inbound message to new recipients. Sends a real email.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `message_id` (required): ID of the message to forward\n- `to` (required): At least one recipient (bare email string or `{ email, name? }`, or an array)\n- Plus the same optional send fields as `reply-to-inbound-message`\n\n### list-inbound-threads\n\nList conversation threads in an inbound inbox (cursor-paginated). Returns a formatted summary with a next-page hint when more results exist.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `last_id` (optional): Pagination cursor from a previous response's `last_id`\n\n### get-inbound-thread\n\nGet a single inbound thread with its messages embedded (oldest first). Returns the full thread record as JSON.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `thread_id` (required): ID of the thread\n\n### delete-inbound-thread\n\nPermanently delete an inbound thread.\n\n**Parameters:**\n\n- `inbox_id` (required): ID of the inbox\n- `thread_id` (required): ID of the thread\n\n## Development\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/mailtrap/mailtrap-mcp.git\ncd mailtrap-mcp\n```\n\n2. Install dependencies:\n\n```bash\nnpm install\n```\n\n### Configuration with Claude Desktop or Cursor\n\n> [!TIP]\n> See the location of the config file in the [Setup](#setup) section.\n\nAdd the following configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"mailtrap\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mailtrap-mcp/dist/index.js\"],\n      \"env\": {\n        \"MAILTRAP_API_TOKEN\": \"your_mailtrap_api_token\",\n        \"DEFAULT_FROM_EMAIL\": \"your_sender@example.com\",\n        \"MAILTRAP_ACCOUNT_ID\": \"your_account_id\",\n        \"MAILTRAP_TEST_INBOX_ID\": \"your_test_inbox_id\"\n      }\n    }\n  }\n}\n```\n\nIf you are using `asdf` for managing Node.js you should use absolute path to executable:\n\n(example for Mac)\n\n```json\n{\n  \"mcpServers\": {\n    \"mailtrap\": {\n      \"command\": \"/Users/<username>/.asdf/shims/node\",\n      \"args\": [\"/path/to/mailtrap-mcp/dist/index.js\"],\n      \"env\": {\n        \"PATH\": \"/Users/<username>/.asdf/shims:/usr/bin:/bin\",\n        \"ASDF_DIR\": \"/opt/homebrew/opt/asdf/libexec\",\n        \"ASDF_DATA_DIR\": \"/Users/<username>/.asdf\",\n        \"ASDF_NODEJS_VERSION\": \"20.6.1\",\n        \"MAILTRAP_API_TOKEN\": \"your_mailtrap_api_token\",\n        \"DEFAULT_FROM_EMAIL\": \"your_sender@example.com\",\n        \"MAILTRAP_ACCOUNT_ID\": \"your_account_id\",\n        \"MAILTRAP_TEST_INBOX_ID\": \"your_test_inbox_id\"\n      }\n    }\n  }\n}\n```\n\n### VS Code\n\n> [!TIP]\n> See the location of the config file in the [Setup](#setup) section.\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"mailtrap\": {\n        \"command\": \"node\",\n        \"args\": [\"/path/to/mailtrap-mcp/dist/index.js\"],\n        \"env\": {\n          \"MAILTRAP_API_TOKEN\": \"your_mailtrap_api_token\",\n          \"DEFAULT_FROM_EMAIL\": \"your_sender@example.com\",\n          \"MAILTRAP_ACCOUNT_ID\": \"your_account_id\",\n          \"MAILTRAP_TEST_INBOX_ID\": \"your_test_inbox_id\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Testing\n\n### Running tools against real Mailtrap\n\nThere are two ways to exercise a tool end-to-end against a real Mailtrap account: the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) browser UI for interactive exploration, or its CLI mode for one-shot calls from the shell.\n\nBoth require the bundle to be built first:\n\n```bash\nnpm run build\n```\n\nand `MAILTRAP_API_TOKEN` + `MAILTRAP_ACCOUNT_ID` exported in your shell (the `mcp:cli` script forwards both to the spawned server).\n\n#### Browser UI\n\n```bash\nnpm run dev\n```\n\nThe Inspector prints a URL like `http://localhost:6274`. Open it, switch to the **Tools** tab, pick a tool (e.g. `get-template`), fill the parameters as JSON, and hit **Run**. The Mailtrap response appears in the panel below.\n\n#### CLI\n\nFor one-shot calls without the UI, use `npm run mcp:cli`. Pass the Inspector's CLI flags after `--` so npm forwards them verbatim:\n\n```bash\n# List all tools\nnpm run mcp:cli -- --method tools/list\n\n# Call a tool — flags after the `--`\nnpm run mcp:cli -- \\\n  --method tools/call \\\n  --tool-name get-template \\\n  --tool-arg template_id=12345\n\n# Multiple --tool-arg flags for tools with several params\nnpm run mcp:cli -- \\\n  --method tools/call \\\n  --tool-name send-sending-domain-setup-instructions \\\n  --tool-arg sending_domain_id=3938 \\\n  --tool-arg email=devops@example.com\n```\n\n### Running the MCPB Server\n\n```bash\n# Run the MCPB server directly\nnode dist/mcpb-server.js\n\n# Or use the provided binary\nmailtrap-mcpb-server\n```\n\n> [!TIP]\n> For development with the MCP Inspector:\n\n```bash\nnpm run dev:mcpb\n```\n\n## Error Handling\n\nThis server uses structured error handling aligned with MCP conventions:\n\n- `VALIDATION_ERROR`: Input validation failures\n- `CONFIGURATION_ERROR`: Missing or invalid configuration\n- `EXECUTION_ERROR`: Runtime execution errors\n- `TIMEOUT`: Operation timeout (30 seconds default)\n\nErrors include actionable messages and are logged in structured form.\n\n## Security\n\n- Input validated via Zod schemas\n- Environment variables handled securely\n- Timeout protection on operations (30 seconds)\n- Sensitive details sanitized in error output\n\n## Logging\n\nStructured JSON logs with levels: INFO, WARN, ERROR, DEBUG.\n\nEnable debug logging by setting `DEBUG=true`.\n\n```bash\n# Example: enable debug logging\nDEBUG=true node dist/mcpb-server.js\n```\n\n> Important: The server writes logs to stderr so stdout remains reserved for JSON-RPC frames. This prevents hosts from encountering JSON parsing errors due to interleaved logs.\n\nLog analysis example using `jq`:\n\n```bash\n# Filter error logs\nnode dist/mcpb-server.js 2>&1 | jq 'select(.level == \"error\")'\n\n# Filter debug logs\nnode dist/mcpb-server.js 2>&1 | jq 'select(.level == \"debug\")'\n```\n\n## Troubleshooting\n\nCommon issues:\n\n1. Missing API Token: ensure `MAILTRAP_API_TOKEN` is set\n2. Sandbox not working: provide `test_inbox_id` in the tool call or set `MAILTRAP_TEST_INBOX_ID` env\n3. Timeout errors: check network connectivity and Mailtrap API status\n4. Validation errors: ensure all required fields are provided\n\n## Contributing\n\nBug reports and pull requests are welcome on [GitHub](https://github.com/mailtrap/mailtrap-mcp). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](CODE_OF_CONDUCT.md).\n\n## License\n\nThe package is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Code of Conduct\n\nEveryone interacting in the Mailtrap project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](CODE_OF_CONDUCT.md).\n","readmeFilename":"README.md"}