Sherlog MCP Server

Un espacio de trabajo IPython persistente para análisis de datos, procesamiento de registros y colaboración multiagente.

Documentación

Sherlog Logo

Sherlog Log AI MCP

Un potente servidor de Model Context Protocol (MCP) que proporciona un shell IPython persistente por sesión. El servidor solo expone un número limitado de herramientas y, en su núcleo, solo expone las siguientes 2:

  1. call_cli
  2. execute_python_code

Y el resto de las herramientas están más orientadas a apoyar al LLM para escribir el código o llamar al CLI apropiado para completar la tarea. Hay algunas herramientas para la recuperación de código basadas en tree sitter, pero eso es prácticamente todo.

Por ejemplo, instalar paquetes o instalar CLI. O hacer introspección de variables en el shell de IPython.

El servidor también admite agregar servidores MCP externos. La idea aquí es que puedes ejecutar servidores MCP dentro del shell que te permiten persistir resultados en el shell con variables y resultados, etc.

Una de las cosas principales que he notado es que los LLM se equivocan cuando se les proporcionan muchas herramientas, y también como es bastante evidente a estas alturas. Hay múltiples artículos y videos (escritos y compartidos por personas mucho más calificadas que yo) y el tema principal entre ellos son los problemas de sobrecarga de herramientas y limitación de contexto.

Este servidor es mi intento de "resolver" ese problema.

¿Cómo, preguntas?

Nota: El núcleo de este enfoque es:

  1. Todas las llamadas a herramientas se persisten en una variable en el shell y el LLM escribiría código para inspeccionar la variable, segmentar/diseccionar y obtener la parte requerida de un payload "gigantesco". Mi idea era similar a cuando nosotros, los ingenieros, trabajamos con grandes volúmenes de datos: los llevamos a dataframes y luego segmentamos/diseccionamos para obtener la parte requerida.
  2. Las llamadas CLI son componibles y eso ayuda al LLM a obtener solo el contenido requerido

Ambas son formas de no contaminar el contexto con información inútil.

Descripción general

Sherlog MCP Server transforma Claude Desktop en una potencia de análisis de datos con estado al proporcionar:

  • Shells IPython conscientes de la sesión: Espacios de trabajo aislados por sesión con persistencia automática
  • Arquitectura centrada en DataFrames: Cada operación devuelve DataFrames, creando un modelo de datos unificado
  • Soporte de múltiples sesiones: Maneja hasta 4 sesiones concurrentes con gestión automática del ciclo de vida
  • Proxy MCP: Integra sin problemas cualquier servidor MCP externo, ejecutando todas las operaciones dentro del mismo contexto IPython

Piénsalo como darle a Claude un cuaderno de Python persistente que mantiene espacios de trabajo separados para diferentes conversaciones, donde cada pieza de datos está inmediatamente disponible para la siguiente operación.

Arquitectura y diseño

Sherlog MCP Server admite diferentes escenarios de implementación a través de contenedores Docker especializados:

Variantes de contenedores

Contenedor Vanilla

Un entorno ligero y de propósito general optimizado para análisis de datos y flujos de trabajo de desarrollo.

Herramientas preinstaladas:

  • GitHub CLI (gh) - Integración completa con GitHub para gestión de repositorios, issues, PRs y flujos de trabajo
  • Ecosistema Python - Stack completo de computación científica (pandas, numpy, matplotlib, etc.)
  • Utilidades del sistema - Herramientas esenciales de línea de comandos para operaciones de archivos y gestión del sistema

Ideal para: Análisis de datos, web scraping, integraciones de API, tareas generales de desarrollo

Contenedor de desarrollo Android

Un entorno especializado para flujos de trabajo de desarrollo y pruebas de Android.

Herramientas preinstaladas:

  • Android SDK y herramientas de compilación - Entorno completo de desarrollo Android
  • Java Development Kit (JDK) - Runtime de Java requerido y herramientas de desarrollo
  • GitHub CLI (gh) - Control de versiones y gestión de repositorios
  • BrowserStack CLI - Capacidades de prueba y depuración en dispositivos reales
  • ADB y Fastboot - Herramientas de comunicación con dispositivos Android

Ideal para: Desarrollo de aplicaciones Android, pruebas de dispositivos, automatización móvil, pipelines de CI/CD

Integración con Google OAuth

Sherlog MCP Server incluye soporte integrado de Google OAuth 2.0 para acceder a los servicios de Google Workspace (Gmail, Drive, Calendar) directamente dentro de las sesiones IPython. Los tokens OAuth se almacenan de forma segura con cifrado y se renuevan automáticamente según sea necesario.

Configúralo con las variables de entorno GOOGLE_CLIENT_ID y GOOGLE_CLIENT_SECRET. Cuando se ejecuta con transporte HTTP, los endpoints de OAuth están disponibles en /auth/google/* para el flujo de autenticación.

Principios de diseño

  • Aislamiento del entorno: Cada contenedor proporciona un entorno completo y reproducible
  • Integración de herramientas: Todas las herramientas CLI son accesibles a través de la interfaz unificada call_cli
  • Estado persistente: Los datos de la sesión persisten entre reinicios del contenedor
  • Extensibilidad: Fácil de agregar nuevas herramientas o crear variantes de contenedores personalizados

Instalación

Requisitos previos

  • Docker Desktop

Soporte de conexión remota

Sherlog MCP admite la conexión desde instancias remotas de Claude a través de transporte HTTP. Consulta la Guía de conexión remota para obtener instrucciones detalladas de configuración.

Configuración

Configuración principal

# Session Management
export MCP_AUTO_RESET_THRESHOLD=200     # Operations before auto-cleanup (default: 200)
export MCP_AUTO_RESET_ENABLED=true      # Enable automatic memory management
export MCP_MAX_OUTPUT_SIZE=50000        # Max output size per buffer (default: 50KB)
export MCP_MAX_SESSIONS=4               # Maximum concurrent sessions (default: 4)

# Logging
export LOG_LEVEL=INFO

Servidores MCP externos

Conecta cualquier servidor MCP para ejecutarlo dentro del espacio de trabajo IPython:

export EXTERNAL_MCPS_JSON='{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
  },
  "postgres": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-postgres"],
    "env": {
      "DATABASE_URL": "$DATABASE_URL"
    }
  }
}'

Integración MCP externa

Si bien Sherlog MCP incluye muchas herramientas de forma nativa, puedes conectar cualquier servidor MCP para ampliar la funcionalidad. Las herramientas externas se integran automáticamente en el espacio de trabajo IPython:

Cómo funciona

  1. Las herramientas externas tienen el prefijo: external_[server]_[tool]
  2. Los resultados se convierten automáticamente a DataFrames
  3. Acceso completo al mismo espacio de nombres IPython

Agregar MCP externos

"-e", "EXTERNAL_MCPS_JSON={\"postgres\":{\"command\":\"npx\",\"args\":[\"-y\",\"@modelcontextprotocol/server-postgres\"],\"env\":{\"DATABASE_URL\":\"$DATABASE_URL\"}}}"

Implementación en Railway

Este servidor MCP está diseñado para implementarse en Railway con almacenamiento de sesión persistente.

Sesiones persistentes

El servidor persiste automáticamente las sesiones del shell IPython entre reinicios del contenedor usando:

  • Estado de la sesión: Archivos de sesión individuales almacenados en /app/data/sessions/
  • Metadatos de la sesión: Rastreados en session_metadata.json para el tiempo y estado de la sesión
  • Registro de sesiones activas: Mantenido en session_registry.json para restaurar los shells al iniciar

Configuración del volumen de Railway

Al implementar en Railway, el directorio /app/data se persiste automáticamente a través del almacenamiento persistente de Railway. Esto garantiza que:

  • Las sesiones de usuario sobrevivan a los reinicios del contenedor
  • El estado del shell IPython (variables, importaciones, etc.) se mantenga
  • Los metadatos de la sesión persistan para una gestión adecuada de la sesión

No se necesita configuración adicional para la implementación en Railway: el volumen persistente se monta automáticamente.

Arquitectura

Claude Desktop
     ↓
Sherlog MCP Server (http)
     ↓
Session Middleware (manages shells)
     ↓
IPython Shells (one per session)
     ├── Built-in Tools (return DataFrames)
     ├── External MCP Tools (via proxy)
     └── User Code (execute_python_code)
     └── User CLI (call_cli)

Uso avanzado

Trabajo con MCP externos

Las herramientas MCP externas se integran sin problemas:

  1. Los resultados se convierten automáticamente a DataFrames
  2. Se almacenan en el espacio de nombres IPython con el nombre de la herramienta
  3. Disponibles para operaciones posteriores

Flujo de ejemplo:

  • PostgreSQL MCP consulta la base de datos → el resultado se almacena como DataFrame
  • Las herramientas LogAI analizan los datos → crean nuevos DataFrames
  • El código Python personalizado combina los resultados → análisis final

Licencia

Apache License 2.0 - consulta el archivo LICENSE para más detalles.

Charlas y artículos que me inspiraron

Artículo de Armin Cómo arreglar tu contexto Los MCP son aburridos - Recomendaba usar eval como única herramienta Artículo de Alita - Este artículo también me influenció