Claude MCP Slack
About
A GitHub Action that functions as a Slack MCP server, enabling secure image downloads and integrations with Slack.
Details
- Author
- atlasfutures
- Categories
- Communication, Other, Automation
Jump to
Setup
Install Claude MCP Slack in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/atlasfutures/claude-mcp-slack
Follow the installation instructions in the repository README, then restart your MCP client.
A standalone GitHub Action that provides Slack MCP (Model Context Protocol) server functionality for Claude Code Action, enabling secure Slack image downloads and integrations.
- πSecure Slack Integration: Authenticated access to Slack files using Bot User OAuth tokens
- πFlexible File Management: Customizable download directories with security validation
- π³Docker Support: Run locally or in containers with proper security constraints
- π‘οΈSecurity First: Input validation, path traversal prevention, and secure token handling
- π§ͺComprehensive Testing: Unit, integration, and security test suites
- β‘Easy Integration: Drop-in compatibility with claude-code-action
name: Example Workflow on: issues: types: [opened] issue_comment: types: [created] jobs: claude-response: runs-on: ubuntu-latest steps: - name: Setup Slack MCP uses: atlasfutures/claude-mcp-slack@v1 with: slack_token: ${{ secrets.SLACK_TOKEN }} id: slack-mcp - name: Claude Code Action uses: anthropics/claude-code-action@main with: mcp_config: ${{ steps.slack-mcp.outputs.mcp_config }} anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
- name: Setup Slack MCP uses: atlasfutures/claude-mcp-slack@v1 with: slack_token: ${{ secrets.SLACK_TOKEN }} download_directory: "./slack-assets" id: slack-mcp - name: Claude Code Action with Multiple MCP Servers uses: anthropics/claude-code-action@main with: mcp_config: | { "mcpServers": { "slack": ${{ steps.slack-mcp.outputs.mcp_config }}.mcpServers.slack, "custom": { "command": "node", "args": ["custom-server.js"], "env": { "API_KEY": "${{ secrets.CUSTOM_API_KEY }}" } } } } anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
The action sets up the following environment variables for the MCP server:
- SLACK_TOKEN: Your Slack Bot User OAuth Token
- DOWNLOAD_DIRECTORY: Resolved absolute path for downloads
- Go toapi.slack.com/apps
- Click "Create New App" β "From scratch"
- Name your app and select your workspace
UnderOAuth & Permissions, add these Bot Token Scopes:
files:read # Read file content and metadata
- Click "Install to Workspace"
- Copy the "Bot User OAuth Token" (starts withxoxb-)
- Add it to your repository secrets asSLACK_TOKEN
Once configured, Claude can download Slack images:
@claude Please analyze this screenshot from our Slack channel: https://files.slack.com/files-tmb/T05EFSVDCLR-F08TC9CP9B8/screenshot_720.png
Downloads images from Slack with authentication.
- url(required): Slack file URL (must start withhttps://files.slack.com/)
- filename(optional): Custom filename (will be sanitized)
{ "tool": "slack_image_download", "arguments": { "url": "https://files.slack.com/files-tmb/T05EFSVDCLR-F08TC9CP9B8/screenshot_720.png", "filename": "screenshot.png" } }
Checks the health and configuration of the Slack MCP server.
{ "tool": "slack_health_check", "arguments": {} }
- URL validation (must be Slack files domain)
- Token format verification
- Path traversal prevention
- Filename sanitization
- Non-root container execution
- Read-only filesystem (except download directory)
- Resource limits (file size, timeout)
- No shell metacharacter injection
- Environment variable isolation
- No token logging or exposure
- Secure token format validation
# Clone repository git clone https://github.com/atlasfutures/claude-mcp-slack.git cd claude-mcp-slack # Install dependencies bun install # Run tests bun test # Type check bun run typecheck # Format code bun run format
# Build and run with docker-compose docker-compose up claude-mcp-slack-dev # Or build manually docker build -t claude-mcp-slack . docker run -e SLACK_TOKEN=your-token claude-mcp-slack
# Run all tests bun test # Run specific test suites bun run test:unit bun run test:integration bun run test:security # Run with coverage bun test --coverage
"SLACK_TOKEN environment variable is required"
- Ensure your Slack token is properly set in repository secrets
- Verify the token starts withxoxb-orxoxp-
"URL must be a Slack file URL"
- Only URLs starting withhttps://files.slack.com/are supported
- Ensure the URL is from a Slack file, not a regular message
- Check that your Slack bot hasfiles:readscope
- Verify the bot is installed in the workspace where the file is located
- Ensure the file hasn't been deleted from Slack
- Check that the file is accessible to your bot
- Verify network connectivity and firewall settings
Enable debug logging by settingACTIONS_STEP_DEBUG=truein your repository secrets.
- Fork the repository
- Create a feature branch (git checkout -b feature/amazing-feature)
- Make your changes
- Add tests for new functionality
- Ensure all tests pass (bun test)
- Commit your changes (git commit -m 'Add amazing feature')
- Push to the branch (git push origin feature/amazing-feature)
- Open a Pull Request
- Follow TypeScript best practices
- Add tests for all new features
- Update documentation for API changes
- Ensure security tests pass
- Use conventional commit messages
This project is licensed under the MIT License - see theLICENSEfile for details.
- πDocumentation
- πBug Reports
- π¬Discussions
- claude-code-action- Official Claude GitHub Action
- MCP SDK- Model Context Protocol SDK
Slack for AI agents - a local service where agents can join projects, message each other, and share resources in a structured workspace
Allows AI assistants to request information and receive responses from humans via Slack.
A lightweight notification service that sends webhooks for completed MCP tasks to providers like Discord, Slack, and Teams.
An MCP server for interacting with the Slack API, allowing for sending messages, managing channels, and other workspace actions.
Interact with Slack workspaces, enabling message sending, channel management, and user interactions.
An MCP server for interacting with Slack workspaces using user tokens, without requiring bots or special permissions.
A server for integrating with Slack, enabling communication and automation within your workspace.
Interact with Slack workspaces as a user via the Slack API.
Post messages to Slack channels using incoming webhooks.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


