web-slack-mcp
web-slack-mcp is a read-only MCP server that lets you interact with Slack through a persistent browser session (no API tokens required), making it ideal for guest workspace users where installing a Slack app or minting API tokens isn't possible. It cannot send or post messages.
Check login status (
check_login): Verify whether your persistent browser session is currently logged into Slack.Log in manually (
login): Open a visible Chromium browser window to sign into Slack via SSO, magic link, or other methods; the session is saved for future use.List channels and DMs (
list_channels): Retrieve the channels and direct messages visible in your Slack sidebar.Read recent messages (
read_messages): Fetch the most recent messages from a specified channel or DM (by name or partial name), returned oldest-first with timestamps and author names.Read a thread (
read_thread): Find a message in a channel by matching text, then retrieve its full thread (parent message + replies).Search messages (
search_messages): Search workspace-wide using Slack syntax.
Provides tools to read channels, messages, and threads from Slack via the web app, using a persistent browser session.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@web-slack-mcpread the last 10 messages in #design"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
web-slack-mcp
An MCP server that reads Slack through the web app, driven by Playwright over your own logged-in browser session.
Built for the case where you're a guest in a workspace and can't install a Slack app or mint API tokens — so instead of an app, it reuses the session in a persistent Chromium profile that you log into once.
Draft-only by design. It reads channels, messages, and threads, and (later) stages replies in the composer. There is no send code path in this server — it never posts a message.
How it works
Login is manual and one-time: a visible Chromium window opens, you sign in (SSO / magic link / whatever your workspace uses), and the session is saved to a persistent profile so it survives restarts.
Reads go through Slack's own internal JSON API (
conversations.history,conversations.replies,conversations.view), replayed from inside the logged-in browser context so the session cookie + boot token authenticate them. This is far more robust than scraping the virtualized React DOM.Navigation uses the UI only to resolve a human channel name to its id (the quick switcher routes to
/client/T…/<channel id>, which we read off the URL).Names — including Slack Connect / external members that per-id lookups won't return — are harvested in one
conversations.viewcall per channel.
Related MCP server: Slack MCP Server
Tools
Tool | Description |
| List channels/DMs visible in your sidebar. |
| Read recent messages in a channel/DM ( |
| Read a thread by matching text in its parent message. |
| Search messages workspace-wide with Slack search syntax. |
Requirements
Python 3.13+
uv(providesuvx)
Install & run
Run straight from GitHub with uvx — no clone needed:
uvx --from git+https://github.com/sercant/web-slack-mcp web-slack-mcpOn the first launch the server downloads the Chromium build Playwright drives
into Playwright's shared cache (~/Library/Caches/ms-playwright on macOS), so it
happens once and persists across runs.
Register with Claude Code
claude mcp add web-slack -- \
uvx --from git+https://github.com/sercant/web-slack-mcp web-slack-mcpThen reload Claude Code; the tools appear as mcp__web-slack__*. The first time
you call a read tool while signed out, the server opens a visible Chromium and
waits for you to sign in — no separate step. The session is saved and reused on
later runs.
Other MCP clients
Any client that speaks stdio works — point it at the same command:
{
"mcpServers": {
"web-slack": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/sercant/web-slack-mcp",
"web-slack-mcp"
]
}
}
}Configuration
All optional, via environment variables:
Variable | Default | Purpose |
|
| Slack web client URL. |
|
| Where the persistent browser profile (your session) lives. |
|
|
|
|
| Seconds a read tool waits for you to finish signing in before giving up. |
The profile directory holds your live Slack session — treat it like a credential and keep it out of version control (it's gitignored here).
Local development
git clone https://github.com/sercant/web-slack-mcp
cd web-slack-mcp
uv sync
uv run web-slack-mcpLicense
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA read-only MCP server that enables AI assistants to access Slack workspace data, including channels, messages, threads, and user information.16,9563MIT
- Alicense-qualityDmaintenanceEnables AI assistants to read messages, threads, channel info, user profiles, search conversations, and generate permalinks in Slack workspaces.1MIT
- AlicenseAqualityAmaintenanceGives AI agents full Slack access via session tokens, requiring no app registration, admin approval, or OAuth.212,13229MIT
- Alicense-qualityBmaintenanceRead-only MCP server for Slack with OAuth 2.1 authentication, enabling message retrieval, thread replies, search, user and channel listing.8Apache 2.0
Related MCP Connectors
Catch up on Slack without reading it. Unreads, threads, search. Browser-session or hosted OAuth.
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sercant/web-slack-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server