MCP-сервер CloudWatch
Этот упрощенный сервер MCP обеспечивает оптимизированный способ взаимодействия с ресурсами AWS CloudWatch через протокол MCP. Он представляет группы журналов CloudWatch, запросы журналов и оповещения в качестве ресурсов и инструментов.
Функции
Перечислите все группы журналов CloudWatch с их метаданными.
Список всех оповещений CloudWatch с их текущими состояниями
Запрос журналов CloudWatch с помощью CloudWatch Insights по нескольким группам журналов
Откройте для себя доступные поля в нескольких группах журналов с общей схемой
Автоматический анализ JSON для поля @message в запросах журнала
Проверьте, существуют ли определенные группы журналов
Получите подробную информацию о конкретных группах журналов
Фильтрация сигналов тревоги по состоянию (все сигналы тревоги или только те, которые находятся в состоянии ТРЕВОГА)
Извлечь все сохраненные запросы CloudWatch Logs Insights
Related MCP server: CloudWatch Logs MCP Server
Предпосылки
Python 3.12 или выше
Настроенные учетные данные AWS (через переменные среды, AWS CLI или роль IAM)
MCP CLI (версия 0.1.1 или выше)
Boto3 (AWS SDK для Python)
Настраивать
Убедитесь, что у вас установлен Python 3.12+.
Создайте виртуальную среду (необязательно, но рекомендуется):
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activateУстановить зависимости:
pip install -r requirements.txtНастройте учетные данные AWS, если вы еще этого не сделали:
aws configureИли установите переменные среды:
export AWS_ACCESS_KEY_ID="your-access-key" export AWS_SECRET_ACCESS_KEY="your-secret-key" export AWS_REGION="your-region"
Структура проекта
cloudwatch_server.py— реализация сервера MCP для интеграции CloudWatchaws_cloudwatch.py— упрощенный модуль интеграции AWS CloudWatchtest_cloudwatch.py— утилита командной строки для тестирования интеграции CloudWatch
Запуск сервера
Запустите MCP-сервер:
Или с помощью MCP CLI:
Использование сервера MCP
Ресурсы
Сервер предоставляет следующие ресурсы:
cloudwatch://log-groups— список всех групп журналов CloudWatchcloudwatch://log-groups/{log_group_name}— Получает подробную информацию о конкретной группе журналовcloudwatch://alarms— список всех оповещений CloudWatchcloudwatch://alarms/in-alarm— выводит список только тех оповещений CloudWatch, которые в данный момент находятся в состоянии ALARM.cloudwatch://saved-queries— список всех сохраненных запросов CloudWatch Logs Insights.
Инструменты
Сервер предоставляет следующие инструменты:
query_logs— запрос журналов CloudWatch с помощью CloudWatch InsightsПараметры:
log_group_names: Имя отдельной группы журналов или список имен групп журналов для запросаquery_string: строка запроса CloudWatch Insightsstart_time: (Необязательно) Время начала запроса в миллисекундах метки времени Unix.end_time: (Необязательно) Время окончания запроса в миллисекундах временной метки Unix.
Функции:
Автоматически анализирует JSON в поле @message
Возвращает структурированные данные для сообщений JSON
Обрабатывает несколько групп журналов в одном запросе
discover_log_fields— обнаружение доступных полей в нескольких группах журналовПараметры:
log_group_names: Имя отдельной группы журналов или список имен групп журналов для анализа
Функции:
Эффективно обнаруживает поля в нескольких группах журналов
Предполагается общая схема для всех групп журналов
Обнаруживает вложенные поля JSON в @message
Определяет типы полей (число, логическое значение, строка, массив)
log_group_exists— проверка существования групп журналов CloudWatchПараметры:
log_group_names: Имя отдельной группы журналов или список имен групп журналов для проверки
Возврат:
Словарь, сопоставляющий каждую группу журналов с ее статусом существования
get_saved_queries— извлечение всех сохраненных запросов CloudWatch Logs InsightsПараметры не требуются
Тестирование интеграции CloudWatch
Вы можете протестировать интеграцию CloudWatch напрямую, используя предоставленный тестовый скрипт:
Примеры с MCP CLI
Использование интерфейса командной строки MCP:
Лицензия
Массачусетский технологический институт