Seq MCP Server

Buscar y transmitir eventos desde un servidor Seq.

Documentación

Seq MCP Server

Un servidor del Model Context Protocol (MCP) que proporciona herramientas para buscar y transmitir eventos desde Seq.

Instalación

Como herramienta global de .NET (Recomendado)

# Install
dotnet tool install -g SeqMcpServer

# Update to latest version
dotnet tool update -g SeqMcpServer

# Uninstall
dotnet tool uninstall -g SeqMcpServer

Requisitos

  • .NET 10.0 Runtime o SDK
  • Servidor Seq (local o remoto)
  • Clave de API de Seq válida

Inicio rápido

Entorno de desarrollo

# Clone the repository
git clone https://github.com/willibrandon/seq-mcp-server
cd seq-mcp-server

# Setup development environment (fully automated)
# PowerShell (Windows)
./scripts/setup-dev.ps1

# Bash (Linux/Mac)
./scripts/setup-dev.sh

# Build and run the MCP server
dotnet build
dotnet run --project SeqMcpServer

El script de configuración automáticamente:

  • Inicia un contenedor de Seq en los puertos 15341/18081
  • Configura la autenticación y crea una clave de API
  • Establece las variables de entorno
  • Crea un archivo .env para la aplicación

Despliegue en producción

Los servidores MCP no se ejecutan directamente; los lanzan los clientes MCP. Para producción:

  1. Compile e implemente el ejecutable:
dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true
  1. Configure su cliente MCP para usar el ejecutable implementado:
{
  "mcpServers": {
    "seq": {
      "command": "/path/to/seq-mcp-server",
      "env": {
        "SEQ_SERVER_URL": "http://your-seq-server:5341",
        "SEQ_API_KEY": "your-production-api-key"
      }
    }
  }
}

Herramientas MCP

Las siguientes herramientas están disponibles a través del protocolo MCP:

  • SeqSearch - Busca eventos de Seq con filtros, rangos de fechas, signals y paginación

    • Parámetros:
      • filter (obligatorio): Expresión de filtro de Seq (use la cadena vacía "" para todos los eventos)
      • count: Número de eventos a devolver (predeterminado: 100, máximo: 1000)
      • signalId (opcional): ID de signal para filtrar eventos (use SignalList para encontrar IDs)
      • fromDateUtc (opcional): Fecha/hora más temprana (ISO 8601, p. ej., "2024-01-01T00:00:00Z")
      • toDateUtc (opcional): Fecha/hora más reciente (ISO 8601, p. ej., "2024-01-31T23:59:59Z")
      • afterId (opcional): ID de evento para buscar después (exclusivo) - use para paginación
      • timeoutSeconds (opcional): Tiempo de espera en segundos (1-300)
      • workspace (opcional): Workspace específico para consultar
    • Devuelve: Lista de eventos coincidentes (ordenados de menos a más recientes)
    • Nota: Para el filtrado por fecha, use los parámetros fromDateUtc/toDateUtc en lugar de @Timestamp en la expresión de filtro para un mejor rendimiento
    • Paginación: Para obtener más de 1000 eventos, use afterId con el ID del último evento de la búsqueda anterior
    • Ejemplos de filtros:
      • "" - todos los eventos
      • "error" - eventos que contienen "error"
      • @Level = "Error" - eventos de nivel de error
      • Application = "MyApp" - eventos de una aplicación específica
    • Ejemplo con rango de fechas:
      • filter: "@Level = 'Error'", fromDateUtc: "2024-01-01T00:00:00Z", toDateUtc: "2024-01-31T23:59:59Z"
    • Ejemplo con paginación:
      • Primera llamada: filter: "", count: 1000 → devuelve eventos con IDs
      • Segunda llamada: filter: "", count: 1000, afterId: "event-<last-id>" → devuelve el siguiente lote
  • SeqWaitForEvents - Espera y captura eventos en vivo de Seq (tiempo de espera de 5 segundos)

    • Parámetros:
      • filter (opcional): Expresión de filtro de Seq
      • count: Número de eventos a capturar (predeterminado: 10, máximo: 100)
      • workspace (opcional): Workspace específico para consultar
    • Devuelve: Instantánea de los eventos capturados durante el período de espera (puede estar vacía si no hay eventos coincidentes)
  • SignalList - Lista las signals disponibles (solo lectura)

    • Parámetros:
      • workspace (opcional): Workspace específico para consultar
    • Devuelve: Lista de signals con sus definiciones
  • SeqConvertFilter - Convierte un filtro difuso en una expresión de filtro estricta

    • Parámetros:
      • fuzzyFilter (obligatorio): Texto de búsqueda difusa (p. ej., "error", "timeout")
      • workspace (opcional): Workspace específico para consultar
    • Devuelve: Expresión de filtro estricta de Seq para usar en SeqSearch
    • Caso de uso: Ayudar a los usuarios a escribir expresiones de filtro correctas
    • Ejemplo: Convierte "error" en una expresión de filtro de Seq adecuada

