slack

com.pulsemcp/slack

About slack

slack is an MCP server published by pulsemcp.com. MCP server for Slack — read/write messages, manage threads, and react to messages.

It runs on your own machine: your AI client starts it from the npm package slack-workspace-mcp-server at version 0.0.7.

It asks for one secret: SLACK_BOT_TOKEN. Give it a key with the least access that still works.

Version 0.0.7 was published on 14 June 2026, and the source code is public, so you can read it before installing.

Written from the registry entry. 9 automated checks on the registry entry and the package code: 7 pass, 0 warn, 0 fail, 2 info. How we check.

What it asks for

VariableRequiredSecretDescription
SLACK_BOT_TOKENYesYesSlack Bot User OAuth Token starting with xoxb-.
ENABLED_TOOLGROUPSNoNoComma-separated list of tool groups to enable (readonly, write).

Checks

CheckResultDetail
Source repository linkedPasshttps://github.com/pulsemcp/mcp-servers
Version pinnedPassEvery package has an explicit version
Secrets requestedInfoAsks for 1 secret: SLACK_BOT_TOKEN
Known package registryPassAll packages come from npm, PyPI, OCI, NuGet or MCPB
Namespace ownershipInfoName verified via domain pulsemcp.com
Registry text aimed at the AIPassDescription and settings contain no hidden characters or instructions to the AI
Install scriptsPassslack-workspace-mcp-server@0.0.7 runs nothing at install
Code red flagsPassRead 58 files in slack-workspace-mcp-server@0.0.7: no obfuscation, encoded execution, credential reads or data-collection endpoints found
Text aimed at the AIPassNo hidden characters or instructions to the AI in 58 files, including comments and the README

Code review: Pass, with notes

We read all 2,796 lines in 56 files of slack-workspace-mcp-server 0.0.7 on 2026-10-31, without running it.

Lets an AI assistant read Slack channels and threads, download shared files, and post, edit, react and upload snippets as your Slack bot. It talks only to Slack, using the bot token you provide; there is no telemetry. Posting tools are on by default and send immediately, so set ENABLED_TOOLGROUPS=readonly if you only want reading.

What we found

  • Note Write tools (post message, reply to thread with optional channel broadcast, edit message, add reaction, upload snippet) are enabled by default; they post as the bot immediately with no confirmation step. Set ENABLED_TOOLGROUPS=readonly to disable them. Descriptions state clearly that they post/edit. shared/tools.js:31-43
  • Info The bot token is sent to whatever url_private_download/url_private Slack's files.info returns, without checking the host. The URL comes from Slack's own API so this is expected, but there is no host allow-list. shared/slack-client/lib/download-file.js:5-9
  • Info Downloaded files are written to the OS temp directory and left there (no cleanup). shared/tools/download-file.js:61-66
  • Info Message text from Slack is returned verbatim to the AI; content written by other workspace members could contain prompt-injection text. Normal for chat readers, not a code defect. shared/tools/get-channel.js:101; shared/tools/get-thread.js:87
  • Info package.json was not part of the review set; the dependency list is inferred from import statements, and install scripts (if any) could not be checked. (package)
Talks toslack.com (https://slack.com/api/*): Bot token (Authorization header), channel IDs, message text, reactions, snippet metadata; endpoints conversations.list/info/history/replies, chat.postMessage, chat.update, reactions.add, files.info, files.getUploadURLExternal, files.completeUploadExternal (Only when a tool is called)
files.slack.com (url_private / url_private_download returned by Slack files.info): Bot token in Authorization header to the download URL Slack returned (Only when slack_download_file is called)
Slack presigned upload URL (upload_url returned by files.getUploadURLExternal): Snippet content (no auth header) (Only when slack_upload_snippet is called)
Keys and settingsSLACK_BOT_TOKEN: slack.com API and Slack file download URLs (Bearer header)
ENABLED_TOOLGROUPS: not sent; local config (readonly, write)
NODE_ENV / DEBUG: not sent; enables debug logging to stderr
SLACK_MOCK_DATA: not sent; only read by the test entry build/index.integration-with-mock.js
Files on your machineReads its own package.json at startup. slack_download_file writes downloaded Slack files to <OS temp>/slack-files/<fileId>-<sanitized name> (name sanitized to [a-zA-Z0-9._-], so no path traversal). No other file reads/writes.
Runs programsNone. No child_process, eval or Function. Dynamic import() is only used for the package's own fixed relative modules (./slack-client/lib/*.js).
TelemetryNone. No analytics or background network calls; nothing contacts the network at startup.
Toolsslack_get_channels, slack_get_channel, slack_get_thread, slack_download_file, slack_post_message, slack_reply_to_thread, slack_update_message, slack_react_to_message, slack_upload_snippet
Tool descriptionsclean

This covers the package's own code only, not the 2 packages it depends on (@modelcontextprotocol/sdk, zod). A new version drops this review until we read it again.

Popularity & health: 67 / 100

Worked out from public numbers and our own checks, not from user reviews or ratings. It says how used and how looked-after a server is, not whether it is safe.

Popularity19 / 40

81 GitHub stars, 559 downloads last week, 0 Hacker News posts (0 points). Best two of the three, each on a log scale.

Activity17 / 25

Last push 2026-10-09, last release 2025-07-03, 1 commits in 90 days.

Issue health11 / 15

66 closed of 93 issues.

Our checks20 / 20

0 warnings, each costing a fifth.

10 forks, 491 merged pull requests. Sources: GitHub, npm, PyPI (pypistats.org) and Hacker News (Algolia), fetched 2026-10-31.

What people say

No Hacker News threads link to its source code.

Look further: search Reddit, search Hacker News, read its GitHub issues. These are not reviews we checked.

Facts

Registry namecom.pulsemcp/slack
PublisherDomain pulsemcp.com
How the name is verifiedName verified via domain pulsemcp.com. The registry ties the name prefix to that account or domain; it does not check the code.
TypeLocal: runs on your machine from a package
Packagesnpm slack-workspace-mcp-server 0.0.7 (stdio)
Version0.0.7
Published
Last updated
Source repositoryhttps://github.com/pulsemcp/mcp-servers
WebsiteNone linked
CategoryEmail & messaging (assigned by keyword rule, not by hand)

Related servers in Email & messaging