Skip to main content
Glama

CloudWatch MCP Server

by CharlieFng

CloudWatch MCP Server

This simplified MCP server provides a streamlined way to interact with AWS CloudWatch resources through the MCP protocol. It exposes CloudWatch log groups, log queries, and alarms as resources and tools.

Features

  • List all CloudWatch log groups with their metadata
  • List all CloudWatch alarms with their current states
  • Query CloudWatch logs using CloudWatch Insights across multiple log groups
  • Discover available fields across multiple log groups with shared schema
  • Automatic JSON parsing for @message field in log queries
  • Check if specific log groups exist
  • Get detailed information about specific log groups
  • Filter alarms by state (all alarms or only those in ALARM state)
  • Retrieve all saved CloudWatch Logs Insights queries

Prerequisites

  • Python 3.12 or higher
  • AWS credentials configured (via environment variables, AWS CLI, or IAM role)
  • MCP CLI (version 0.1.1 or higher)
  • Boto3 (AWS SDK for Python)

Setup

  1. Make sure you have Python 3.12+ installed.
  2. Create a virtual environment (optional but recommended):
    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. Install dependencies:
    pip install -r requirements.txt
  4. Configure AWS credentials if you haven't already:
    aws configure
    Or set environment variables:
    export AWS_ACCESS_KEY_ID="your-access-key" export AWS_SECRET_ACCESS_KEY="your-secret-key" export AWS_REGION="your-region"

Project Structure

  • cloudwatch_server.py - MCP server implementation for CloudWatch integration
  • aws_cloudwatch.py - Simplified AWS CloudWatch integration module
  • test_cloudwatch.py - Command-line utility to test the CloudWatch integration

Running the server

Start the MCP server:

python cloudwatch_server.py

Or using the MCP CLI:

mcp run cloudwatch_server.py

Using the MCP server

Resources

The server exposes the following resources:

  • cloudwatch://log-groups - Lists all CloudWatch log groups
  • cloudwatch://log-groups/{log_group_name} - Gets detailed information about a specific log group
  • cloudwatch://alarms - Lists all CloudWatch alarms
  • cloudwatch://alarms/in-alarm - Lists only CloudWatch alarms currently in ALARM state
  • cloudwatch://saved-queries - Lists all saved CloudWatch Logs Insights queries

Tools

The server provides the following tools:

  • query_logs - Query CloudWatch logs using CloudWatch Insights
    • Parameters:
      • log_group_names: Single log group name or list of log group names to query
      • query_string: CloudWatch Insights query string
      • start_time: (Optional) Start time for the query in Unix timestamp milliseconds
      • end_time: (Optional) End time for the query in Unix timestamp milliseconds
    • Features:
      • Automatically parses JSON in @message field
      • Returns structured data for JSON messages
      • Handles multiple log groups in a single query
  • discover_log_fields - Discover available fields across multiple log groups
    • Parameters:
      • log_group_names: Single log group name or list of log group names to analyze
    • Features:
      • Efficiently discovers fields across multiple log groups
      • Assumes shared schema across log groups
      • Detects nested JSON fields in @message
      • Identifies field types (number, boolean, string, array)
  • log_group_exists - Check if CloudWatch log groups exist
    • Parameters:
      • log_group_names: Single log group name or list of log group names to check
    • Returns:
      • Dictionary mapping each log group to its existence status
  • get_saved_queries - Fetch all saved CloudWatch Logs Insights queries
    • No parameters required

Testing the CloudWatch integration

You can test the CloudWatch integration directly using the provided test script:

# Make the test file executable chmod +x test_cloudwatch.py # List all log groups ./test_cloudwatch.py log-groups # List all alarms ./test_cloudwatch.py alarms # Use a specific AWS profile ./test_cloudwatch.py log-groups --profile my-profile # Enable verbose logging ./test_cloudwatch.py alarms -v

Examples with MCP CLI

Using the MCP CLI:

# List all log groups mcp inspect cloudwatch://log-groups # Get details about a specific log group mcp inspect cloudwatch://log-groups/my-log-group-name # List all alarms mcp inspect cloudwatch://alarms # List alarms currently in ALARM state mcp inspect cloudwatch://alarms/in-alarm # List all saved CloudWatch Logs Insights queries mcp inspect cloudwatch://saved-queries # Query logs from multiple log groups using CloudWatch Insights mcp call query_logs --log_group_names '["log-group-1", "log-group-2"]' --query_string "fields @timestamp, @message | limit 10" # Query logs from a single log group (still supported) mcp call query_logs --log_group_names "my-log-group" --query_string "fields @timestamp, @message | limit 10" # Discover fields across multiple log groups mcp call discover_log_fields --log_group_names '["log-group-1", "log-group-2"]' # Check if multiple log groups exist mcp call log_group_exists --log_group_names '["log-group-1", "log-group-2"]' # Get all saved CloudWatch Logs Insights queries mcp call get_saved_queries

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Ein vereinfachter MCP-Server, der eine optimierte Möglichkeit zur Interaktion mit AWS CloudWatch-Ressourcen (Protokollgruppen, Protokollabfragen und Alarme) über das MCP-Protokoll bietet.

  1. Merkmale
    1. Voraussetzungen
      1. Aufstellen
        1. Projektstruktur
          1. Ausführen des Servers
            1. Verwenden des MCP-Servers
              1. Ressourcen
              2. Werkzeuge
            2. Testen der CloudWatch-Integration
              1. Beispiele mit MCP CLI
                1. Lizenz

                  Related MCP Servers

                  • A
                    security
                    F
                    license
                    A
                    quality
                    An MCP server that provides tools for interacting with AWS S3 buckets, enabling direct access to S3 operations through the Model Context Protocol.
                    Last updated -
                    1
                    • Apple
                  • -
                    security
                    F
                    license
                    -
                    quality
                    An MCP server that allows AI assistants to access AWS CloudWatch logs by listing log groups and reading log entries.
                    Last updated -
                    25
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Model Context Protocol server that provides AI assistants access to AWS CloudWatch Logs, enabling browsing, searching, summarizing, and correlating logs across multiple AWS services.
                    Last updated -
                    113
                    Apache 2.0
                  • -
                    security
                    F
                    license
                    -
                    quality
                    An MCP server that enables interaction with Google Cloud Logging API, allowing users to write, read, and manage log entries and configurations through natural language.
                    Last updated -

                  View all related MCP servers

                  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/CharlieFng/cloudwatch-mcp'

                  If you have feedback or need assistance with the MCP directory API, please join our Discord server