A GitHub Action that functions as a Slack MCP server, enabling secure image downloads and integrations with Slack.
A standalone GitHub Action that provides Slack MCP (Model Context Protocol) server functionality for Claude Code Action, enabling secure Slack image downloads and integrations.
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 }}
Input | Description | Required | Default |
---|---|---|---|
slack_token | Slack Bot User OAuth Token (xoxb-*) | โ | - |
download_directory | Directory for downloaded files | โ | "." |
Output | Description |
---|---|
mcp_config | JSON configuration for claude-code-action |
server_executable | Path to the Slack MCP server |
The action sets up the following environment variables for the MCP server:
SLACK_TOKEN
: Your Slack Bot User OAuth TokenDOWNLOAD_DIRECTORY
: Resolved absolute path for downloadsUnder OAuth & Permissions, add these Bot Token Scopes:
files:read # Read file content and metadata
xoxb-
)SLACK_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
slack_image_download
Downloads images from Slack with authentication.
Parameters:
url
(required): Slack file URL (must start with https://files.slack.com/
)filename
(optional): Custom filename (will be sanitized)Example:
{
"tool": "slack_image_download",
"arguments": {
"url": "https://files.slack.com/files-tmb/T05EFSVDCLR-F08TC9CP9B8/screenshot_720.png",
"filename": "screenshot.png"
}
}
slack_health_check
Checks the health and configuration of the Slack MCP server.
Example:
{
"tool": "slack_health_check",
"arguments": {}
}
# 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"
xoxb-
or xoxp-
"URL must be a Slack file URL"
https://files.slack.com/
are supported"Permission denied" errors
files:read
scopeDownload failures
Enable debug logging by setting ACTIONS_STEP_DEBUG=true
in your repository secrets.
git checkout -b feature/amazing-feature
)bun test
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
Interact with Hacker News through the Model Context Protocol (MCP), designed for Claude Desktop.
The most powerful MCP server for Slack Workspaces. This integration supports both Stdio and SSE transports, proxy settings and does not require any permissions or bots being created or approved by Workspace admins ๐.
A Node.js service for interacting with the LnExchange API for spot trading.
Provides access to Intercom conversations and chats. Requires an Intercom API key.
A server for interacting with DingTalk workspaces using the Model Context Protocol.
A server for interacting with LinkedIn, including authentication and posting capabilities.
Interact with the Clash of Clans API to retrieve game data. Requires a CLASH_API_KEY environment variable.
Connect AI assistants like Cursor to Google Chat and beyond โ enabling smart, extensible collaboration across chat platforms.
A text-to-speech (TTS) server using the VOICEVOX engine. Requires a running VOICEVOX instance and is currently macOS only.
An MCP server for interacting with the Warpcast social network.