Mattermost MCP Server

by pvev

Servidor MCP de Mattermost

Servidor MCP para la API de Mattermost, que permite a Claude y otros clientes de MCP interactuar con los espacios de trabajo de Mattermost.

Características

Este servidor MCP proporciona herramientas para interactuar con Mattermost, incluidas:

Monitoreo de temas

El servidor incluye un sistema de monitoreo de temas que puede:

  • Monitorear canales específicos para mensajes que contengan temas de interés
  • Ejecutar según un cronograma configurable (usando la sintaxis cron)
  • Enviar notificaciones cuando se discutan temas relevantes
  • Mencionarte en un canal específico cuando se encuentren temas

Herramientas de canal

  • mattermost_list_channels : enumera los canales públicos en el espacio de trabajo
  • mattermost_get_channel_history : Obtener mensajes recientes de un canal

Herramientas de mensajes

  • mattermost_post_message : Publicar un nuevo mensaje en un canal
  • mattermost_reply_to_thread : Responder a un hilo de mensajes específico
  • mattermost_add_reaction : Agrega una reacción emoji a un mensaje
  • mattermost_get_thread_replies : Obtener todas las respuestas en un hilo

Herramientas de monitoreo

  • mattermost_run_monitoring : activa el proceso de monitoreo de temas inmediatamente

Herramientas de usuario

  • mattermost_get_users : Obtener una lista de usuarios en el espacio de trabajo
  • mattermost_get_user_profile : Obtener información detallada del perfil de un usuario

Configuración

  1. Clonar este repositorio:
git clone https://github.com/yourusername/mattermost-mcp.git cd mattermost-mcp
  1. Instalar dependencias:
npm install
  1. Configurar el servidor:El repositorio incluye un archivo config.json con valores de marcador de posición. Para la configuración, crea un archivo config.local.json (ignorado por git) con tus credenciales reales:
    { "mattermostUrl": "https://your-mattermost-instance.com/api/v4", "token": "your-personal-access-token", "teamId": "your-team-id", "monitoring": { "enabled": false, "schedule": "*/15 * * * *", "channels": ["town-square", "off-topic"], "topics": ["tv series", "champions league"], "messageLimit": 50 } }
    Este enfoque mantiene sus credenciales reales fuera del repositorio y al mismo tiempo conserva la plantilla para los demás.
  2. Construir el servidor:
npm run build
  1. Ejecutar el servidor:
npm start

Configuración de monitoreo de temas

El sistema de monitorización se puede configurar con las siguientes opciones:

  • enabled (booleano): si la monitorización está habilitada
  • schedule (cadena): expresión cron para determinar cuándo verificar si hay mensajes nuevos (por ejemplo, "*/15 * * * *" cada 15 minutos)
  • channels (cadena[]): Matriz de nombres de canales para monitorear
  • topics (cadena[]): Matriz de temas a buscar en los mensajes
  • messageLimit (número): Número de mensajes recientes a analizar por verificación
  • notificationChannelId (cadena, opcional): ID del canal donde se enviarán las notificaciones. Si no se proporciona, el sistema usará automáticamente un canal de mensajes directos.
  • userId (cadena, opcional): Su ID de usuario para menciones en notificaciones. Si no se proporciona, el sistema detectará automáticamente al usuario actual.

Para habilitar la monitorización, configure enabled como true en su archivo config.local.json .

Ejecución manual del monitoreo

