slack-code-mcp
Allows interaction with Slack's Web API, enabling AI agents to search for operations, execute validated API calls (read and write), and check auth status.
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., "@slack-code-mcplist all channels in my Slack workspace"
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.
Slack Code MCP
Model Context Protocol (MCP) is a standardized way for LLMs to use external systems through tools. This repository provides a focused remote MCP server for Slack Web API so agents can discover operations and execute validated API calls with a fixed low-context tool surface.
Design references:
The server supports streamable-http transport via /mcp.
Server in this Repository
Server | Description | URL |
| Search + execute over Slack Web API operations with OAuth and write guardrails |
|
Related MCP server: Slack Search MCP Server
Tools Exposed
Tool | Purpose | Typical use |
| Finds ranked operations from Slack method catalog + docs context | "list channels", "post message", "get conversation history" |
| Validates and executes operation by | Read and write API calls with typed validation |
| Returns auth status for current caller | Preflight before |
Why Better Than Official MCP Patterns
Compared to official/provider MCP servers that expose many endpoint-level tools, this implementation is better for agent behavior:
Fixed
3-tool interface keeps context and tool-selection ambiguity low.Two-step control loop (
searchthenexecute) aligns with how agents plan and call tools.Write safety is explicit: server policy gate plus per-call confirmation token.
Performance controls (catalog cache, read cache, response truncation) reduce latency and context bloat.
Access from Any MCP Client
If your MCP client supports remote MCP directly:
{
"mcpServers": {
"slack-code-mcp": {
"transport": "streamable_http",
"url": "http://127.0.0.1:3000/mcp",
"headers": {
"x-user-id": "default"
}
}
}
}If your client needs a command bridge:
{
"mcpServers": {
"slack-code-mcp": {
"command": "npx",
"args": ["mcp-remote", "http://127.0.0.1:3000/mcp"],
"env": {
"MCP_REMOTE_HEADERS": "{\"x-user-id\":\"default\"}"
}
}
}
}Quick Start
cd slack
npm install
npm run build
npm testSeed access token from environment:
SLACK_BOT_TOKEN='<xoxb-token>' npm run seed:tokenStart server:
TOKEN_STORE_PATH=./data/tokens.integration.json \
TOKEN_ENCRYPTION_KEY_BASE64='<seed-output-key>' \
PORT=3000 HOST=127.0.0.1 npm run devSmoke test:
curl -sS http://127.0.0.1:3000/healthz
MCP_URL=http://127.0.0.1:3000/mcp USER_ID=default npm run smoke:mcpTool Calling Flow
Call
auth_status.Call
searchwith intent (for example,list channels).Pick an
operation_id.Call
executewith required params inbody.For writes: call
dry_run=true, then replay withconfirm_write_tokenandALLOW_WRITES=true.
Example search input:
{
"query": "post a message to a channel",
"limit": 5
}Example read execute input:
{
"operation_id": "POST /conversations.list"
}Example write execute dry run:
{
"operation_id": "POST /chat.postMessage",
"body": {
"channel": "C12345678",
"text": "Hello from Slack Code MCP"
},
"dry_run": true
}Configuration
Key environment variables:
ALLOW_WRITES(defaultfalse)REQUEST_TIMEOUT_MSMAX_RETRIESCATALOG_CACHE_PATHREAD_CACHE_TTL_MSEXECUTE_MAX_BODY_BYTESEXECUTE_BODY_PREVIEW_CHARS
See .env.example for the full set.
Safety Model
Mutating operations are blocked unless
ALLOW_WRITES=true.Mutating calls require
confirm_write_tokenfrom matching dry-run request.Sensitive headers and body fields are redacted.
Performance Model
Fixed 3-tool MCP surface to keep context small.
Persisted catalog cache enables fast startup and asynchronous refresh.
Conditional docs refresh (
ETag/Last-Modified) where available.Short TTL cache for repeated read operations.
Execute body truncation controls context overhead.
Troubleshooting
MCP Inspector connect failure: confirm URL is
http://127.0.0.1:3000/mcpand server is running.AUTH_REQUIRED: seed token or complete OAuth bootstrap.Write blocked: set
ALLOW_WRITES=trueand use returnedconfirm_write_token.Slack API error with HTTP 200: Slack methods often return
{ ok: false, error: "..." }; this is surfaced as tool error.
Development
Source:
srcTests:
testsReferences:
REFERENCES.md
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/dsouzaAnush/slack-code-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server