log-mcp
log-mcp-python
Auf MCP (Model Context Protocol) basierender Remote-Logabfragedienst, implementiert in Python.
Dieses Projekt ist die Neugestaltung und Neuimplementierung des Open-Source-Projekts Log-MCP (Java-Version): Nach außen hin werden vollständig identische MCP-Tool-Schnittstellen bereitgestellt (JSON-RPC 2.0, STDIO / HTTP als zwei Übertragungsmodi), nach innen wurde die Gesamtarchitektur gemäß Python-Konventionen neu strukturiert, und die „Art der Logabfrage" wurde als steckbarer Ausführungskanal abstrahiert – die konkreten Befehle zum Abrufen von Logs werden einheitlich vom Dienst erstellt, nur die Kanäle zur Befehlsausführung sind vielfältig.
Eigenschaften
Schnittstellenkompatibilität: Die 5 MCP-Tools der ursprünglichen Java-Version (
search_logs/tail_logs/read_log_file/list_log_files/list_servers) mit übereinstimmenden Ein-/Ausgabe-Kontrakten.Steckbare Ausführungskanäle:
ssh— Direktverbindung per SSH-Private-Key (paramiko, mit Verbindungspool und automatischer Wiederverbindung)pyinfra— Wiederverwendung vorhandener pyinfra-Host-Assets (unterstützt Host-Specs wie@local,root@host:22usw.)local— Lokale Ausführung (Entwicklung / Tests)
Einheitliche Befehlserstellung: Alle Logoperationen werden auf ein Shell-Kommando normalisiert, das auf dem Zielrechner ausgeführt wird (
grep -n -A -B/tail -n/sed -n/find), entkoppelt vom Ausführungskanal – ein neuer Kanal muss lediglichCommandExecutor.execute()implementieren.Sicherheit: Parameterprüfung, Prüfung relativer Pfade, Erkennung gefährlicher Zeichen, Shell-Single-Quote-Escaping wie in der Originalversion.
Minimale Abhängigkeiten: Der Kern hängt nur von
paramikoab;pyinfraist eine optionale Abhängigkeit und wird nur installiert, wenn der pyinfra-Kanal verwendet wird.
Related MCP server: mcplogview
Architektur
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)Detailliertes Design siehe docs/DESIGN.md.
Installation
pip install . # 核心功能(ssh + local 通道)
pip install .[pyinfra] # 需要 pyinfra 通道时
pip install .[dev] # 运行测试Konfiguration
Siehe config.example.json. Die Struktur ist mit der config.json der ursprünglichen Java-Version kompatibel und wurde wie folgt erweitert:
Jeder Server gibt über das Feld
connectorunabhängig seinen Ausführungskanal an:ssh(Standard) /pyinfra/localDer pyinfra-Kanal unterstützt
pyinfraHost(vollständige Host-Spec, z. B.root@192.168.5.20:22oder@local) undpyinfraData(Host-Daten, die an pyinfra durchgereicht werden, z. B.ssh_key)Zeichenketten unterstützen
${VAR}-Umgebungsvariablen-Platzhalter (bleiben unverändert, wenn nicht definiert)
{
"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"
}Erläuterung der wichtigsten Felder:
Feld | Beschreibung |
| Ausführungskanal: |
| Log-Wurzelverzeichnis (Basis für die Prüfung relativer Pfade) |
| Benennungsmuster für Logdateien, mit |
| SSH-Verbindungspool (maximale Verbindungsanzahl / Timeout / Wiederholungsversuche) |
| Standardwerte und Obergrenzen für Abfragen (maxResults / maxReadLines / contextLines usw.) |
Ausführung
# STDIO 模式(MCP 客户端拉起,默认)
log-mcp --config config.json
# HTTP 模式(独立部署,端口默认 8892,路径 / 与 /mcp,健康检查 GET /health)
log-mcp --config config.json --transport http --port 8892Es werden auch Umgebungsvariablen unterstützt: LOG_CONFIG, TRANSPORT_MODE, SERVER_PORT.
Anbindung an einen MCP-Client (am Beispiel des HTTP-Modus):
{
"mcpServers": {
"log-mcp": {
"url": "http://your-host:8892/mcp"
}
}
}Anbindung im STDIO-Modus:
{
"mcpServers": {
"log-mcp": {
"command": "log-mcp",
"args": ["--config", "/path/to/config.json"]
}
}
}MCP-Tools
Tool | Beschreibung |
| Durchsucht Logs nach Schlüsselwörtern (optional regulärer Ausdruck) über Datums- und Ebenengrenzen hinweg, mit vorherigem und nachfolgendem Kontext |
| Ruft die neuesten N Zeilen der Logs der angegebenen Ebene ab |
| Liest einen Zeilenbereich der angegebenen Logdatei |
| Listet die auf dem Server verfügbaren Logdateien auf (Größe / Änderungszeit) |
| Listet alle konfigurierten Server auf |
Aufrufbeispiel (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"]}}}'Tests
python -m pytest tests/ -qDie Tests decken ab: Parameter-/Pfadprüfung, Shell-Escaping, Befehlserstellung, grep-Ausgabe-Parsing (einschließlich deterministischem Parsing bekannter Dateien), JSON-RPC-Protokollverarbeitung sowie End-to-End-Integrationstests für die beiden Kanäle local / pyinfra(@local) (insgesamt 100 Testfälle).
Lizenz
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