Puede activar el proceso de supervisión manualmente de varias maneras:

  1. Usando los scripts proporcionados :
    • ./run-monitoring-http.sh - Activa la monitorización a través de HTTP sin reiniciar el servidor (recomendado)
    • ./run-monitoring.sh - Inicia una nueva instancia de servidor con la monitorización habilitada
    • ./trigger-monitoring.sh : ejecuta el proceso de monitoreo y sale (útil para trabajos cron)
    • ./view-channel-messages.js <channel-name> [count] - Ver los últimos mensajes en un canal
    • ./analyze-channel.js <channel-name> [count] - Analizar las estadísticas de mensajes en un canal
    • ./get-last-message.js <channel-name> - Obtener el último mensaje de un canal
  2. Usando la interfaz de línea de comandos (CLI) :
    • Mientras el servidor esté en ejecución, simplemente escriba uno de estos comandos en la terminal:
      • run - Ejecutar el proceso de monitoreo
      • monitor - Lo mismo que run
      • check - Lo mismo que run
    • Otros comandos disponibles:
      • help - Mostrar comandos disponibles
      • exit - Apagar el servidor
  3. Usando la herramienta MCP :
    • Utilice la herramienta mattermost_run_monitoring a través de la interfaz MCP
    • Esto comprobará inmediatamente todos los canales configurados para sus temas de interés.
  4. Usando las banderas de la línea de comandos :
    • Inicie el servidor con el indicador --run-monitoring : GXP6
    • Esto ejecutará el proceso de monitoreo inmediatamente después de que se inicie el servidor.
    • Agregue --exit-after-monitoring para salir una vez completado el proceso de monitoreo: GXP7
    • Esto es útil para ejecutar el proceso de monitoreo desde trabajos cron

Detalles de la herramienta

Herramientas de canal

mattermost_list_channels

  • Enumerar canales públicos en el espacio de trabajo
  • Entradas opcionales:
    • limit (número, predeterminado: 100, máximo: 200): Número máximo de canales a devolver
    • page (número, predeterminado: 0): Número de página para paginación
  • Devuelve: Lista de canales con sus IDs e información

mattermost_get_channel_history

  • Obtener mensajes recientes de un canal
  • Entradas requeridas:
    • channel_id (cadena): El ID del canal
  • Entradas opcionales:
    • limit (número, predeterminado: 30): Número de mensajes a recuperar
    • page (número, predeterminado: 0): Número de página para paginación
  • Devuelve: Lista de mensajes con su contenido y metadatos

Herramientas de mensajes

mattermost_post_message

  • Publicar un nuevo mensaje en un canal de Mattermost
  • Entradas requeridas:
    • channel_id (cadena): El ID del canal donde se publicará
    • message (cadena): el texto del mensaje a publicar
  • Devoluciones: Confirmación de publicación del mensaje e ID

mattermost_reply_to_thread

  • Responder a un hilo de mensajes específico
  • Entradas requeridas:
    • channel_id (cadena): El canal que contiene el hilo
    • post_id (cadena): ID del mensaje principal
    • message (cadena): El texto de respuesta
  • Devoluciones: Confirmación de respuesta e ID

mattermost_add_reaction

  • Agregar una reacción emoji a un mensaje
  • Entradas requeridas:
    • channel_id (cadena): El canal que contiene el mensaje
    • post_id (cadena): ID del mensaje al que se debe reaccionar
    • emoji_name (cadena): nombre del emoji sin dos puntos
  • Devoluciones: Confirmación de reacción

mattermost_get_thread_replies

  • Obtener todas las respuestas en un hilo de mensajes
  • Entradas requeridas:
    • channel_id (cadena): El canal que contiene el hilo
    • post_id (cadena): ID del mensaje principal
  • Devuelve: Lista de respuestas con su contenido y metadatos

Herramientas de usuario

mattermost_get_users

  • Obtener la lista de usuarios del espacio de trabajo con información básica del perfil
  • Entradas opcionales:
    • limit (número, predeterminado: 100, máximo: 200): Máximo de usuarios a devolver
    • page (número, predeterminado: 0): Número de página para paginación
  • Devuelve: Lista de usuarios con sus perfiles básicos

mattermost_get_user_profile

  • Obtenga información detallada del perfil de un usuario específico
  • Entradas requeridas:
    • user_id (cadena): el ID del usuario
  • Devoluciones: Información detallada del perfil de usuario

Uso con Claude Desktop

