MCP Server for Coroot

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.

Category
Visit Server

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

CI codecov PyPI version Python versions

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 authentication
  • COROOT_PASSWORD - Password for basic authentication
  • COROOT_SESSION_COOKIE - Session cookie for SSO/MFA users
  • COROOT_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:

  1. Login to Coroot through your browser
  2. Open Developer Tools (F12)
  3. Go to Application/Storage → Cookies
  4. 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 information
  • update_current_user - Update user profile
  • list_users - List all users
  • create_user - Create new users
  • get_roles - View roles and permissions

📊 Project Management (9 tools)

  • list_projects - List all accessible projects
  • get_project - Get project details
  • create_project - Create new project
  • get_project_status - Check project health
  • update_project_settings - Update project configuration
  • delete_project - Delete project
  • list_api_keys - View API keys
  • create_api_key - Generate API keys
  • delete_api_key - Delete API keys

🚀 Application Monitoring (3 tools)

  • get_application - Comprehensive application metrics
  • get_application_logs - Search and analyze logs
  • get_application_traces - View distributed traces

🌐 Overview & Analysis (5 tools)

  • get_applications_overview - All applications summary
  • get_nodes_overview - Infrastructure overview
  • get_traces_overview - Tracing summary
  • get_deployments_overview - Deployment history
  • get_risks_overview - Risk assessment

📈 Dashboard Management (5 tools)

  • list_dashboards - View dashboards
  • create_dashboard - Create dashboard
  • get_dashboard - Get dashboard details
  • update_dashboard - Update dashboard
  • delete_dashboard - Remove dashboard

🔌 Integrations (4 tools)

  • list_integrations - View integrations
  • configure_integration - Configure integration
  • test_integration - Test connectivity
  • delete_integration - Remove integration

⚙️ Configuration (9 tools)

  • list_inspections - View inspection types
  • get_inspection_config - Get inspection settings
  • update_inspection_config - Update inspections
  • get_application_categories - View categories
  • create_application_category - Create new category
  • update_application_category - Update existing category
  • delete_application_category - Delete category
  • get_custom_applications - View custom apps
  • update_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 - Use from_timestamp and to_timestamp
  • get_application_profiling - Limit time range to reduce data size

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Ensure all tests pass
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured