
MCP Server for Coroot
A Model Context Protocol server that provides seamless integration with Coroot observability platform, enabling monitoring of applications, analysis of performance metrics, examination of logs and traces, and management of infrastructure through Coroot's comprehensive API.
Tools
get_current_user
Get current authenticated user information. Returns information about the currently authenticated user including their email, name, roles, and accessible projects.
list_projects
List all accessible projects. Returns a list of all projects that the authenticated user has access to. Each project includes its ID and name.
get_project
Get project details and configuration. Retrieves comprehensive information about a project including its settings, integrations, and configuration. Args: project_id: Project ID
create_project
Create a new project. Creates a new Coroot project with the specified name. The name must contain only lowercase letters, numbers, and hyphens. Args: name: Project name (must match ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$)
get_project_status
Get project status including agent and integration health. Returns the current status of a project including: - Overall project health - Prometheus connection status - Node agent deployment status - Any error messages Args: project_id: Project ID
get_application
Get application details and metrics. Retrieves comprehensive information about an application including: - Performance metrics (CPU, memory, network) - Health checks and SLOs - Recent incidents - Deployment history Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) from_timestamp: Start timestamp for metrics (optional) to_timestamp: End timestamp for metrics (optional)
get_application_logs
Get application logs with pattern analysis. Retrieves application logs with automatic pattern detection and grouping. Supports filtering by time range, search query, and severity level. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) from_timestamp: Start timestamp (optional) to_timestamp: End timestamp (optional) query: Log search query (optional) severity: Filter by severity level (optional)
get_application_traces
Get distributed traces for an application. Retrieves distributed tracing data showing request flow through the application and its dependencies. ⚠️ WARNING: This endpoint can return very large responses (100k+ tokens) when retrieving many traces. Consider using time filters or trace_id to limit the response size. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) from_timestamp: Start timestamp (optional, recommended to limit data) to_timestamp: End timestamp (optional, recommended to limit data) trace_id: Specific trace ID to retrieve (optional, returns single trace) query: Search query (optional)
get_applications_overview
Get overview of all applications in a project. Returns a high-level view of all applications including: - Application health status - Key performance indicators - Resource usage - Recent incidents Args: project_id: Project ID query: Search/filter query (optional)
get_nodes_overview
Get overview of infrastructure nodes. Returns information about all nodes in the infrastructure: - Node health and status - Resource utilization - Running containers - System metrics Args: project_id: Project ID query: Search/filter query (optional)
get_traces_overview
Get distributed tracing overview. Returns a summary of distributed traces across all applications: - Trace volume and trends - Error rates - Latency percentiles - Service dependencies Args: project_id: Project ID query: Search/filter query (optional)
get_deployments_overview
Get deployment tracking overview. Returns information about recent deployments: - Deployment timeline - Success/failure rates - Rollback history - Impact on application performance Args: project_id: Project ID query: Search/filter query (optional)
get_risks_overview
Get risk assessment overview. Returns comprehensive risk analysis across all applications: - High-risk applications - Risk trends over time - Critical issues requiring attention - Compliance and security risks Args: project_id: Project ID query: Search/filter query (optional)
list_integrations
List all configured integrations for a project. Returns the configuration status of all available integrations: - Prometheus - ClickHouse - AWS - Slack - Microsoft Teams - PagerDuty - Opsgenie - Webhooks Args: project_id: Project ID
configure_integration
Configure an integration for a project. Sets up or updates an integration configuration. Each integration type has specific configuration requirements. Integration types: - prometheus: Metrics data source - clickhouse: Long-term storage - aws: AWS services integration - slack: Slack notifications - teams: Microsoft Teams notifications - pagerduty: PagerDuty alerts - opsgenie: Opsgenie alerts - webhook: Custom webhooks Args: project_id: Project ID integration_type: Type of integration config: Integration-specific configuration dictionary
list_inspections
List all available inspections for a project. Returns a list of all inspection types and their configurations including CPU, memory, SLO, and other health checks. Args: project_id: Project ID
get_inspection_config
Get inspection configuration for an application. Retrieves the current configuration for a specific inspection type (e.g., cpu, memory, slo_availability, slo_latency) for an application. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) inspection_type: Type of inspection (cpu, memory, slo, etc)
update_inspection_config
Update inspection configuration for an application. Updates the configuration for a specific inspection type. Configuration format depends on the inspection type. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) inspection_type: Type of inspection (cpu, memory, slo, etc) config: New configuration (format varies by type)
get_application_categories
Get application categories configuration. Returns the current application categorization rules that determine how applications are grouped (e.g., monitoring, control-plane, etc). Args: project_id: Project ID
update_application_categories
Update application categories configuration. Updates the rules for categorizing applications. Categories can include custom patterns for matching applications by namespace, name, etc. Args: project_id: Project ID categories: New categories configuration with patterns
get_custom_applications
Get custom applications configuration. Returns the list of custom application definitions that group instances by patterns. Args: project_id: Project ID
update_custom_applications
Update custom applications configuration. Updates the list of custom application definitions. Custom applications allow grouping instances by container name patterns. Args: project_id: Project ID applications: New custom applications list with instance patterns
get_application_rca
Get AI-powered root cause analysis for application issues. Analyzes application problems and provides insights into the root causes of incidents, performance degradation, or failures. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name)
get_application_profiling
Get CPU and memory profiling data for an application. Retrieves profiling data including flame graphs for CPU usage and memory allocation patterns to help identify performance bottlenecks and optimization opportunities. ⚠️ WARNING: This endpoint can return extremely large responses (180k+ tokens) for applications with extensive profiling data. Consider using time filters to limit the response size to specific time windows. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) from_timestamp: Start timestamp (optional, strongly recommended) to_timestamp: End timestamp (optional, strongly recommended) query: Search query (optional)
update_application_risks
Update risk assessment configuration for an application. Configures risk thresholds and monitoring parameters to better identify potential issues before they impact users. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) risks: Risk assessment configuration
get_db_instrumentation
Get database instrumentation configuration. Retrieves instrumentation settings for a specific database type. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) db_type: Database type (mysql, postgres, redis, mongodb, memcached)
update_db_instrumentation
Update database instrumentation configuration. Configures how Coroot instruments and monitors a specific database. Args: project_id: Project ID app_id: Application ID (format: namespace/kind/name) db_type: Database type (mysql, postgres, redis, mongodb, memcached) config: Instrumentation configuration
get_node
Get detailed information about a specific infrastructure node. Retrieves comprehensive metrics and information about a node including: - Resource usage (CPU, memory, disk, network) - Running containers - System information - Health status Args: project_id: Project ID node_id: Node ID
get_incident
Get detailed information about a specific incident. Retrieves comprehensive incident information including: - Timeline of events - Affected applications - Impact assessment - Resolution status Args: project_id: Project ID incident_id: Incident ID
list_dashboards
List all custom dashboards for a project. Returns all user-created dashboards with their configurations. Args: project_id: Project ID
create_dashboard
Create a new custom dashboard. Creates a dashboard with custom panels and queries for monitoring specific aspects of your infrastructure. Args: project_id: Project ID dashboard: Dashboard configuration with panels and layout
get_dashboard
Get a specific dashboard configuration. Retrieves the full configuration of a dashboard including all panels. Args: project_id: Project ID dashboard_id: Dashboard ID
update_dashboard
Update an existing dashboard configuration. Updates dashboard panels, layout, or other settings. Args: project_id: Project ID dashboard_id: Dashboard ID dashboard: Updated dashboard configuration
delete_dashboard
Delete a custom dashboard. Permanently removes a dashboard from the project. Args: project_id: Project ID dashboard_id: Dashboard ID
test_integration
Test an integration configuration. Verifies that an integration is properly configured and can connect. Args: project_id: Project ID integration_type: Type of integration (prometheus, slack, etc)
delete_integration
Delete an integration configuration. Removes an integration from the project. Args: project_id: Project ID integration_type: Type of integration to delete
update_project_settings
Update project settings and configuration. Updates project-level settings such as retention, alerting, etc. Args: project_id: Project ID settings: Updated project settings
delete_project
Delete a project and all associated data. WARNING: This action is irreversible and will delete all project data. Args: project_id: Project ID
list_api_keys
List all API keys for a project. Returns all API keys with their metadata (but not the secret values). Args: project_id: Project ID
create_api_key
Create a new API key for data ingestion. Creates an API key that can be used for sending metrics and data. The key secret is only returned once during creation. Args: project_id: Project ID name: API key name description: Optional description
update_current_user
Update current user information. Updates the profile of the currently authenticated user. Args: user_data: Updated user information
list_users
List all users in the system (admin only). Returns all users with their roles and permissions. Requires admin privileges.
create_user
Create a new user (admin only). Creates a new user account with specified role and permissions. Requires admin privileges. Args: user_data: New user information including email, name, role
get_roles
Get available user roles. Returns all available roles that can be assigned to users (e.g., Viewer, Editor, Admin).
get_custom_cloud_pricing
Get custom cloud pricing configuration. Retrieves any custom cloud pricing overrides for cost calculations. Args: project_id: Project ID
update_custom_cloud_pricing
Update custom cloud pricing configuration. Sets custom pricing for cloud resources to override default pricing. Args: project_id: Project ID pricing: Custom pricing configuration
delete_custom_cloud_pricing
Delete custom cloud pricing configuration. Removes custom pricing overrides and reverts to default pricing. Args: project_id: Project ID
health_check
Check if Coroot server is healthy. Performs a simple health check to verify that the Coroot server is running and accessible.
get_sso_config
Get SSO configuration. Retrieves Single Sign-On (SSO) configuration and available roles.
update_sso_config
Update SSO configuration. Configures Single Sign-On settings for the Coroot instance. Args: config: SSO configuration settings
get_ai_config
Get AI provider configuration. Retrieves AI provider settings used for root cause analysis.
update_ai_config
Update AI provider configuration. Configures AI provider settings for enhanced root cause analysis. Args: config: AI provider settings (API keys, model selection, etc.)
get_panel_data
Get data for a specific dashboard panel. Retrieves the data that powers a specific panel in a custom dashboard, including metrics, time series data, or aggregated values. Args: project_id: The project ID dashboard_id: The dashboard ID panel_id: The panel ID within the dashboard from_time: Optional start time (ISO format or relative like '-1h') to_time: Optional end time (ISO format or 'now')
get_integration
Get specific integration configuration details. Retrieves the current configuration for a specific integration type, including connection details, settings, and status. Args: project_id: The project ID integration_type: Type of integration (prometheus, cloudwatch, etc.)
configure_profiling
Configure CPU and memory profiling for an application. Enables or disables continuous profiling and sets the sampling rate for collecting CPU and memory profiles. Args: project_id: The project ID app_id: The application ID enabled: Whether to enable profiling sample_rate: Optional sampling rate (0.0-1.0)
configure_tracing
Configure distributed tracing for an application. Controls trace collection settings including sampling rate and paths to exclude from tracing. Args: project_id: The project ID app_id: The application ID enabled: Whether to enable tracing sample_rate: Optional trace sampling rate (0.0-1.0) excluded_paths: Optional list of URL paths to exclude
configure_logs
Configure log collection settings for an application. Controls which logs are collected and processed, including log level filtering and pattern exclusions. Args: project_id: The project ID app_id: The application ID enabled: Whether to enable log collection level: Optional minimum log level (debug, info, warn, error) excluded_patterns: Optional regex patterns to exclude
create_or_update_role
Create or update a user role (admin only). Defines custom roles with specific permissions for fine-grained access control. Args: name: Role name permissions: List of permission strings description: Optional role description
README
MCP Server for Coroot
A Model Context Protocol (MCP) server that provides seamless integration with Coroot observability platform. This server enables MCP clients to monitor applications, analyze performance metrics, examine logs and traces, and manage infrastructure through Coroot's comprehensive API.
Getting Started
Add this configuration to your MCP client settings:
{
"mcpServers": {
"coroot": {
"command": "uvx",
"args": ["mcp-coroot"],
"env": {
"COROOT_BASE_URL": "http://localhost:8080",
"COROOT_USERNAME": "admin",
"COROOT_PASSWORD": "your-password"
}
}
}
}
Using Docker:
{
"mcpServers": {
"coroot": {
"command": "docker",
"args": ["run", "--rm", "-i",
"-e", "COROOT_BASE_URL=http://localhost:8080",
"-e", "COROOT_USERNAME=admin",
"-e", "COROOT_PASSWORD=your-password",
"jamesbrink/mcp-coroot:latest"]
}
}
}
For SSO/MFA users, use session cookie authentication instead:
{
"mcpServers": {
"coroot": {
"command": "uvx",
"args": ["mcp-coroot"],
"env": {
"COROOT_BASE_URL": "http://localhost:8080",
"COROOT_SESSION_COOKIE": "your-auth-cookie-value"
}
}
}
}
Environment Variables
COROOT_BASE_URL
- Your Coroot instance URL (required)COROOT_USERNAME
- Username for basic authenticationCOROOT_PASSWORD
- Password for basic authenticationCOROOT_SESSION_COOKIE
- Session cookie for SSO/MFA usersCOROOT_API_KEY
- API key (limited to data ingestion only)
That's it! Your MCP client can now interact with your Coroot instance.
Features
Core Capabilities
- Application Monitoring - Real-time metrics, health checks, and performance analysis
- Log Analysis - Search, filter, and analyze application logs with pattern detection
- Distributed Tracing - Trace requests across microservices and identify bottlenecks
- Infrastructure Overview - Monitor nodes, containers, and system resources
- Incident Management - Track and analyze incidents with root cause analysis
- Performance Profiling - CPU and memory profiling with flame graphs
Management Features
- Project Management - Create, configure, and manage Coroot projects
- Integration Configuration - Set up Prometheus, Slack, PagerDuty, and more
- Dashboard Customization - Create and manage custom dashboards
- Cost Tracking - Monitor cloud costs with custom pricing rules
- User & Access Control - Manage users, roles, and permissions
Advanced Features
- AI-Powered RCA - Automatic root cause analysis for application issues
- Risk Assessment - Identify and track infrastructure and application risks
- Deployment Tracking - Monitor deployments and their impact
- SLO Management - Configure and track Service Level Objectives
- Database Instrumentation - Specialized monitoring for databases
Installation
Using uvx (Recommended)
# Install and run directly
uvx mcp-coroot
Using pip
pip install mcp-coroot
Using Docker
docker run --rm -i \
-e COROOT_BASE_URL="http://localhost:8080" \
-e COROOT_USERNAME="admin" \
-e COROOT_PASSWORD="your-password" \
jamesbrink/mcp-coroot:latest
From Source
git clone https://github.com/jamesbrink/mcp-coroot.git
cd mcp-coroot
uv sync --all-groups
uv run mcp-coroot
Authentication Methods
Username/Password
Best for users with basic authentication. The server automatically handles login and session management.
Session Cookie (SSO/MFA)
Required for organizations using:
- Single Sign-On (SAML, OIDC)
- Multi-Factor Authentication (2FA/MFA)
- Advanced authentication workflows
To get your session cookie:
- Login to Coroot through your browser
- Open Developer Tools (F12)
- Go to Application/Storage → Cookies
- Copy the value of the
auth
cookie
API Key
Only supports data ingestion endpoints (/v1/*
). Cannot be used for management APIs.
Available Tools
The server provides 61 tools organized into functional categories:
🔐 Authentication & Users (5 tools)
get_current_user
- Get authenticated user informationupdate_current_user
- Update user profilelist_users
- List all userscreate_user
- Create new usersget_roles
- View roles and permissions
📊 Project Management (9 tools)
list_projects
- List all accessible projectsget_project
- Get project detailscreate_project
- Create new projectget_project_status
- Check project healthupdate_project_settings
- Update project configurationdelete_project
- Delete projectlist_api_keys
- View API keyscreate_api_key
- Generate API keysdelete_api_key
- Delete API keys
🚀 Application Monitoring (3 tools)
get_application
- Comprehensive application metricsget_application_logs
- Search and analyze logsget_application_traces
- View distributed traces
🌐 Overview & Analysis (5 tools)
get_applications_overview
- All applications summaryget_nodes_overview
- Infrastructure overviewget_traces_overview
- Tracing summaryget_deployments_overview
- Deployment historyget_risks_overview
- Risk assessment
📈 Dashboard Management (5 tools)
list_dashboards
- View dashboardscreate_dashboard
- Create dashboardget_dashboard
- Get dashboard detailsupdate_dashboard
- Update dashboarddelete_dashboard
- Remove dashboard
🔌 Integrations (4 tools)
list_integrations
- View integrationsconfigure_integration
- Configure integrationtest_integration
- Test connectivitydelete_integration
- Remove integration
⚙️ Configuration (9 tools)
list_inspections
- View inspection typesget_inspection_config
- Get inspection settingsupdate_inspection_config
- Update inspectionsget_application_categories
- View categoriescreate_application_category
- Create new categoryupdate_application_category
- Update existing categorydelete_application_category
- Delete categoryget_custom_applications
- View custom appsupdate_custom_applications
- Define custom apps
🔍 Advanced Features (15 tools)
Including RCA, profiling, cloud pricing, database instrumentation, SSO/AI configuration, and more.
Example Usage
Basic Monitoring
"Show me all applications in the production project"
"Check the health status of the API service"
"Are there any critical incidents right now?"
Troubleshooting
"Search for error logs in the payment service from the last hour"
"Show me slow database queries"
"Analyze the root cause of high latency in the frontend"
Configuration
"Set up Slack notifications for critical alerts"
"Create a dashboard for monitoring Redis performance"
"Configure SLO thresholds for the API service"
Development
Using Test PyPI Version
To use the pre-release version from Test PyPI:
{
"mcpServers": {
"coroot": {
"command": "uvx",
"args": [
"--index-url",
"https://test.pypi.org/simple/",
"--extra-index-url",
"https://pypi.org/simple/",
"mcp-coroot"
],
"env": {
"COROOT_BASE_URL": "http://localhost:8080",
"COROOT_USERNAME": "admin",
"COROOT_PASSWORD": "your-password"
}
}
}
}
Note: The --extra-index-url
is required because Test PyPI doesn't host all dependencies.
Testing
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov
# Run specific tests
uv run pytest tests/test_server.py -v
Code Quality
# Type checking
uv run mypy src
# Linting
uv run ruff check src tests
# Formatting
uv run ruff format src tests
API Compatibility
This MCP server is compatible with Coroot v1.0+ and implements the full management API surface. For data ingestion endpoints, use the Coroot API directly with your API key.
Troubleshooting
Connection Issues
- Verify Coroot is accessible at the configured URL
- Check firewall rules and network connectivity
- Ensure credentials are correct
Authentication Errors
- Username/password authentication is recommended for automatic login
- Session cookies expire after 7 days of inactivity
- API keys only work for data ingestion, not management APIs
Large Response Errors
Some endpoints return large datasets. Use time filters:
get_application_traces
- Usefrom_timestamp
andto_timestamp
get_application_profiling
- Limit time range to reduce data size
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
License
MIT License - see LICENSE file for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.