log-mcp
log-mcp-python
Servicio de consulta de logs remotos basado en MCP (Model Context Protocol), implementado en Python.
Este proyecto es un rediseño e implementación del Log-MCP de código abierto (versión Java): expone una interfaz de herramientas MCP completamente idéntica (JSON-RPC 2.0, modos de transporte STDIO / HTTP), mientras que internamente se ha reestructurado la arquitectura siguiendo las convenciones de Python, y se ha abstraído la «forma de obtener logs» como canales de ejecución enchufables — los comandos específicos para obtener logs son construidos uniformemente por el servicio, solo los canales que ejecutan los comandos son variados.
Características
Compatibilidad de interfaz: las mismas 5 herramientas MCP que la versión Java original (
search_logs/tail_logs/read_log_file/list_log_files/list_servers), con contratos de entrada y salida alineados.Canales de ejecución enchufables:
ssh— conexión directa con clave privada SSH (paramiko, con pool de conexiones y reconexión automática)pyinfra— reutiliza los activos de hosts pyinfra existentes (soporta especificaciones de host como@local,root@host:22)local— ejecución local (desarrollo / pruebas)
Construcción unificada de comandos: todas las operaciones de logs se normalizan en un comando shell que se ejecuta en la máquina de destino (
grep -n -A -B/tail -n/sed -n/find), desacoplado del canal de ejecución — para añadir un nuevo canal solo hay que implementarCommandExecutor.execute().Seguridad: validación de parámetros, validación de rutas relativas, detección de caracteres peligrosos, y escape de comillas simples en shell consistente con la versión original.
Dependencias ligeras: el núcleo solo depende de
paramiko;pyinfraes una dependencia opcional, que solo se instala cuando se usa el canal pyinfra.
Related MCP server: mcplogview
Arquitectura
MCP 客户端(AI 助手 / IDE)
│ JSON-RPC 2.0
▼
mcp/ 传输与协议层(stdio_server / http_server / handler)
▼
tools.py 5 个工具的声明式定义(名称 + JSON Schema + 处理函数)
▼
service/ 业务编排层(参数校验 → 文件推导 → 命令构建 → 解析)
▼
executors/ 可插拔执行通道(ssh_key / pyinfra_exec / local + registry)
▼
目标服务器上的 shell 命令(grep / tail / sed / find)El diseño detallado se encuentra en docs/DESIGN.md.
Instalación
pip install . # 核心功能(ssh + local 通道)
pip install .[pyinfra] # 需要 pyinfra 通道时
pip install .[dev] # 运行测试Configuración
Consulta config.example.json. Es compatible con la estructura del config.json de la versión Java original, con las siguientes extensiones:
Cada servidor especifica de forma independiente su canal de ejecución mediante el campo
connector:ssh(predeterminado) /pyinfra/localEl canal pyinfra admite
pyinfraHost(especificación completa del host, comoroot@192.168.5.20:22o@local) ypyinfraData(datos del host que se pasan a pyinfra, comossh_key)Las cadenas admiten marcadores de posición de variables de entorno
${VAR}(si no están definidas, se conservan tal cual)
{
"servers": [
{
"name": "ssh-server",
"connector": "ssh",
"host": "192.168.5.169",
"port": 22,
"username": "root",
"privateKeyPath": "${SSH_KEY_PATH}",
"logRootPath": "/home/docker/logs/myapp/",
"default": true
},
{
"name": "pyinfra-server",
"connector": "pyinfra",
"pyinfraHost": "root@192.168.5.20:22",
"pyinfraData": { "ssh_key": "/root/.ssh/id_rsa" },
"logRootPath": "/var/logs/app/"
},
{
"name": "dev-local",
"connector": "local",
"logRootPath": "/tmp/logs/"
}
],
"logLevels": ["info", "warn", "error", "debug"],
"logFilePattern": "{level}/log-{level}-{date}.{seq}.log"
}Descripción de los campos clave:
Campo | Descripción |
| Canal de ejecución: |
| Directorio raíz de logs (base para la validación de rutas relativas) |
| Patrón de nombres de archivos de log, con marcadores |
| Pool de conexiones SSH (límite de conexiones / tiempo de espera / reintentos) |
| Valores predeterminados y límites de consulta (maxResults / maxReadLines / contextLines, etc.) |
Ejecución
# STDIO 模式(MCP 客户端拉起,默认)
log-mcp --config config.json
# HTTP 模式(独立部署,端口默认 8892,路径 / 与 /mcp,健康检查 GET /health)
log-mcp --config config.json --transport http --port 8892También se admiten variables de entorno: LOG_CONFIG, TRANSPORT_MODE, SERVER_PORT.
Conexión con un cliente MCP (ejemplo con modo HTTP):
{
"mcpServers": {
"log-mcp": {
"url": "http://your-host:8892/mcp"
}
}
}Conexión en modo STDIO:
{
"mcpServers": {
"log-mcp": {
"command": "log-mcp",
"args": ["--config", "/path/to/config.json"]
}
}
}Herramientas MCP
Herramienta | Descripción |
| Busca logs por palabra clave (regex opcional) entre fechas y niveles, con contexto anterior y posterior |
| Obtiene las últimas N líneas de logs del nivel especificado |
| Lee un rango de líneas de un archivo de log especificado |
| Lista los archivos de log disponibles en el servidor (tamaño / hora de modificación) |
| Lista todos los servidores configurados |
Ejemplo de llamada (HTTP):
curl -s -X POST http://127.0.0.1:8892/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search_logs","arguments":{"keyword":"ERROR","levels":["error","info"]}}}'Pruebas
python -m pytest tests/ -qCobertura de pruebas: validación de parámetros/rutas, escape de shell, construcción de comandos, análisis de salida de grep (incluido análisis determinista de archivos conocidos), manejo del protocolo JSON-RPC, y pruebas de integración de extremo a extremo para los canales local / pyinfra(@local) (100 casos en total).
Licencia
Apache-2.0
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that connects Claude (or any MCP compatible client) to your existing log infrastructure. Query, summarize, and trace logs in plain English across GCP Cloud Logging, AWS CloudWatch, Azure Log Analytics, Grafana Loki, and Elasticsearch without writing filter expressions or leaving your editor.113MIT
- AlicenseNot gradedqualityCmaintenanceExposes configured log files as MCP tools, enabling agents to list, query, and follow logs from local and SSH sources.MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for infrastructure discovery and remote management, enabling SSH command execution, file transfer, log tailing, and machine/service inventory with a companion web dashboard.1
- AlicenseAqualityCmaintenanceProvides a standardized MCP interface for querying Graylog logs, enabling AI agents to search, diagnose, and correlate runtime logs with code via configurable profiles.5MIT
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Amos666/log-mcp-python'
If you have feedback or need assistance with the MCP directory API, please join our Discord server