{"_id":"@liusdev/slack-bot-mcp","_rev":"10-120aa2d1d7fe7c859323a3f8098c1dd0","name":"@liusdev/slack-bot-mcp","dist-tags":{"latest":"0.6.1"},"versions":{"0.0.0-stage":{"name":"@liusdev/slack-bot-mcp","version":"0.0.0-stage","_id":"@liusdev/slack-bot-mcp@0.0.0-stage","stub":true,"maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"dist":{"shasum":"04b11ffe4936aae97a4e94ec3a0230885cae43c0","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-QYOlMFGKwjs0M/1AR1NMJS1HNT7Kd0/khrtQHsrNfENJ2AaVlicVcncmA0imG28gitTLrl4Ekc9r1TFjgVpiMQ==","signatures":[{"sig":"MEQCIF41w4O1eXW14u9JT69FBgeI3/2xO6/NrrKBm5tvhT0QAiAj8mNX3ic0I0pkDtq3yOwrAQTYJfpvh9hd5DX3zBrrBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":344},"_npmUser":{"name":"liusdev","email":"quydx.work@gmail.com"},"description":"Temporary package placeholder for staged publishing","directories":{}},"0.1.0":{"name":"@liusdev/slack-bot-mcp","version":"0.1.0","keywords":["mcp","slack","chat-sdk"],"license":"MIT","_id":"@liusdev/slack-bot-mcp@0.1.0","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"bin":{"slack-bot-mcp":"dist/index.js"},"dist":{"shasum":"5b72f120a040de451e9f5166ade10f4adcac3da7","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.1.0.tgz","fileCount":4,"integrity":"sha512-Lq8WwWpbR6kHxkSQXQX9Y1MHgHFWvLbKVnNpybhLyGfZxfke17zJsXeMzppehUfrdOyVfBky6fx+VThg+wYghw==","signatures":[{"sig":"MEUCICsLiBlGXvUHcadcKTfLbrDeeWjPki+38x3nu17lL1igAiEAjlLO0nBhCrkUmocSHdSxnmo5rXCdOM/8LkRffWp0c88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDGYWuzORTUUuFd53CH4CZlrdyGdWw3Zw0wMZpaNlyMjAiEAqvU5elsqaMCe2B/oNflqQJFPFpynlXLyEO+lu4mXnxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56851},"type":"module","engines":{"node":">=20"},"gitHead":"ab6e7fb9a48014b4c106cfac847857910bf5dc5c","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"liusdev","email":"quydx.work@gmail.com"},"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"tmp":"tmp/slack-bot-mcp_0.1.0_1792650973285_0.31017035737238174","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@liusdev/slack-bot-mcp","version":"0.1.1","keywords":["mcp","slack","chat-sdk"],"license":"MIT","_id":"@liusdev/slack-bot-mcp@0.1.1","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"bin":{"slack-bot-mcp":"dist/index.js"},"dist":{"shasum":"df4c1bb8582e66cdaf8c927cc681840d32813b52","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.1.1.tgz","fileCount":4,"integrity":"sha512-nHJ71qdRub+MvnyIBGIQITnSZmFpRvV4VOfwY/6noTRfduwARqgEm+iEAGUofC5WeBqU6peuLt3sqh1iC6v+Zw==","signatures":[{"sig":"MEQCIDHCzqChzVqT0reDuJyaZtuTYK0oD86LqS0Io4ZlDKxVAiAwPXC5S3R9inhrEVU8BdJWZx+hs3qW9PRQcmY2d9XqTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEuxwK17zyPm0xrAwF8rpTIPhW5X1T+H/rCym5vZVERKAiAXbPlF/mt1H5yUhOPllHfhzYQwIEX6hGCWKIJJhGLZqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@liusdev%2fslack-bot-mcp@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":57787},"type":"module","engines":{"node":">=20"},"gitHead":"740b7f5fa32e09e74f1e08a9ee4c4309e87d9338","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7ba7738-7e6d-4259-a1c8-f776a6737dd6"}},"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"12.2.1","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"_nodeVersion":"24.22.0","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"tmp":"tmp/slack-bot-mcp_0.1.1_1792651776269_0.7617626529072081","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@liusdev/slack-bot-mcp","version":"0.2.0","keywords":["mcp","slack","chat-sdk"],"license":"MIT","_id":"@liusdev/slack-bot-mcp@0.2.0","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"bin":{"slack-bot-mcp":"dist/index.js"},"dist":{"shasum":"8c535bbd9d9fd1d074ee7b4b83ae6f5c89df2b47","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.2.0.tgz","fileCount":4,"integrity":"sha512-OrTwEWsQatG8gKzdp2WgAhBS8a8zb7FSWz6JxpTIX++9kielBYGb03HimVsclioV4STL6gp7Oj7zjnSf4AmV6A==","signatures":[{"sig":"MEUCIQDJX46tbugedYQn2Y9uvybwB+kmnafuG1nqqZbKJUiZOQIgMPTvBGdDVN77PAIgDWU/FOTzqM9XldiUvlqUS4E9wLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEqu82s3WRY/DtTF67eOD/jD56u7b6mpKkWJnCyecy0UAiEA+fTKMF9OWhbE1t756DTRYtcLkSKMWHuL8fxoGcFitNw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@liusdev%2fslack-bot-mcp@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69888},"type":"module","engines":{"node":">=20"},"gitHead":"ad8e1208414981301b8c67d5a76a2eb5e00d4a5a","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7ba7738-7e6d-4259-a1c8-f776a6737dd6"}},"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"12.2.1","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"tmp":"tmp/slack-bot-mcp_0.2.0_1792653333896_0.8526577555043635","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@liusdev/slack-bot-mcp","version":"0.2.1","keywords":["mcp","slack","chat-sdk"],"license":"MIT","_id":"@liusdev/slack-bot-mcp@0.2.1","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"bin":{"slack-bot-mcp":"dist/index.js"},"dist":{"shasum":"b1c3260a496d65e93ebda3342058d0354b91bb46","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.2.1.tgz","fileCount":4,"integrity":"sha512-rscXZ3ggWaCXPL+GI+kd/4sAI2BwsPVMHrvUghr7Rp86Mg4fEcBJMXMbCaDi6GlAJ6D6zrb3VSjUaqDJK5DWwA==","signatures":[{"sig":"MEYCIQDykfL8BIqGOpimwgiHbpEWy0spg5x7GpueIvSxUflWpAIhAK0GzovOmdO42lkOhCmUMo+EgON+Q8Wcdigjn36YVREa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG1YyQyDPVhC51kJhsEtpL923FZiEicRTRCflUDxkR2IAiAqmc7UFiYR6b98daxzkSvHLCTdiVsqhEwWnGoayIJXiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@liusdev%2fslack-bot-mcp@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70912},"type":"module","engines":{"node":">=20"},"gitHead":"1829bbacc36895273e49495b62b78c5769f103c6","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7ba7738-7e6d-4259-a1c8-f776a6737dd6"}},"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"12.2.1","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"tmp":"tmp/slack-bot-mcp_0.2.1_1792653709216_0.7502477415583331","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@liusdev/slack-bot-mcp","version":"0.3.0","keywords":["mcp","slack","chat-sdk"],"license":"MIT","_id":"@liusdev/slack-bot-mcp@0.3.0","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"bin":{"slack-bot-mcp":"dist/index.js"},"dist":{"shasum":"632bd96b3ad612e5e5769a36a17ea792e104464d","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.3.0.tgz","fileCount":4,"integrity":"sha512-edmF5eoP0psaZxz5Ui6fCTTF9TaJPAEy8bscViW1NG/89ujNX6Bq4/OLGs1XQ5UwkVA3r+QDlmzOW0dZZ048Sw==","signatures":[{"sig":"MEYCIQDglG2qP7745ba5VV9rveOtl7QNwdwWPeV/HWypynOS+AIhAJUUPPLPPe2SOXDPdUuVYNh0H9X2jkD1/3EXcvQgi0gI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCebBsa3Cm7v0TrDqy8TKtsSb2pOJbxtuOWFXNhsiI9JQIhAL526GGx9lYTso2peYSgV8ADHRAKuelQVWN0IQA49ue8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@liusdev%2fslack-bot-mcp@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72734},"type":"module","engines":{"node":">=20"},"gitHead":"5289b4d3e8823526cb89895a7bc7364f4c87986e","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7ba7738-7e6d-4259-a1c8-f776a6737dd6"}},"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"12.2.1","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"_nodeVersion":"24.22.0","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"tmp":"tmp/slack-bot-mcp_0.3.0_1792654842130_0.7057923547961498","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@liusdev/slack-bot-mcp","version":"0.4.0","keywords":["mcp","slack","chat-sdk"],"license":"MIT","_id":"@liusdev/slack-bot-mcp@0.4.0","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"bin":{"slack-bot-mcp":"dist/index.js"},"dist":{"shasum":"6dd8434af8f850f301b8fe751d471fbb8a3fc07a","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.4.0.tgz","fileCount":4,"integrity":"sha512-LO2ma0XnBCda8OVpFB6imsSs2Bm9i9emsxJ2JWuF4iURZ6OV3v1P5jvt8msWrVNryeFvKiHoWiztvCvJOSQlLw==","signatures":[{"sig":"MEUCIQCwRKJImkv276beuLHgT3dSW6vZI6oVZQBKBtqqLi4i4QIgZ+mgY5Xk9DalhKmvpzLZZnfmew5DtaJqr6aA6E6tRwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC9AGCKw/bmc20W/ShPKQ4lRbHPL0G/eJOrjT+FPcJOIgIgLeN0IuWBU3thybX9iZ3iNyf5P2jmy0fgH3rMYmbvcA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@liusdev%2fslack-bot-mcp@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78292},"type":"module","engines":{"node":">=20"},"gitHead":"a27d1e66db0dddc62b5c972338b566505af0a967","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7ba7738-7e6d-4259-a1c8-f776a6737dd6"}},"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"12.2.1","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"_nodeVersion":"24.22.0","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"tmp":"tmp/slack-bot-mcp_0.4.0_1792655380791_0.909625175974828","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@liusdev/slack-bot-mcp","version":"0.5.0","keywords":["mcp","slack","chat-sdk"],"license":"MIT","_id":"@liusdev/slack-bot-mcp@0.5.0","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"bin":{"slack-bot-mcp":"dist/index.js"},"dist":{"shasum":"f0319ed8a8d3288cbbddc96569d7bbe8ae8b7866","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.5.0.tgz","fileCount":4,"integrity":"sha512-fM5g/lOUjfR7zesTKan2zCEGjeGsbun1ejLB0AugdJQevvUQDzhMmKjBjw3g8zI2F+gyTjfYVn9koGl83dFRmg==","signatures":[{"sig":"MEUCIQC7iPOnQ/ibzrgJnNXmS8xI0VgKe8GP7oExp10QQvKNdAIgBDVPO5gQzk6RVDfzmCFRpIQBtR0k0uD/1nS6c+AbNMQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDIlWxnL8EBAfTVs+7tYX5NAToev/fG4SP11ec+YF6vHAIgWn1t5FilaP+5ZMFdJJR35tfEEClyLD/hrqlnb7GPbcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@liusdev%2fslack-bot-mcp@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80547},"type":"module","engines":{"node":">=20"},"gitHead":"ada858412f38de7ec6262d7e758a5c8c8a31799b","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7ba7738-7e6d-4259-a1c8-f776a6737dd6"}},"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"12.2.1","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"tmp":"tmp/slack-bot-mcp_0.5.0_1792655622444_0.7245171223101112","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@liusdev/slack-bot-mcp","version":"0.6.0","keywords":["mcp","slack","chat-sdk"],"license":"MIT","_id":"@liusdev/slack-bot-mcp@0.6.0","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"bin":{"slack-bot-mcp":"dist/index.js"},"dist":{"shasum":"7a2a1e41180af17ea2ccb858541386f76c588680","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.6.0.tgz","fileCount":4,"integrity":"sha512-Wzqoy0meDaYPjCvVaa4y06j09axqh+rZB0G0ht7O0ascfkPjJc3jF4y7XNvch/HFbhAt1S9NkbfGWgFCe69Wgg==","signatures":[{"sig":"MEUCIQCepqp2kA/LzufOVlylNCAZYIXaR5IETks+xQiR7CNloQIgVUq0S4TJm6TpPTeBiMx+W/brQ7j/XwpzvZYaYslH8Io=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDCoLOiA9UuZFQLQipC3jidf+xEoXZLPZzutzCUbhUBEAiAPbsUG9QiWPfBStZtvc6lfctD86Zc5ndbfgsoV48nwHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@liusdev%2fslack-bot-mcp@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80808},"type":"module","engines":{"node":">=20"},"gitHead":"1c7912f7f4e51ae7ed73d6f6af0eef9f2e5d3bca","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7ba7738-7e6d-4259-a1c8-f776a6737dd6"}},"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"12.2.1","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"tmp":"tmp/slack-bot-mcp_0.6.0_1792726562185_0.987838643278141","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"_id":"@liusdev/slack-bot-mcp@0.6.1","bin":{"slack-bot-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"dist":{"shasum":"31917620956d4cb0ba29f06ec605bd70f29058dd","tarball":"https://registry.npmjs.org/@liusdev/slack-bot-mcp/-/slack-bot-mcp-0.6.1.tgz","fileCount":4,"integrity":"sha512-pufek4UY4DALhGyDDBy8mngto6EXt3/+tHdK9wL7yolGnMvxFBwNqAFIRjyVocAxS0Z1/xAw3xlTGxa8IPCSTA==","signatures":[{"sig":"MEUCIEk8pd9qUiMbbEu3f3Id2AapMBzgcebqPJ9jIEzn3DitAiEAuZOfqOcOq/ZYraA8b87ymW+YkvTUBd/tePad4NKEorU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID+bkXNPLNRlclzX/E9zj+75S5FBfnKSh/Sl+FLL/be5AiAhsx2F5kihrbQDYyUDT1q0WL+gOtVrW0BoMAptCxy/Kg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@liusdev%2fslack-bot-mcp@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80709},"name":"@liusdev/slack-bot-mcp","type":"module","engines":{"node":">=20"},"gitHead":"17735747c6fea969aae2498c7af1eefb77d3f8d0","license":"MIT","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","prepublishOnly":"pnpm build"},"version":"0.6.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"b7ba7738-7e6d-4259-a1c8-f776a6737dd6"}},"homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","keywords":["mcp","slack","chat-sdk"],"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"_npmVersion":"12.2.1","description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","directories":{},"maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"zod":"^4.6.7","chat":"^4.43.0","@chat-adapter/slack":"^4.43.0","@chat-adapter/state-memory":"^4.43.0","@modelcontextprotocol/server":"^2.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.8.0","devDependencies":{"tsup":"^9.0.0","vitest":"^5.0.5","typescript":"^7.0.2","@types/node":"^26.6.5","@slack/web-api":"^7.19.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/slack-bot-mcp_0.6.1_1792729358806_0.717421352475156"}}},"time":{"created":"2026-10-22T06:34:41.536Z","modified":"2026-10-23T04:22:39.255Z","0.0.0-stage":"2026-10-22T06:34:41.536Z","0.1.0":"2026-10-22T06:36:13.391Z","0.1.1":"2026-10-22T06:49:36.352Z","0.2.0":"2026-10-22T07:15:33.966Z","0.2.1":"2026-10-22T07:21:49.313Z","0.3.0":"2026-10-22T07:40:42.221Z","0.4.0":"2026-10-22T07:49:40.885Z","0.5.0":"2026-10-22T07:53:42.528Z","0.6.0":"2026-10-23T03:36:02.267Z","0.6.1":"2026-10-23T04:22:38.896Z"},"bugs":{"url":"https://github.com/LiusDev/slack-bot-mcp/issues"},"license":"MIT","homepage":"https://github.com/LiusDev/slack-bot-mcp#readme","keywords":["mcp","slack","chat-sdk"],"repository":{"url":"git+https://github.com/LiusDev/slack-bot-mcp.git","type":"git"},"description":"MCP server that lets AI agents message, look up users, and read conversations in Slack through a bot.","maintainers":[{"name":"liusdev","email":"quydx.work@gmail.com"}],"readme":"# slack-bot-mcp\n\nAn MCP server that lets an AI agent work in Slack as a bot. The agent can send DMs and channel messages, find members by email or name, read history and threads, react to messages, and wait for replies.\n\nIt is built on [Chat SDK](https://chat-sdk.dev) (`chat` + `@chat-adapter/slack`). By default it receives events over Socket Mode, so it needs no public URL. Set `SLACK_MODE=webhook` to receive events through a Request URL instead.\n\n## Quick start\n\n```bash\nSLACK_BOT_TOKEN=xoxb-... SLACK_APP_TOKEN=xapp-... npx -y @liusdev/slack-bot-mcp@latest\n# or\nSLACK_BOT_TOKEN=xoxb-... SLACK_APP_TOKEN=xapp-... pnpm dlx @liusdev/slack-bot-mcp@latest\n```\n\nCheck the installed version with `npx -y @liusdev/slack-bot-mcp@latest -v` (or `--version`); `--help` lists usage. The `whoami` tool also reports `server_version`.\n\n### Claude Code\n\n```bash\nclaude mcp add slack-bot \\\n  -e SLACK_BOT_TOKEN=xoxb-... \\\n  -e SLACK_APP_TOKEN=xapp-... \\\n  -- npx -y @liusdev/slack-bot-mcp@latest\n```\n\n### Claude Desktop, Cursor and other MCP clients\n\n```json\n{\n  \"mcpServers\": {\n    \"slack-bot\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@liusdev/slack-bot-mcp@latest\"],\n      \"env\": {\n        \"SLACK_BOT_TOKEN\": \"xoxb-...\",\n        \"SLACK_APP_TOKEN\": \"xapp-...\"\n      }\n    }\n  }\n}\n```\n\n## Create the Slack app\n\nA Slack [app manifest](https://docs.slack.dev/app-manifests/) is a YAML file that describes an app's configuration. The manifest below sets up everything this server needs in one step:\n\n- a bot user that people can DM (the App Home **Messages** tab)\n- the bot token scopes the tools use\n- the `app_mention` and `message.im` events, which feed `get_inbox`\n- Socket Mode, so no public URL is needed\n\n1. Go to [api.slack.com/apps](https://api.slack.com/apps), click **Create New App**, choose **From an app manifest**, pick your workspace, and paste the manifest below.\n2. Under **Basic Information → App-Level Tokens**, generate a token with the `connections:write` scope. This is `SLACK_APP_TOKEN` (`xapp-…`).\n3. Under **OAuth & Permissions**, install the app to the workspace and copy the **Bot User OAuth Token**. This is `SLACK_BOT_TOKEN` (`xoxb-…`).\n4. Invite the bot to any private channel it should read or post in: `/invite @AI Assistant`.\n\n```yaml\ndisplay_information:\n  name: AI Assistant\nfeatures:\n  app_home:\n    messages_tab_enabled: true\n    messages_tab_read_only_enabled: false\n  bot_user:\n    display_name: AI Assistant\n    always_online: true\noauth_config:\n  scopes:\n    bot:\n      - app_mentions:read\n      - channels:history\n      - channels:read\n      - chat:write\n      - chat:write.public\n      - groups:history\n      - groups:read\n      - im:history\n      - im:read\n      - im:write\n      - mpim:history\n      - mpim:read\n      - reactions:read\n      - reactions:write\n      - users:read\n      - users:read.email\nsettings:\n  event_subscriptions:\n    bot_events:\n      - app_mention\n      - message.im\n  interactivity:\n    is_enabled: true\n  org_deploy_enabled: false\n  socket_mode_enabled: true\n  token_rotation_enabled: false\n```\n\n### Use an existing app\n\nTo reuse an app you already created, open it at [api.slack.com/apps](https://api.slack.com/apps) and select **App Manifest** in the sidebar. Merge in the scopes, events, `socket_mode_enabled` and `app_home` settings above. Do not paste over the whole manifest: that replaces the app's current configuration and can drop scopes, events or Request URLs it already uses. Save, then click **Reinstall to Workspace** under **OAuth & Permissions** so new scopes take effect. If the app has no app-level token yet, create one as in step 2.\n\nYou can drop scopes you do not need. Tools that lack a scope return an error that names the missing scope. `chat:write.public` lets the bot post in public channels without being invited first.\n\n## Tools\n\n| Tool | What it does | Bot scopes |\n|---|---|---|\n| `whoami` | Bot identity, connection status, granted scopes, and the scopes each tool is missing | none |\n| `users_search` | Find members by email, name, display name, @handle or job title | `users:read`, `users:read.email` |\n| `user_info` | Profile of one user (ID, email or @handle) | `users:read` |\n| `channels_list` | List channels, filtered by type, name or membership | `channels:read`, `groups:read`, `im:read`, `mpim:read` |\n| `send_message` | Post to a channel, a thread, or a user's DM: Markdown or plain text, an optional context line, or custom Block Kit. `expect_reply: true` saves the message as a pending question | `chat:write`, `im:write` |\n| `edit_message` | Replace the content of a message the bot posted (same formatting options as `send_message`) | `chat:write` |\n| `delete_message` | Delete a message the bot posted (bots cannot delete other people's messages) | `chat:write` |\n| `conversations_history` | Read recent messages in a channel or DM | `channels:history`, `groups:history`, `im:history`, `mpim:history` |\n| `conversations_replies` | Read a thread | same as above |\n| `reactions_add`, `reactions_remove` | Add or remove an emoji reaction | `reactions:write` |\n| `wait_for_reply` | Wait briefly (default 45 s) for a reply; saves the question as pending on timeout | history scopes |\n| `check_replies` | Check all pending questions, or one conversation, once and return any answers | history scopes |\n| `get_inbox` | DMs and @mentions the bot received while the server was running | `app_mention` and `message.im` events |\n\nWherever a tool takes a channel or user, you can pass:\n\n- a channel ID (`C…`), `#channel-name`, or Slack markup (`<#C…>`)\n- a user ID (`U…`), `@handle`, email, or display name\n\nFor a user, the tool opens a DM with them. If a name matches several users, the tool returns the candidates so the agent can ask which one you mean.\n\nBot tokens cannot call Slack's `search.messages` API, so this server has no message search.\n\n### Message formatting\n\n`send_message` has three levels of formatting:\n\n- **`text`** alone: standard Markdown (bold, lists, code, links, quotes), or plain text with `format: \"plain\"`.\n- **`context`**: small grey details under a divider at the bottom of the message, such as the Jira ticket or comment a question refers to. Each item is `{ label, value, url? }` or a pre-formatted mrkdwn string:\n\n  ```json\n  {\n    \"target\": \"quy@example.com\",\n    \"text\": \"Does `VECURA_CONTENT_BACKEND_URL` have a public staging address?\",\n    \"context\": [\n      { \"label\": \"Jira\", \"value\": \"VEC-123\", \"url\": \"https://example.atlassian.net/browse/VEC-123\" },\n      { \"label\": \"Comment\", \"value\": \"#4521\", \"url\": \"https://example.atlassian.net/browse/VEC-123?focusedCommentId=4521\" }\n    ]\n  }\n  ```\n\n  This renders as: the question, a divider, then **Jira:** VEC-123 · **Comment:** #4521 in small text.\n- **`blocks`**: any [Block Kit](https://docs.slack.dev/reference/block-kit/blocks) layout (header, section fields, images and so on). `text` then becomes the notification fallback, and `context` is still appended. Try layouts in the [Block Kit Builder](https://app.slack.com/block-kit-builder). Interactive elements such as buttons are not supported, because the server does not handle clicks. If Slack rejects the blocks, the error lists the invalid fields.\n\n### Errors\n\nEvery tool returns failures as an MCP tool error (`isError: true`). The text says what failed, why, and what to do. For example:\n\n```\nPermission denied: the Slack bot is missing the OAuth scope `reactions:write` needed to add the :eyes: reaction.\nScopes the bot currently has: chat:write,users:read.\nA Slack workspace admin must add it under api.slack.com/apps → your app → OAuth & Permissions → Bot Token Scopes, then reinstall the app to the workspace.\n```\n\nThe server also explains common Slack errors: `not_in_channel`, `channel_not_found`, `users_not_found`, `is_archived`, `invalid_auth`, and rate limits with the retry delay. Without `users:read.email`, Slack silently leaves emails out of user lists. In that case, email lookups report the missing scope instead of \"user not found\".\n\n## Configuration\n\n| Variable | Required | Default | Description |\n|---|---|---|---|\n| `SLACK_BOT_TOKEN` | yes | | Bot token, `xoxb-…` |\n| `SLACK_APP_TOKEN` | socket mode | | App-level token with `connections:write`, `xapp-…` |\n| `SLACK_MODE` | no | `socket` | `socket` or `webhook` |\n| `SLACK_SIGNING_SECRET` | webhook mode | | Signing secret from **Basic Information** |\n| `SLACK_MCP_HTTP_PORT` | no | `3000` | Port for incoming Slack events in webhook mode |\n| `SLACK_MCP_HTTP_PATH` | no | `/slack/events` | Path for incoming Slack events in webhook mode |\n| `SLACK_MCP_ALLOWED_CHANNELS` | no | any | Comma-separated targets `send_message` may post to: channel IDs, `#names`, user IDs or emails |\n| `SLACK_MCP_LOG_LEVEL` | no | `info` | `debug`, `info`, `warn`, `error` or `silent`. Logs go to stderr |\n| `SLACK_MCP_STATE_DIR` | no | `~/.slack-bot-mcp` | Where pending questions are stored, one JSON file per workspace |\n| `SLACK_MCP_PENDING_TTL_DAYS` | no | `7` | Pending questions older than this are dropped |\n\n### Webhook mode\n\nSet `SLACK_MODE=webhook` and `SLACK_SIGNING_SECRET`. The server then listens on `SLACK_MCP_HTTP_PORT`. In the app settings, turn off Socket Mode and set the Request URL under **Event Subscriptions** and **Interactivity** to `https://<your-host>/slack/events`.\n\n## Waiting for replies\n\nPeople may answer in a minute or the next morning. Polling inside one agent turn is cheap for the server but not for the agent: every `wait_for_reply` call is a model turn that re-reads the whole conversation. So the server keeps waits short and remembers what it is waiting for:\n\n1. The agent sends the question with `send_message` and `expect_reply: true`. The server saves it as a pending question in `SLACK_MCP_STATE_DIR`, which outlives the MCP process and the agent session.\n2. If a quick answer is likely, the agent calls `wait_for_reply` once or twice. After two timeouts the tool tells the agent to stop and report back to the user.\n3. Later, `check_replies` with no arguments checks every pending question in one call, returns the answers, and removes answered questions from the list.\n\nSomething has to run the agent again for step 3; the server cannot wake an agent. Slack's official MCP server has no wait tool either, so agents using it re-read threads the same way. Options:\n\n- The user asks: \"check Slack replies\".\n- A loop in an open session, for example `/loop 30m check Slack replies and continue` in Claude Code.\n- A scheduled run, for example a cron job at 8:00 running `claude -p \"check Slack replies and continue\"`.\n\nEach check is one short turn, instead of one turn every minute.\n\nTo let a single `wait_for_reply` call block longer, raise your client's tool timeout and pass a larger `timeout_seconds` (up to 300). In Claude Code, set `MCP_TOOL_TIMEOUT` in milliseconds, for example `MCP_TOOL_TIMEOUT=320000`.\n\n## Running several instances\n\nEvery tool except `get_inbox` calls the Slack Web API directly with the bot token. Those tools give the same results no matter how many agents run this server at once. Keep in mind:\n\n- **Events are split.** Slack delivers each event to only one of an app's open Socket Mode connections. Each instance's `get_inbox` therefore sees only part of the incoming messages. `wait_for_reply` and `check_replies` read the Web API, so they are not affected.\n- **Connection limit.** Slack allows at most 10 Socket Mode connections per app. Instances beyond that cannot open a socket, so their `get_inbox` reports the connection error. Their other tools still work.\n- **Rate limits are shared.** All instances spend the same token's Slack rate limits. A tool that hits a limit fails at once and says how long to wait.\n\n## Development\n\n```bash\npnpm install\npnpm dev          # rebuild on change\npnpm test\npnpm typecheck\npnpm build\nnpx @modelcontextprotocol/inspector node dist/index.js   # try the tools interactively\n```\n\n## Releasing\n\nPushing a `v*` tag publishes to npm through GitHub Actions (`.github/workflows/publish.yml`). The workflow authenticates with [npm Trusted Publishing](https://docs.npmjs.com/trusted-publishers), so the repository stores no npm token.\n\n```bash\nnpm version patch        # or minor / major: bumps package.json, commits, and tags\ngit push --follow-tags   # the tag triggers the publish workflow\n```\n\nThe workflow fails if the tag does not match the `package.json` version.\n","readmeFilename":"README.md"}