Claude MCP Slack - MCP Server sécurisé par ALMC Security 2025

Claude MCP Slack

Voir sur GitHub

Claude MCP Slack

Une action GitHub autonome qui fournit la fonctionnalité de serveur Slack MCP (Model Context Protocol) pour l'action Claude Code, permettant des téléchargements d'images Slack sécurisés et des intégrations.

Caractéristiques

  • 🔐 Intégration Slack sécurisée: Accès authentifié aux fichiers Slack en utilisant les jetons OAuth de l'utilisateur Bot
  • 📁 Gestion flexible des fichiers: Répertoires de téléchargement personnalisables avec validation de sécurité
  • 🐳 Prise en charge de Docker: Exécuter localement ou dans des conteneurs avec des contraintes de sécurité appropriées
  • 🛡️ Security First: validation des entrées, prévention de la traversée des chemins et traitement sécurisé des jetons
  • 🧪 Tests complets: Suites de tests unitaires, d'intégration et de sécurité
  • Intégration facile: Compatibilité avec claude-code-action

Démarrage rapide

Utilisation de base

name : Example Workflow on : issues : types : [open] 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 }}

Configuration avancée

- 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 }}

Configuration

Entrées

EntréeDescriptionObligatoireDéfaut
slack_tokenToken OAuth de l'utilisateur de Slack Bot (xoxb-*)-
download_directoryRépertoire pour les fichiers téléchargés"."

Sorties

SortieDescription
mcp_configConfiguration JSON pour claude-code-action
server_executableChemin d'accès au serveur Slack MCP

Variables d'environnement

L'action définit les variables d'environnement suivantes pour le serveur MCP :

  • SLACK_TOKEN: Votre jeton OAuth d'utilisateur Slack Bot
  • DOWNLOAD_DIRECTORY: Chemin absolu résolu pour les téléchargements

Configuration du Slack Bot

1. Créer une application Slack

  1. Allez sur api.slack.com/apps
  2. Cliquez sur "Create New App" → "From scratch" (Créer une nouvelle application)
  3. Nommez votre application et sélectionnez votre espace de travail

2. Configurer les champs d'application des tokens de bot

Sous OAuth & Permissions, ajoutez ces scopes de token bot :

files:read # Lire le contenu et les métadonnées des fichiers

3. Installer dans l'espace de travail

  1. Cliquez sur "Installer dans l'espace de travail"
  2. Copiez le "Bot User OAuth Token" (commence par xoxb-)
  3. Ajoutez-le aux secrets de votre dépôt en tant que SLACK_TOKEN

4. Exemple d'utilisation du bot

Une fois configuré, Claude peut télécharger les images Slack :

@claude Veuillez analyser cette capture d'écran de notre canal Slack : https://files.slack.com/files-tmb/T05EFSVDCLR-F08TC9CP9B8/screenshot_720.png

Outils MCP disponibles

slack_image_download

Télécharge des images depuis Slack avec authentification.

Paramètres :

  • url (obligatoire) : URL du fichier Slack (doit commencer par https://files.slack.com/)
  • filename (optionnel) : Nom de fichier personnalisé (sera analysé)

Exemple :

{"tool" : "slack_image_download", "arguments" : { "url" : "https://files.slack.com/files-tmb/T05EFSVDCLR-F08TC9CP9B8/screenshot_720.png", "filename" : "screenshot.png" } }

slack_health_check

Vérifie l'état et la configuration du serveur Slack MCP.

Exemple :

{"tool" : "slack_health_check", "arguments" : {} }

Fonctionnalités de sécurité

Validation des entrées

  • Validation de l'URL (doit être un domaine de fichiers Slack)
  • Vérification du format du jeton
  • Prévention de la traversée du chemin
  • Assainissement du nom de fichier

Exécution sécurisée

  • Exécution dans un conteneur non racine
  • Système de fichiers en lecture seule (sauf répertoire de téléchargement)
  • Limitation des ressources (taille des fichiers, délai d'attente)
  • Pas d'injection de métacaractères dans le shell

Sécurité des jetons

  • Isolation des variables d'environnement
  • Pas d'enregistrement ou d'exposition des jetons
  • Validation sécurisée du format du jeton

Développement

Installation locale

# Cloner le dépôt git clone https://github.com/atlasfutures/claude-mcp-slack.git cd claude-mcp-slack # Installer les dépendances bun install # Exécuter les tests bun test # Vérifier le type bun run typecheck # Formater le code bun run format

Développement Docker

# Construire et exécuter avec docker-compose docker-compose up claude-mcp-slack-dev # Ou construire manuellement docker build -t claude-mcp-slack . docker run -e SLACK_TOKEN=votre-token claude-mcp-slack

Test

# Exécuter tous les tests bun test # Exécuter des suites de tests spécifiques bun run test:unit bun run test:integration bun run test:security # Exécuter avec couverture bun test --coverage

Résolution des problèmes

Problèmes courants

"La variable d'environnement SLACK_TOKEN est requise"

  • Assurez-vous que votre jeton Slack est correctement défini dans les secrets du référentiel
  • Vérifiez que le jeton commence par xoxb- ou xoxp-

"L'URL doit être une URL de fichier Slack"

  • Seules les URL commençant par https://files.slack.com/ sont prises en charge
  • Assurez-vous que l'URL provient d'un fichier Slack, et non d'un message ordinaire

"Erreurs "Permission refusée

  • Vérifiez que votre robot Slack a la portée files:read
  • Vérifiez que le bot est installé dans l'espace de travail où se trouve le fichier

Échecs de téléchargement

  • Vérifiez que le fichier n'a pas été supprimé de Slack
  • Vérifiez que le fichier est accessible à votre robot
  • Vérifiez la connectivité du réseau et les paramètres du pare-feu

Mode débogage

Activez la journalisation de débogage en définissant ACTIONS_STEP_DEBUG=true dans les secrets de votre dépôt.

Contribuer

  1. Mettre en place le dépôt
  2. Créez une branche de fonctionnalités(git checkout -b feature/amazing-feature)
  3. Effectuez vos modifications
  4. Ajouter des tests pour les nouvelles fonctionnalités
  5. S'assurer que tous les tests sont réussis(bun test)
  6. Validez vos modifications(git commit -m 'Add amazing feature')
  7. Pousser vers la branche(git push origin feature/amazing-feature)
  8. Ouvrir une demande d'extraction

Directives de développement

  • Suivre les meilleures pratiques TypeScript
  • Ajouter des tests pour toutes les nouvelles fonctionnalités
  • Mettre à jour la documentation pour les changements d'API
  • S'assurer que les tests de sécurité sont réussis
  • Utiliser des messages de livraison conventionnels

Licence

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.

Support

Projets apparentés

Liés dans Communication - MCP Servers sécurisés

ServeurRésuméActions
Publicité sur FacebookVoir
Gestion d'Apex X (Twitter)Voir
Somme du chatCe serveur MCP est utilisé pour résumer vos messages de chat.Voir
any-chat-completions-mcpIntégrez Claude avec n'importe quelle API de complétion de chat compatible avec le SDK OpenAI - Open...Voir
AskMeMCPAskMeMCP est un serveur Model Context Protocol (MCP) qui permet aux assistants d'intelligence artifi...Voir
AgentMailLe serveur AgentMail MCP fournit des outils pour l'API AgentMail.Voir