Claude MCP Slack

by atlasfutures

Not rated
GitHub

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

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.

No reviews yet β€” be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.