Atlas reads Slack channel history through Slack's official hosted MCP server at https://mcp.slack.com/mcp, so it can absorb an incident thread or a design debate before it starts writing code. Setup requires a registered Slack app: put its client ID and client secret in the mcp.slack.oauth block of atlas.json, run atlas mcp auth slack, and have a workspace admin approve the connection.
What Atlas reads from Slack
Atlas reads Slack channel history through Slack's official hosted MCP server at https://mcp.slack.com/mcp, so it can absorb an incident thread or a design debate before it starts writing code. In 2026 that means the last 50 messages in #incidents become context rather than a copy and paste job.
Most of the reasoning behind a code change never reaches the code. It happens in Slack: the argument about which approach to take, the moment somebody spotted the bad deploy, the decision to roll back. Giving Atlas read access to Slack channel history through Slack's official hosted MCP server means the agent starts from what your team already worked out, instead of rediscovering it from an empty prompt. The integration is deliberately about reading. The value is context, not another bot posting in your channels.
Registering a Slack app, which Slack requires
In 2026, Slack setup has one extra step compared with most MCP servers: Slack requires MCP clients to be backed by a registered Slack app with a fixed app ID, so put its client ID and client secret in the mcp.slack.oauth block of atlas.json before you run atlas mcp auth slack.
Servers like Linear's support dynamic client registration and hand you a token with no app to create. Slack does not work that way. Slack requires MCP clients to be backed by a registered Slack app with a fixed app ID, so create the app first, take its client ID and client secret, and write them into the mcp.slack.oauth block of atlas.json. Only then does atlas mcp auth slack have something to authenticate as. Getting this order wrong is the usual first failure.
The transport: streamable HTTP, not SSE
Slack's hosted MCP server speaks JSON-RPC over streamable HTTP only and does not support SSE. Register it with atlas mcp add slack --url https://mcp.slack.com/mcp, and do not reach for an SSE transport option, because Slack will not answer on one in 2026.
Transport confusion is common because several MCP servers still offer both SSE and streamable HTTP, and older tutorials assume SSE is the default. Slack's hosted server is streamable HTTP only. The registration command, atlas mcp add slack --url https://mcp.slack.com/mcp, is all you need, and any attempt to force an SSE connection to mcp.slack.com is wasted effort. If the handshake fails, look at the Slack app credentials and the workspace approval, not at the transport.
Workspace admin approval
A workspace admin must approve the Slack connection, because Slack gates MCP access at the workspace level rather than per user, a rule that still holds in 2026. Until that approval lands, no amount of client configuration in atlas.json will give Atlas access to channel history.
Workspace level gating is a governance decision on Slack's side, and it is worth knowing before you start rather than after. One developer cannot quietly wire an agent into company chat. The Slack app has to exist, and an admin has to approve the connection for the workspace. Plan for that conversation as part of the setup, and bring the read-only framing to it: Atlas is pulling channel history to understand an incident, not gaining the ability to talk in #general.
The daily loop: read the incident thread first
Ask Atlas to pull the last 50 messages from #incidents and summarize what broke before it opens the repository. Reading the Slack thread first is the whole discipline: the humans already diagnosed the outage in chat, and Atlas should start from their conclusion, not from a blank slate.
A good prompt against the Slack integration names the channel and the range. Pull the last 50 messages from #incidents, summarize what broke, then go look at the code. Atlas reconstructs the timeline from the thread, including the half formed theories people abandoned, which are often the fastest route to the real cause. The summary it produces is also a useful artifact on its own: it is the first draft of an incident writeup, assembled from the messages your team actually sent.
A self-hosted, strictly read-only Slack server
For a self-hosted stdio path, run the community korotovsky/slack-mcp-server with SLACK_MCP_XOXP_TOKEN set. Exactly 1 environment variable decides write access: leave SLACK_MCP_ADD_MESSAGE_TOOL unset and the server stays strictly read-only, so Atlas can read Slack history but never post.
Teams that cannot get a hosted MCP connection approved, or that want a hard guarantee about writes, can run korotovsky/slack-mcp-server locally over stdio. Set SLACK_MCP_XOXP_TOKEN for authentication. The critical detail is the variable you do not set: leaving SLACK_MCP_ADD_MESSAGE_TOOL unset keeps the server strictly read-only. That makes the guarantee structural instead of a policy in a document, which is usually what a security reviewer is asking for.
Do not use the archived Slack MCP package
The @modelcontextprotocol/server-slack package is archived and should not be used for new Atlas setups in 2026. Point at Slack's official hosted server at https://mcp.slack.com/mcp, or run the community korotovsky/slack-mcp-server yourself, and skip the archived package entirely.
Search results still surface @modelcontextprotocol/server-slack, and it will appear to install fine, which is what makes it a trap. It is archived. New Atlas setups should use one of the two maintained paths: Slack's official hosted MCP server at https://mcp.slack.com/mcp, or the community korotovsky/slack-mcp-server run over stdio. Choosing a maintained server now is much cheaper than migrating off an abandoned one after it stops matching Slack's API.
Setup
- 01Add Slack's official hosted MCP server with atlas mcp add slack --url https://mcp.slack.com/mcp, which speaks JSON-RPC over streamable HTTP only and does not support SSE.
- 02Register a Slack app with a fixed app ID, then put its client ID and client secret in the mcp.slack.oauth block of atlas.json before running atlas mcp auth slack.
- 03Have a workspace admin approve the connection, because Slack gates MCP access at the workspace level.
- 04Ask Atlas to pull the last 50 messages from #incidents and summarize what broke before it opens the repo.
- 05For a self-hosted stdio path, run the community korotovsky/slack-mcp-server with SLACK_MCP_XOXP_TOKEN and leave SLACK_MCP_ADD_MESSAGE_TOOL unset to keep it strictly read-only.
- 06Do not use @modelcontextprotocol/server-slack, which is archived and should not be used for new setups.
Frequently asked questions
- how to connect Atlas to Slack
- Run atlas mcp add slack --url https://mcp.slack.com/mcp, put your Slack app's client ID and client secret in the mcp.slack.oauth block of atlas.json, run atlas mcp auth slack, then have a workspace admin approve it.
- why does the Slack MCP server need a registered Slack app
- Slack requires MCP clients to be backed by a registered Slack app with a fixed app ID. Its client ID and client secret go in the mcp.slack.oauth block of atlas.json.
- does the Slack MCP server support SSE
- No. Slack's official hosted MCP server speaks JSON-RPC over streamable HTTP only and does not support SSE.
- can I make the Slack MCP server read-only
- Yes. Run the community korotovsky/slack-mcp-server with SLACK_MCP_XOXP_TOKEN and leave SLACK_MCP_ADD_MESSAGE_TOOL unset, which keeps the server strictly read-only.
- why can Atlas not see my Slack channels
- Slack gates MCP access at the workspace level, so a workspace admin has to approve the connection. Without that approval, the Slack app credentials in atlas.json are not enough.
- is modelcontextprotocol server-slack still maintained
- No. @modelcontextprotocol/server-slack is archived and should not be used for new setups. Use Slack's hosted server at https://mcp.slack.com/mcp or korotovsky/slack-mcp-server.
- how do I get Atlas to summarize a Slack incident thread
- Ask Atlas to pull the last 50 messages from #incidents and summarize what broke before it opens the repo. It reads channel history through the Slack MCP server.
Try SeaShell in your terminal
The terminal-native AI coding agent. Free core, single binary.
Install SeaShellRelated guides
Atlas with Fireworks AI (gateway) in 2026
Drive Atlas with Fireworks AI (gateway) in 2026 for US-hosted DeepSeek V4 Flash and GLM 5.2. Access up to 1M token contexts and explicit fast-router tiers for optimal performance.
Atlas with DeepSeek Chat in 2026
In 2026, Atlas developers can leverage DeepSeek Chat for rapid code edits, refactors, and boilerplate generation. With a 1M token context and 384,000 max output, it's cost-effective for mechanical tasks.
Atlas vs Tabby: Terminal AI Coding Agents in 2026
Comparing Atlas and Tabby in 2026: Atlas offers terminal-native AI with explicit planning and diffing, while Tabby provides self-hosted GPU-based completion and a cloud agent.
Atlas for Node.js in 2026
Node.js developers in 2026 can adopt Atlas, the terminal-native AI coding agent, for secure, efficient development. Leverage local embeddings, AST indexing, and robust safety features.
Atlas for Angular in 2026
Adopt Atlas, the terminal-native AI coding agent, for your Angular projects in 2026. Enhance development with intelligent code search, secure local embeddings, and granular control over AI actions.
Atlas with SiliconFlow in 2026
Drive Atlas with SiliconFlow in 2026 for the cheapest Chinese open-weights models, including Qwen3-Coder-480B-A35B at $0.25/Mtok. Be aware of its mainland China API.
Atlas with DeepInfra in 2026
In 2026, Atlas developers can leverage DeepInfra for cost-optimized open-weights models. Integrate DeepInfra with Atlas for industry-leading low per-token prices and extensive context windows, ideal for agent loops.
Atlas with DeepSeek-R1 (local via Ollama) in 2026
Explore DeepSeek-R1 (local via Ollama) for Atlas in 2026. Leverage its visible chain-of-thought for debugging complex agent behavior, with variants from 1.5B to 671B and flexible pricing.