Skip to main content

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.

Metadata

Release files for iflow-mcp_jamesbrink-mcp-coroot 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_jamesbrink-mcp-coroot 0.1.1
File Size Uploaded
iflow_mcp_jamesbrink_mcp_coroot-0.1.1.tar.gz 107.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_jamesbrink-mcp-coroot 0.1.1
File Interpreter ABI Platform
iflow_mcp_jamesbrink_mcp_coroot-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 131.6 kB

Release files / iflow_mcp_jamesbrink_mcp_coroot-0.1.1.tar.gz

Download URL iflow_mcp_jamesbrink_mcp_coroot-0.1.1.tar.gz
Size 107.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a351d225105b7d7ca2adbc327d62b0bc2b651fc376bf5351d751aa7416035618
BLAKE2b-256 checksum
How to use checksums
305fa0831ba336041f5bad71eecdf0c662ba3f6403b4e6cc7cf4ff4288f1fbfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_jamesbrink_mcp_coroot-0.1.1-py3-none-any.whl

Download URL iflow_mcp_jamesbrink_mcp_coroot-0.1.1-py3-none-any.whl
Size 23.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf4bb94ec8a37ffcdeb313345bead21981cddb2e3b9b7a59c9dea33f384eea1d
BLAKE2b-256 checksum
How to use checksums
b8e592fbb0c990e404de17a0d6d1441514474a40800c44e0b7bef451c5c9b6ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page