vinit-devops/sumologic_mcp
If you are the rightful owner of sumologic_mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Python-based Model Context Protocol (MCP) server for seamless integration with Sumo Logic's REST APIs.
Sumo Logic MCP Python Server
A Python implementation of a Model Context Protocol (MCP) server for Sumo Logic API integration. This server provides a comprehensive interface to Sumo Logic's REST APIs through the MCP protocol, enabling seamless integration with MCP-compatible clients.
Features
This MCP server provides tools to interact with Sumo Logic's APIs, allowing users to:
š Search & Analytics
- Execute log search queries with flexible parameters
- Monitor search job status and retrieve results
- Support for pagination and result limiting
š Dashboard Management
- List, create, update, and delete dashboards
- Retrieve dashboard configurations and metadata
- Manage dashboard panels and visualizations
š Metrics & Monitoring
- Query time-series metrics data
- Support for metric selectors and aggregations
- List available metric sources
š§ Collector & Source Management
- Manage collectors (list, create, update, delete)
- Configure data sources within collectors
- Monitor collector status and health
šØ Monitor Management
- Create, update, and delete monitoring rules
- List and search monitors with advanced filtering
- Enable/disable monitors and manage their status
- Get active alerts and monitor health status
- Validate monitor configurations
- View monitor execution history and performance metrics
Requirements
- Python 3.8 or higher
- Sumo Logic account with API access
- Valid Sumo Logic Access ID and Access Key
Installation
From PyPI (published)
pip install sumologic-mcp-python
From Source
- Clone the repository:
git clone https://github.com/sumologic/sumologic-mcp-python.git
cd sumologic-mcp-python
- Install the package:
pip install -e .
Development Installation
For development with all dependencies:
pip install -e ".[dev]"
Configuration
The Sumo Logic MCP Server supports multiple configuration methods with comprehensive validation and clear error messages.
Configuration Methods
The server supports configuration through multiple sources with the following precedence (highest to lowest):
- Command-line arguments (highest precedence)
- Environment variables
- Configuration file
- Default values (lowest precedence)
Environment Variables
Configure the server using environment variables with the SUMOLOGIC_
prefix:
Variable | Required | Default | Description | Valid Values |
---|---|---|---|---|
SUMOLOGIC_ACCESS_ID | ā | - | Your Sumo Logic Access ID | 14 alphanumeric characters |
SUMOLOGIC_ACCESS_KEY | ā | - | Your Sumo Logic Access Key | At least 20 characters |
SUMOLOGIC_ENDPOINT | ā | - | Sumo Logic API endpoint | Valid HTTPS URL ending in .sumologic.com |
SUMOLOGIC_TIMEOUT | ā | 30 | Request timeout in seconds | 1-300 |
SUMOLOGIC_MAX_RETRIES | ā | 3 | Maximum retry attempts | 0-10 |
SUMOLOGIC_RATE_LIMIT_DELAY | ā | 1.0 | Delay between rate-limited requests | 0.1-60.0 |
SUMOLOGIC_LOG_LEVEL | ā | INFO | Log level | DEBUG, INFO, WARNING, ERROR, CRITICAL |
SUMOLOGIC_LOG_FORMAT | ā | json | Log format | json, text |
SUMOLOGIC_SERVER_NAME | ā | sumologic-mcp-server | MCP server name | Any string |
SUMOLOGIC_SERVER_VERSION | ā | 0.1.1 | MCP server version | Any string |
Configuration File Support
Create a JSON configuration file for easier management:
Minimal Configuration (config.json):
{
"access_id": "your_access_id_here",
"access_key": "your_access_key_here",
"endpoint": "https://api.sumologic.com"
}
Full Configuration (config.json):
{
"access_id": "your_access_id_here",
"access_key": "your_access_key_here",
"endpoint": "https://api.sumologic.com",
"timeout": 30,
"max_retries": 3,
"rate_limit_delay": 1.0,
"log_level": "INFO",
"log_format": "json",
"server_name": "sumologic-mcp-server",
"server_version": "0.1.1"
}
Use the configuration file:
sumologic-mcp-server --config-file config.json
Configuration Validation
The server includes comprehensive configuration validation with detailed error messages and recommendations.
Validate Configuration:
# Validate current environment configuration
sumologic-mcp-server --validate-config
# Validate specific configuration file
sumologic-mcp-server --config-file config.json --validate-config
Example Validation Output:
============================================================
SUMO LOGIC MCP SERVER - CONFIGURATION VALIDATION
============================================================
Configuration Sources:
š Environment variables: SUMOLOGIC_ACCESS_ID, SUMOLOGIC_ACCESS_KEY, SUMOLOGIC_ENDPOINT
āļø Using defaults for: timeout, max_retries, rate_limit_delay, log_level
Current Configuration:
Access ID: ā (configured)
Access Key: ā (configured)
Endpoint: ā https://api.sumologic.com
Timeout: 30s
Max Retries: 3
Rate Limit Delay: 1.0s
Log Level: INFO
Log Format: json
ā ļø CONFIGURATION WARNINGS:
⢠timeout: Timeout of 5s is quite low and may cause request failures
š” Recommendation: Consider using a timeout of at least 10 seconds
ā
CONFIGURATION IS VALID - Server can start
============================================================
Setup Instructions
-
Get Sumo Logic Credentials:
- Log into your Sumo Logic account
- Go to Administration > Security > Access Keys
- Create a new Access Key or use existing credentials
-
Choose Configuration Method:
Option A: Environment Variables
export SUMOLOGIC_ACCESS_ID="your_access_id_here" export SUMOLOGIC_ACCESS_KEY="your_access_key_here" export SUMOLOGIC_ENDPOINT="https://api.sumologic.com"
Option B: .env File
# Copy example file cp .env.example .env # Edit with your credentials nano .env
Option C: Configuration File
# Create config.json (see examples above) # Use with: sumologic-mcp-server --config-file config.json
-
Validate Configuration:
sumologic-mcp-server --validate-config
-
Start Server:
sumologic-mcp-server
Configuration Examples
Development Setup:
export SUMOLOGIC_LOG_LEVEL=DEBUG
export SUMOLOGIC_LOG_FORMAT=text
export SUMOLOGIC_TIMEOUT=60
sumologic-mcp-server
Production Setup:
{
"access_id": "your_access_id",
"access_key": "your_access_key",
"endpoint": "https://api.sumologic.com",
"timeout": 45,
"max_retries": 5,
"rate_limit_delay": 1.5,
"log_level": "WARNING",
"log_format": "json"
}
High-Volume Environment:
export SUMOLOGIC_TIMEOUT=60
export SUMOLOGIC_MAX_RETRIES=5
export SUMOLOGIC_RATE_LIMIT_DELAY=0.5
export SUMOLOGIC_LOG_LEVEL=WARNING
Configuration Troubleshooting
Common Configuration Errors:
-
Missing Required Credentials:
ā access_id: Sumo Logic Access ID is required. Set SUMOLOGIC_ACCESS_ID environment variable.
Solution: Set the required environment variables or add them to your config file.
-
Invalid Endpoint Format:
ā endpoint: Endpoint must be a valid Sumo Logic domain
Solution: Use a valid Sumo Logic endpoint (e.g.,
https://api.sumologic.com
). -
Invalid Access ID Format:
ā access_id: Access ID must be 14 alphanumeric characters
Solution: Verify your Access ID is exactly 14 characters.
-
Configuration File Issues:
ā Configuration file error: Invalid JSON in configuration file
Solution: Validate your JSON syntax using a JSON validator.
For detailed configuration documentation, see .
Usage
Starting the Server
Basic Usage:
sumologic-mcp-server
With Custom Log Level:
SUMOLOGIC_LOG_LEVEL=DEBUG sumologic-mcp-server
With Text Logging:
sumologic-mcp-server --log-format text
Validate Configuration Only:
sumologic-mcp-server --validate-config
Command Line Options
sumologic-mcp-server --help
Available options:
--config-file PATH
: Path to configuration file (optional)--validate-config
: Validate configuration and exit--log-level LEVEL
: Override log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)--log-format FORMAT
: Override log format (json, text)--version
: Show version information
Running as Python Module
python -m sumologic_mcp
MCP Client Integration
Configure your MCP client to connect to this server. Example configuration for various clients:
Claude Desktop (config.json):
{
"mcpServers": {
"sumologic": {
"command": "sumologic-mcp-server",
"env": {
"SUMOLOGIC_ACCESS_ID": "your_access_id",
"SUMOLOGIC_ACCESS_KEY": "your_access_key",
"SUMOLOGIC_ENDPOINT": "https://api.sumologic.com"
}
}
}
}
Available Tools
Search Tools
search_logs
: Execute log search queriesget_search_job_status
: Check search job statusget_search_results
: Retrieve search results with pagination
Dashboard Tools
list_dashboards
: List all dashboardsget_dashboard
: Get specific dashboard detailscreate_dashboard
: Create new dashboardupdate_dashboard
: Update existing dashboarddelete_dashboard
: Delete dashboard
Metrics Tools
query_metrics
: Execute metrics querieslist_metric_sources
: List available metric sources
Collector Tools
list_collectors
: List all collectorsget_collector
: Get collector detailscreate_collector
: Create new collectorupdate_collector
: Update collector configurationdelete_collector
: Delete collectorlist_sources
: List sources in collectorcreate_source
: Create new source
Monitor Tools
list_monitors
: List all monitors with filtering and paginationsearch_monitors
: Search monitors with advanced query capabilitiesget_monitor
: Get detailed monitor configuration and metadatacreate_monitor
: Create new monitor with validationupdate_monitor
: Update existing monitor configurationdelete_monitor
: Delete monitor with cascade informationget_monitor_status
: Get current monitor status and healthget_active_alerts
: Get all currently active alertsenable_monitor
: Enable specified monitordisable_monitor
: Disable specified monitorvalidate_monitor_config
: Validate monitor configurationget_monitor_history
: Get monitor execution history and metrics
Development
Setup Development Environment
-
Clone and Install:
git clone https://github.com/sumologic/sumologic-mcp-python.git cd sumologic-mcp-python pip install -e ".[dev]"
-
Install Pre-commit Hooks:
pre-commit install
Development Commands
Run Tests:
# All tests
pytest
# Unit tests only
pytest -m unit
# Integration tests only
pytest -m integration
# With coverage
pytest --cov=sumologic_mcp --cov-report=html
Code Formatting:
# Format code
black sumologic_mcp/ tests/
isort sumologic_mcp/ tests/
# Check formatting
black --check sumologic_mcp/ tests/
isort --check-only sumologic_mcp/ tests/
Type Checking:
mypy sumologic_mcp/
Linting:
flake8 sumologic_mcp/ tests/
Run All Checks:
pre-commit run --all-files
Project Structure
sumologic-mcp-python/
āāā sumologic_mcp/ # Main package
ā āāā __init__.py
ā āāā main.py # Entry point
ā āāā server.py # MCP server implementation
ā āāā config.py # Configuration management
ā āāā auth.py # Authentication
ā āāā api_client.py # Sumo Logic API client
ā āāā error_handler.py # Error handling
ā āāā exceptions/ # Custom exceptions
ā āāā models/ # Data models
ā āāā tools/ # MCP tool implementations
āāā tests/ # Test suite
āāā .env.example # Example environment file
āāā pyproject.toml # Project configuration
āāā README.md # This file
āāā LICENSE # License file
Troubleshooting
Common Issues
Authentication Errors:
- Verify your Access ID and Access Key are correct
- Ensure your endpoint URL is correct for your Sumo Logic deployment
- Check that your credentials have necessary permissions
Connection Issues:
- Verify network connectivity to Sumo Logic endpoints
- Check firewall settings
- Ensure proper SSL/TLS configuration
Rate Limiting:
- The server automatically handles rate limiting with exponential backoff
- Adjust
SUMOLOGIC_RATE_LIMIT_DELAY
if needed - Monitor logs for rate limit warnings
Debug Mode
Enable debug logging for detailed troubleshooting:
SUMOLOGIC_LOG_LEVEL=DEBUG sumologic-mcp-server --log-format text
Getting Help
- Check the Issues page
- Review Sumo Logic API documentation
- Enable debug logging for detailed error information
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass and code is formatted
- Submit a pull request
License
This project is licensed under the MIT License - see the file for details.
Acknowledgments
- Built on the Model Context Protocol specification
- Integrates with Sumo Logic APIs
- Inspired by the TypeScript implementation at mcp-sumologic