Integración con Claude Desktop

Opción 1: Usar la herramienta global de .NET (Recomendado)

Después de instalar la herramienta global, agréguela a su configuración de Claude Desktop:

{
  "mcpServers": {
    "seq": {
      "command": "seq-mcp-server",
      "env": {
        "SEQ_SERVER_URL": "http://localhost:5341",
        "SEQ_API_KEY": "your-api-key-here"
      }
    }
  }
}

Opción 2: Versión precompilada

Descargue la última versión para su plataforma y agréguela a su configuración de MCP:

{
  "mcpServers": {
    "seq": {
      "command": "C:\\\\Tools\\\\seq-mcp-server.exe",
      "args": [],
      "env": {
        "SEQ_SERVER_URL": "http://localhost:5341",
        "SEQ_API_KEY": "your-api-key-here"
      }
    }
  }
}

Opción 3: Compilar desde el código fuente

Compile un ejecutable de archivo único (requiere .NET 10 runtime):

# Windows
dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true

# macOS
dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=true

# Linux
dotnet publish -c Release -r linux-x64 -p:PublishSingleFile=true

El ejecutable estará en SeqMcpServer/bin/Release/net10.0/{runtime}/publish/

Configuración

El Seq MCP Server usa variables de entorno para la configuración:

  • SEQ_SERVER_URL: URL de su servidor Seq
  • SEQ_API_KEY: Clave de API para acceder a Seq (obligatoria)
  • SEQ_API_KEY_<WORKSPACE>: Claves de API opcionales específicas de workspace (p. ej., SEQ_API_KEY_PRODUCTION)

Compatibilidad con Seq

SeqSearch prefiere Events.EnumerateAsync(), que usa el enlace Scan de Seq cuando el servidor lo anuncia. Las versiones antiguas de Seq, como 2024.3.x, no exponen Scan en api/events/resources; en ese caso, el servidor ahora recurre a PagedEnumerateAsync() para que las búsquedas sigan funcionando en lugar de fallar con:

System.NotSupportedException: The requested link `Scan` isn't available on entity `Seq.Api.Model.ResourceGroup`.

Si está depurando problemas de compatibilidad:

  • Seq 2025.2.x y versiones posteriores exponen Scan
  • Seq 2024.3.x no expone Scan
  • este servidor MCP admite ambas rutas mediante la alternativa automática

Soporte de workspaces

El servidor MCP admite claves de API específicas de workspace (función futura):

export SEQ_API_KEY="default-key"
export SEQ_API_KEY_PRODUCTION="production-key"
export SEQ_API_KEY_STAGING="staging-key"

Nota: Las claves específicas de workspace están actualmente diseñadas pero aún no implementadas en las herramientas MCP.

Desarrollo

Requisitos previos

  • .NET 10.0 SDK
  • Docker (para ejecutar Seq localmente)

Ejecutar pruebas

dotnet test

Desarrollo

La carpeta scripts contiene scripts de configuración automatizados:

  • setup-dev.ps1 / setup-dev.sh: Configura automáticamente su entorno de desarrollo

    • Inicia el contenedor de Seq con autenticación
    • Maneja la configuración inicial de la contraseña
    • Crea la clave de API de desarrollo
    • Establece las variables de entorno
    • Crea el archivo .env para la aplicación
  • teardown-dev.ps1 / teardown-dev.sh: Limpia el entorno de desarrollo

    • Detiene y elimina los contenedores
    • Borra las variables de entorno

Para una configuración de desarrollo detallada, consulte docs/DEVELOPMENT.md.

Arquitectura

Esta es una implementación pura de servidor MCP que:

  • Se ejecuta como un servicio basado en stdio (sin servidor web)
  • Se comunica mediante JSON-RPC a través de la entrada/salida estándar
  • No registra en la consola para evitar interferir con la comunicación MCP
  • Opcionalmente registra en el propio Seq para depuración cuando está configurado

Auto-registro

El servidor MCP puede registrar sus propias operaciones en Seq cuando se proporcionan un SEQ_SERVER_URL y un SEQ_API_KEY válidos. Esto ayuda con la depuración y el monitoreo del propio servidor MCP.

Licencia

Licencia MIT - consulte el archivo LICENSE para obtener más detalles.