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
.envpara la aplicación
Despliegue en producción
Los servidores MCP no se ejecutan directamente; los lanzan los clientes MCP. Para producción:
- Compile e implemente el ejecutable:
dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true
- 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 (useSignalListpara 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óntimeoutSeconds(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/toDateUtcen lugar de@Timestampen la expresión de filtro para un mejor rendimiento - Paginación: Para obtener más de 1000 eventos, use
afterIdcon 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 errorApplication = "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
- Primera llamada:
- Parámetros:
-
SeqWaitForEvents- Espera y captura eventos en vivo de Seq (tiempo de espera de 5 segundos)- Parámetros:
filter(opcional): Expresión de filtro de Seqcount: 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)
- Parámetros:
-
SignalList- Lista las signals disponibles (solo lectura)- Parámetros:
workspace(opcional): Workspace específico para consultar
- Devuelve: Lista de signals con sus definiciones
- Parámetros:
-
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
- Parámetros:
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 SeqSEQ_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.xy versiones posteriores exponenScan - Seq
2024.3.xno exponeScan - 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
.envpara 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.