Slack User

Interactúa con espacios de trabajo de Slack como un usuario a través de la API de Slack.

Documentación

Slack User MCP Server

CI License: MIT Security Policy

Servidor MCP para la API de Slack, que permite a Claude interactuar con espacios de trabajo de Slack como usuario.

Herramientas

  1. slack_list_channels

    • Lista los canales públicos del espacio de trabajo
    • Entradas opcionales:
      • limit (número, predeterminado: 100, máximo: 200): Número máximo de canales a devolver
      • cursor (cadena): Cursor de paginación para la siguiente página
    • Devuelve: Lista de canales con sus IDs e información
  2. slack_post_message

    • Publica un nuevo mensaje en un canal de Slack
    • Entradas requeridas:
      • channel_id (cadena): El ID del canal donde publicar
      • text (cadena): El texto del mensaje a publicar
    • Devuelve: Confirmación de publicación del mensaje y marca de tiempo
  3. slack_reply_to_thread

    • Responde a un hilo de mensaje específico
    • Entradas requeridas:
      • channel_id (cadena): El canal que contiene el hilo
      • thread_ts (cadena): Marca de tiempo del mensaje principal
      • text (cadena): El texto de la respuesta
    • Devuelve: Confirmación de respuesta y marca de tiempo
  4. slack_add_reaction

    • Añade una reacción emoji a un mensaje
    • Entradas requeridas:
      • channel_id (cadena): El canal que contiene el mensaje
      • timestamp (cadena): Marca de tiempo del mensaje al que reaccionar
      • reaction (cadena): Nombre del emoji sin dos puntos
    • Devuelve: Confirmación de la reacción
  5. slack_get_channel_history

    • Obtiene mensajes recientes de un canal
    • Entradas requeridas:
      • channel_id (cadena): El ID del canal
    • Entradas opcionales:
      • limit (número, predeterminado: 10): Número de mensajes a recuperar
    • Devuelve: Lista de mensajes con su contenido y metadatos
  6. slack_get_thread_replies

    • Obtiene todas las respuestas en un hilo de mensaje
    • Entradas requeridas:
      • channel_id (cadena): El canal que contiene el hilo
      • thread_ts (cadena): Marca de tiempo del mensaje principal
    • Devuelve: Lista de respuestas con su contenido y metadatos
  7. slack_get_users

    • Obtiene la lista de usuarios del espacio de trabajo con información básica del perfil
    • Entradas opcionales:
      • cursor (cadena): Cursor de paginación para la siguiente página
      • limit (número, predeterminado: 100, máximo: 200): Número máximo de usuarios a devolver
    • Devuelve: Lista de usuarios con sus perfiles básicos
  8. slack_get_user_profile

    • Obtiene información detallada del perfil de un usuario específico
    • Entradas requeridas:
      • user_id (cadena): El ID del usuario
    • Devuelve: Información detallada del perfil del usuario

Configuración

  1. Crea una aplicación de Slack:

  2. Configura los ámbitos del token de usuario: Navega a "OAuth & Permissions" y añade estos ámbitos:

    • channels:history - Ver mensajes y otro contenido en canales públicos
    • channels:read - Ver información básica del canal
    • chat:write - Enviar mensajes como tú mismo
    • reactions:write - Añadir reacciones emoji a mensajes
    • users:read - Ver usuarios y su información básica
  3. Instala la aplicación en el espacio de trabajo:

    • Haz clic en "Install to Workspace" y autoriza la aplicación
    • Guarda el "User OAuth Token" que comienza con xoxp-.
  4. Para tokens a nivel de organización, obtén tu Team ID (comienza con T) siguiendo esta guía. Es opcional para tokens de espacio de trabajo ordinarios.

Trata los tokens OAuth como secretos. No los confirmes en repositorios, no los incluyas en issues o pull requests, ni los pegues en configuración compartida. Rota un token inmediatamente si se expone.

Uso con Claude Desktop

Añade lo siguiente a tu claude_desktop_config.json:

Instalación local

Primero instala y compila el servidor:

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

Luego configura Claude Desktop:

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

NPX

Este proyecto no está publicado en npm. No uses un nombre de paquete npx para él. Clona y compílalo localmente como se muestra arriba, y luego usa la configuración local.

Docker

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

Compila la imagen primero con docker build -t slack-user-mcp .. Añade -e SLACK_TEAM_ID y SLACK_TEAM_ID a env solo cuando uses un token a nivel de organización.

Instalación mediante Smithery

Para instalar Slack User Server para Claude Desktop automáticamente mediante Smithery:

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

Solución de problemas

Si encuentras errores de permisos, verifica que:

  1. Todos los ámbitos requeridos estén añadidos a tu aplicación de Slack
  2. La aplicación esté correctamente instalada en tu espacio de trabajo
  3. El token y, cuando sea necesario, el ID del espacio de trabajo estén copiados correctamente en tu configuración
  4. La aplicación se haya añadido a los canales a los que necesita acceder
  5. Estés usando un User OAuth Token (comienza con xoxp-) en lugar de un Bot Token

Compilación

Compilación de Docker:

docker build -t slack-user-mcp .

Estado de mantenimiento

Este proyecto recibe mantenimiento enfocado y de mejor esfuerzo. No tiene SLA de soporte. Por favor, reporta problemas de seguridad de forma privada como se describe en SECURITY.md.

Licencia

Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que eres libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT. Para más detalles, consulta el archivo LICENSE en el repositorio del proyecto.