Agregue lo siguiente a su claude_desktop_config.json :

{ "mcpServers": { "mattermost": { "command": "node", "args": [ "/path/to/mattermost-mcp/build/index.js" ] } } }

Solución de problemas

Si encuentra errores de permisos, verifique que:

  1. Su token de acceso personal tiene los permisos necesarios
  2. El token se ha copiado correctamente a su configuración
  3. La URL de Mattermost y el ID del equipo son correctos

Puntos finales HTTP

El servidor expone puntos finales HTTP para control remoto:

  • Monitoreo de ejecución : http://localhost:3456/run-monitoring
    • Activa el proceso de monitoreo inmediatamente
    • Devuelve una respuesta JSON con información de éxito/error
  • Comprobar estado : http://localhost:3456/status
    • Devuelve información sobre el servidor y el estado de monitorización.
    • Útil para controles de salud

Puede utilizar estos puntos finales con curl o cualquier cliente HTTP:

# Trigger monitoring curl http://localhost:3456/run-monitoring # Check status curl http://localhost:3456/status

Scripts de utilidad

monitorización de ejecución http.sh

Este script activa el proceso de monitorización a través del punto final HTTP:

./run-monitoring-http.sh

Esta es la forma recomendada de activar la monitorización manualmente ya que:

  • No reinicia el servidor
  • No interfiere con el monitoreo programado
  • Funciona de forma fiable desde cualquier terminal

ver-canal-mensajes.js

Este script te permite ver los mensajes más recientes en cualquier canal:

# View messages in a channel (channel name is required) node view-channel-messages.js <channel-name> # View a specific number of messages node view-channel-messages.js <channel-name> <message-count> # Example: View the last 10 messages in a channel node view-channel-messages.js general 10

El script mostrará:

  • Información del canal (nombre, propósito, número total de mensajes)
  • Los mensajes más recientes con marcas de tiempo y nombres de usuario
  • Si el canal no existe, se enumerarán todos los canales disponibles.

analizar-canal.js

Este script proporciona estadísticas detalladas sobre los mensajes en un canal:

# Analyze messages in a channel (channel name is required) node analyze-channel.js <channel-name> # Analyze a specific number of messages node analyze-channel.js <channel-name> <message-count> # Example: Analyze the last 50 messages in a channel node analyze-channel.js general 50

El script mostrará:

  • Información del canal y metadatos
  • Recuento total de mensajes (incluidos los mensajes del sistema)
  • Desglose de los mensajes del usuario frente a los mensajes del sistema
  • Recuento de mensajes por usuario
  • Los mensajes más recientes en el canal

obtener-último-mensaje.js

Este script recupera solo el mensaje más reciente de un canal:

# Get the last message from a channel (channel name is required) node get-last-message.js <channel-name> # Example: Get the last message from the general channel node get-last-message.js general

El script mostrará:

  • El ID de usuario y el nombre de usuario del remitente
  • La marca de tiempo del mensaje
  • El contenido completo del mensaje

Licencia

Este servidor MCP tiene licencia MIT.

-
security - not tested
-
license - not tested
-
quality - not tested

Un servidor MCP que permite a Claude y otros clientes MCP interactuar con espacios de trabajo de Mattermost, proporcionando gestión de canales, capacidades de mensajería y funcionalidad de monitoreo de temas.

  1. Features
    1. Topic Monitoring
    2. Channel Tools
    3. Message Tools
    4. Monitoring Tools
    5. User Tools
  2. Setup
    1. Topic Monitoring Configuration
      1. Running Monitoring Manually
    2. Tool Details
      1. Channel Tools
      2. Message Tools
      3. User Tools
    3. Usage with Claude Desktop
      1. Troubleshooting
        1. HTTP Endpoints
          1. Utility Scripts
            1. run-monitoring-http.sh
            2. view-channel-messages.js
            3. analyze-channel.js
            4. get-last-message.js
          2. License
            ID: affmyvem9i