Slack User

Interaja com workspaces do Slack como um usuário através da API do Slack.

Documentação

Servidor MCP Slack User

CI License: MIT Security Policy

Servidor MCP para a API do Slack, permitindo que o Claude interaja com workspaces do Slack como usuário.

Ferramentas

  1. slack_list_channels

    • Lista canais públicos no workspace
    • Entradas opcionais:
      • limit (número, padrão: 100, máximo: 200): Número máximo de canais a retornar
      • cursor (string): Cursor de paginação para a próxima página
    • Retorna: Lista de canais com seus IDs e informações
  2. slack_post_message

    • Publica uma nova mensagem em um canal do Slack
    • Entradas obrigatórias:
      • channel_id (string): O ID do canal onde publicar
      • text (string): O texto da mensagem a publicar
    • Retorna: Confirmação de publicação da mensagem e timestamp
  3. slack_reply_to_thread

    • Responde a um tópico de mensagem específico
    • Entradas obrigatórias:
      • channel_id (string): O canal que contém o tópico
      • thread_ts (string): Timestamp da mensagem pai
      • text (string): O texto da resposta
    • Retorna: Confirmação da resposta e timestamp
  4. slack_add_reaction

    • Adiciona uma reação de emoji a uma mensagem
    • Entradas obrigatórias:
      • channel_id (string): O canal que contém a mensagem
      • timestamp (string): Timestamp da mensagem para reagir
      • reaction (string): Nome do emoji sem dois-pontos
    • Retorna: Confirmação da reação
  5. slack_get_channel_history

    • Obtém mensagens recentes de um canal
    • Entradas obrigatórias:
      • channel_id (string): O ID do canal
    • Entradas opcionais:
      • limit (número, padrão: 10): Número de mensagens a recuperar
    • Retorna: Lista de mensagens com seu conteúdo e metadados
  6. slack_get_thread_replies

    • Obtém todas as respostas em um tópico de mensagem
    • Entradas obrigatórias:
      • channel_id (string): O canal que contém o tópico
      • thread_ts (string): Timestamp da mensagem pai
    • Retorna: Lista de respostas com seu conteúdo e metadados
  7. slack_get_users

    • Obtém lista de usuários do workspace com informações básicas de perfil
    • Entradas opcionais:
      • cursor (string): Cursor de paginação para a próxima página
      • limit (número, padrão: 100, máximo: 200): Número máximo de usuários a retornar
    • Retorna: Lista de usuários com seus perfis básicos
  8. slack_get_user_profile

    • Obtém informações detalhadas de perfil para um usuário específico
    • Entradas obrigatórias:
      • user_id (string): O ID do usuário
    • Retorna: Informações detalhadas do perfil do usuário

Configuração

  1. Crie um App do Slack:

    • Visite a página de Apps do Slack
    • Clique em "Create New App"
    • Escolha "From scratch"
    • Dê um nome ao seu app e selecione seu workspace
  2. Configure os Escopos do Token de Usuário: Navegue até "OAuth & Permissions" e adicione estes escopos:

    • channels:history - Visualizar mensagens e outros conteúdos em canais públicos
    • channels:read - Visualizar informações básicas de canais
    • chat:write - Enviar mensagens como você mesmo
    • reactions:write - Adicionar reações de emoji a mensagens
    • users:read - Visualizar usuários e suas informações básicas
  3. Instale o App no Workspace:

    • Clique em "Install to Workspace" e autorize o app
    • Salve o "User OAuth Token" que começa com xoxp-.
  4. Para tokens de nível organizacional, obtenha seu Team ID (começa com um T) seguindo esta orientação. É opcional para tokens de workspace comuns.

Trate os tokens OAuth como segredos. Não os envie para repositórios, não os coloque em issues ou pull requests, nem os cole em configurações compartilhadas. Rotacione um token imediatamente se ele for exposto.

Uso com Claude Desktop

Adicione o seguinte ao seu claude_desktop_config.json:

Instalação Local

Primeiro instale e construa o servidor:

git clone https://github.com/lars-hagen/slack-user-mcp.git
cd slack-user-mcp
npm install
npm run build

Em seguida, configure o Claude Desktop:

{
  "mcpServers": {
    "slack": {
      "command": "npm",
      "args": [
        "run",
        "--prefix",
        "/path/to/slack-user-mcp",
        "start"
      ],
      "env": {
        "SLACK_TOKEN": "xoxp-your-user-token"
      }
    }
  }
}

NPX

Este projeto não está publicado no npm. Não use um nome de pacote npx para ele. Clone e construa localmente conforme mostrado acima e, em seguida, use a configuração local.

Docker

{
  "mcpServers": {
    "slack": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "SLACK_TOKEN",
        "slack-user-mcp"
      ],
      "env": {
        "SLACK_TOKEN": "xoxp-your-user-token"
      }
    }
  }
}

Construa a imagem primeiro com docker build -t slack-user-mcp .. Adicione -e SLACK_TEAM_ID e SLACK_TEAM_ID ao env somente ao usar um token de nível organizacional.

Instalação via Smithery

Para instalar o Slack User Server para Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli install @lars-hagen/slack-user-mcp --client claude

Solução de Problemas

Se você encontrar erros de permissão, verifique se:

  1. Todos os escopos necessários foram adicionados ao seu app do Slack
  2. O app está instalado corretamente no seu workspace
  3. O token e, quando necessário, o ID do workspace foram copiados corretamente para sua configuração
  4. O app foi adicionado aos canais que precisa acessar
  5. Você está usando um User OAuth Token (começa com xoxp-) em vez de um Bot Token

Build

Build Docker:

docker build -t slack-user-mcp .

Status de manutenção

Este projeto recebe manutenção focada e de melhor esforço. Não possui SLA de suporte. Por favor, relate preocupações de segurança de forma privada, conforme descrito em SECURITY.md.

Licença

Este servidor MCP é licenciado sob a Licença MIT. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença MIT. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.