Log Analyzer MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Log Analyzer MCP ServerSearch for 'ERROR' across all hosts and give me a summary."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Log Analyzer MCP Server
A Model Context Protocol (MCP) server that connects to the Log Collector API to query and analyze logs from multiple remote Unix hosts.
Features
MCP server implementation for Claude Desktop and other MCP clients
Query logs from multiple hosts via REST API
Advanced log analysis (errors, warnings, patterns)
Search across multiple hosts and processes
Statistical analysis of log content
Summary generation
Related MCP server: Log Analyzer MCP
Installation
Create a virtual environment:
cd log-analyzer-mcp
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies:
pip install -r requirements.txtConfigure environment variables:
cp .env.example .env
# Edit .env with your Log Collector API URLConfiguration
Environment Variables (.env)
LOG_API_BASE_URL=http://localhost:8000
LOG_API_TIMEOUT=30Running the MCP Server
Standalone Mode
python -m log_analyzer_mcp.serverAs an MCP Server (for Claude Desktop)
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"log-analyzer": {
"command": "python",
"args": ["-m", "log_analyzer_mcp.server"],
"env": {
"LOG_API_BASE_URL": "http://localhost:8000",
"LOG_API_TIMEOUT": "30"
}
}
}
}Or if installed as a package:
{
"mcpServers": {
"log-analyzer": {
"command": "log-analyzer-mcp"
}
}
}Available MCP Tools
1. list_hosts
Lists all configured hosts and their processes.
Parameters: None
Usage in Claude:
List all available hosts2. get_logs
Get logs from a specific host with optional process filtering.
Parameters:
host_name(required): Name of the hostprocess(optional): Filter by process namelines(optional): Number of lines to retrieve (default: 100)tail(optional): Get last N lines (default: true)
Usage in Claude:
Get the last 200 lines from app-server-1
Show logs from app-server-1 for the app1 process3. get_all_logs
Get logs from all configured hosts.
Parameters:
lines(optional): Number of lines per file (default: 100)tail(optional): Get last N lines (default: true)
Usage in Claude:
Get logs from all hosts
Show recent logs from all servers4. search_logs
Search for a pattern across logs.
Parameters:
pattern(required): Search pattern (case-insensitive)host(optional): Filter by host nameprocess(optional): Filter by process namelines(optional): Number of lines to search (default: 1000)
Usage in Claude:
Search for "ERROR" in all logs
Find "connection timeout" in app-server-1
Search for "failed" in the database process5. analyze_logs
Analyze logs and get detailed statistics.
Parameters:
host_name(required): Name of the hostprocess(optional): Filter by process namelines(optional): Number of lines to analyze (default: 500)
Usage in Claude:
Analyze logs from app-server-1
Give me statistics on the app1 process logs6. find_errors
Find all error messages in logs.
Parameters:
host_name(required): Name of the hostprocess(optional): Filter by process namelines(optional): Number of lines to search (default: 1000)
Usage in Claude:
Find all errors in app-server-1
Show me errors from the database process7. get_log_summary
Get a summary of logs including error/warning counts.
Parameters:
host_name(required): Name of the hostprocess(optional): Filter by process namelines(optional): Number of lines to analyze (default: 500)
Usage in Claude:
Summarize logs from app-server-1
Give me a summary of the app1 process8. search_and_summarize
Search for a pattern across logs and get comprehensive summary in one operation.
Parameters:
pattern(required): Search pattern (case-insensitive)host(optional): Filter by host nameprocess(optional): Filter by process namelines(optional): Number of lines to search (default: 1000)
Returns:
Match statistics (total matches, files searched, hosts with matches)
Error/warning counts in matched results
Time range analysis (first/last timestamp, duration)
Process timing breakdown (A-Z duration per process)
Sample matched lines (preview of first 10 matches)
Hosts breakdown (match count per host)
Usage in Claude:
Search for "ERROR" and give me a summary
Find "connection timeout" and analyze the results
Search for "OutOfMemory" and show me process timing
Search for "database" in app-server-1 and summarizeExample Output:
Search and Summary for pattern: 'ERROR'
================================================================================
MATCH STATISTICS
--------------------------------------------------------------------------------
Total matches: 45
Files searched: 8
Hosts with matches: app-server-1, app-server-2
Errors in matches: 45
Warnings in matches: 3
HOSTS BREAKDOWN
--------------------------------------------------------------------------------
app-server-1: 32 matches
app-server-2: 13 matches
TIME RANGE ANALYSIS
--------------------------------------------------------------------------------
First: 2024-02-13 10:30:00
Last: 2024-02-13 15:45:30
Span: 5h 15m 30s
PROCESS TIMING (A-Z)
--------------------------------------------------------------------------------
app1:
Start: 2024-02-13 10:30:00
End: 2024-02-13 15:45:30
Duration: 5h 15m 30s
Entries: 32
web:
Start: 2024-02-13 11:00:00
End: 2024-02-13 14:20:15
Duration: 3h 20m 15s
Entries: 13
SAMPLE MATCHED LINES
--------------------------------------------------------------------------------
1. 2024-02-13 10:30:00 ERROR: Connection timeout
2. 2024-02-13 10:35:15 ERROR: Retry failed
...Usage Examples with Claude
Example 1: Check for Errors Across All Servers
User: Are there any errors in our application servers?
Claude: I'll check for errors across all servers.
[Uses find_errors and analyze_logs tools]
Based on the log analysis:
- app-server-1: 5 errors found in the last 1000 lines
- app-server-2: 2 errors found
Most common error: "Database connection timeout"Example 2: Investigate a Specific Issue
User: Search for "OutOfMemory" errors in the app1 process
Claude: [Uses search_logs with pattern="OutOfMemory" and process="app1"]
Found 3 occurrences of OutOfMemory in app1:
- 2026-02-13 10:15:23 - OutOfMemoryError: Java heap space
- 2026-02-13 10:16:45 - OutOfMemoryError: Java heap space
- 2026-02-13 10:18:12 - OutOfMemoryError: Java heap spaceExample 3: Get Overview of All Systems
User: Give me an overview of all our systems
Claude: [Uses list_hosts and get_log_summary for each host]
System Overview:
1. app-server-1 (192.168.1.10)
- Processes: app1, app2
- Last 500 lines: 12 errors, 45 warnings
2. app-server-2 (192.168.1.11)
- Processes: service
- Last 500 lines: 2 errors, 8 warningsLog Analysis Features
The analyzer automatically detects:
Error Patterns
ERROR level messages
Exception stack traces
FATAL/CRITICAL messages
"Failed" operations
Warning Patterns
WARN/WARNING messages
Deprecated features
Potential issues
Statistics
Total line count
Error/warning counts
Timestamp extraction
Common message patterns
Time range analysis
Architecture
┌─────────────────┐
│ Claude Desktop │
│ (MCP Client) │
└────────┬────────┘
│
│ MCP Protocol
│
┌────────▼────────────┐
│ Log Analyzer MCP │
│ Server │
└────────┬────────────┘
│
│ HTTP/REST
│
┌────────▼────────────┐
│ Log Collector API │
└────────┬────────────┘
│
│ SSH (via Jump Server)
│
┌────────▼────────────┐
│ Unix Hosts │
│ (Log Files) │
└─────────────────────┘Development
Project Structure
log-analyzer-mcp/
├── log_analyzer_mcp/
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ ├── api_client.py # REST API client
│ └── analyzer.py # Log analysis utilities
├── pyproject.toml # Package configuration
├── requirements.txt # Dependencies
├── .env.example # Environment template
└── README.mdAdding New Tools
Add tool definition in
list_tools()functionImplement handler in
call_tool()functionUpdate documentation
Testing
# Test the API client
python -c "from log_analyzer_mcp.api_client import LogCollectorAPIClient; import asyncio; client = LogCollectorAPIClient('http://localhost:8000'); print(asyncio.run(client.get_hosts()))"Troubleshooting
MCP Server Not Starting
Check that the Log Collector API is running
Verify
LOG_API_BASE_URLin .envCheck Python version (>=3.10 required)
Connection Refused
Ensure Log Collector API is accessible
Check firewall settings
Verify API URL and port
No Results Returned
Verify hosts are configured in Log Collector API
Check SSH connectivity in Log Collector API
Review API logs for errors
Integration with Claude Desktop
Once configured, you can use natural language with Claude:
"Show me recent errors from production"
"Analyze logs from app-server-1"
"Search for database connection issues"
"What's happening on all servers?"
"Find OutOfMemory errors in the last hour"
Claude will automatically select and use the appropriate MCP tools to fulfill your requests.
Security Considerations
The MCP server connects to the REST API (not directly to hosts)
All SSH security is handled by the Log Collector API
Use localhost or secure networks for API communication
Implement authentication on the REST API in production
Limit log line counts to prevent excessive data transfer
Prerequisites
Log Collector API must be running and accessible
Hosts must be configured in the API's
config/hosts.yamlSSH connectivity must be working (test via API first)
Python 3.10 or higher
License
MIT
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
- Flicense-qualityDmaintenanceProvides seamless access to Kibana and Periscope logs through a unified API with KQL and SQL querying, AI-powered log analysis, and support for searching across 1.3+ billion logs in 9 indexes.1
- FlicenseBqualityCmaintenanceEnables AI-assisted analysis of log files through advanced searching, filtering, and test execution capabilities. Supports time-based queries, pattern matching, test summarization, and code coverage reporting directly within compatible MCP clients.12
- Alicense-qualityDmaintenanceAn MCP server for intelligent log analysis providing semantic search, error pattern clustering, and smart error detection. It enables users to process, vectorize, and query local logs to efficiently identify issues and generate AI-powered summaries.MIT
- Flicense-qualityDmaintenanceHandles log file management and analysis with tools to list, read, search, filter, and generate analytics on log files.1
Related MCP Connectors
Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
A paid remote MCP for ClawManager, built to return verdicts, receipts, usage logs, and audit-ready J
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/adai78/log-analyzer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server