Skip to main content
Glama
tahanadeem125

CloudWatch MCP Server

CloudWatch MCP Server

Собственный MCP сервер на базе FastMCP, который предоставляет метрики Amazon CloudWatch, Logs Insights и сигналы тревоги как инструменты, доступные ИИ-ассистенту. Он рассчитан на локальный запуск в разработке и на развёртывание на AWS Lambda в виде образа контейнера, доступ к которому открывается через Lambda Function URL.

Протестировано с fastmcp==3.4.7 и boto3 на моках moto (все перечисленные ниже инструменты прогонялись против мока вызовов CloudWatch/Logs). Зафиксируйте свою версию fastmcp в requirements.txt перед развёртыванием и сверьте этот README с gofastmcp.com, если с момента последней проверки прошло время — API FastMCP уже не раз менял свою форму (см. раздел «Заметка о меняющемся API FastMCP» ниже).

Доступные инструменты

Инструмент

Описание

list_metrics

Поиск доступных метрик по namespace/имени/измерению

get_metric_data

Получение точек временного ряда для одной метрики

list_log_groups

Вывод списка групп журналов CloudWatch, опционально по префиксу

query_logs

Выполнение запроса Logs Insights и ожидание результатов

list_alarms

Вывод списка сигналов тревоги, опционально фильтруя по состоянию

get_alarm_history

Получение истории изменения состояния одного сигнала тревоги

Все инструменты только для чтения — ни один из них не может изменять, удалять или создавать что-либо в CloudWatch. Оставляйте всё так, если только не появится конкретная причина добавить право на запись; принцип минимальных привилегий становится о гораздо более важным, когда решение о том, когда вызывать такие инструменты, принимает ИИ-модель.

Related MCP server: cloudwatch-mcp

1. Сначала запустите локально

Это самый быстрый способ убедиться, что инструменты работают, прежде чем вообще касаться развёртывания в AWS.

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# Uses your normal AWS credentials (aws configure / AWS_PROFILE / SSO)
export AWS_PROFILE=your-profile
export AWS_REGION=us-east-1

python3 server.py   # defaults to stdio transport

Направьте MCP-клиент (Claude Desktop, Claude Code и т.п.) на эту команду напрямую — для Claude Desktop добавьте её в конфигурацию MCP:

{
  "mcpServers": {
    "cloudwatch": {
      "command": "/full/path/to/.venv/bin/python3",
      "args": ["/full/path/to/server.py"],
      "env": { "AWS_PROFILE": "your-profile", "AWS_REGION": "us-east-1" }
    }
  }
}

Чтобы проверить HTTP-транспорт локально (именно этот режимом используется на Lambda):

MCP_TRANSPORT=http PORT=8080 python3 server.py
# then, from another terminal:
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

2. IAM: что серверу можно трогать

iam-policy.json в этой папке — минимальный набор правых серверу: GetMetricData/ListMetrics/DescribeAlarms* for CloudWatch, DescribeLogGroups/StartQuery/GetQueryResults/StopQuery — для Logs Insights. Больше ничего. Приныпройте его к тому identity, под которым работает сервер:

  • Локально: приныните его к IAM-пользователю/роли и используйте через AWS_PROFILE или выдайте его искомой SSO-роли.

  • На легко: прикрепите его к роли выполнения функции Lambda (плюс стандартной AWSLambdaBasicExecutionRole для логирования самой функции) — никогда не зашивайте ключи доступа в образ.

3. Развёртывание на AВаваLambda

Рекомендуемое самим CloudWatch для «выставить существующую функцию наружу как MCP-инструмент, не вспылая протокольный код» — это Amazon Bedrock AgentCore Gateway — направление, наРазwe worthпосмотреть: сервер без повода есть. Применитель — когда полностью управляемый вариант станет приемлемым позже. Внизу описан именно буквальный путь «мы волимнуем MCP-сервер», с использованием AWS Lambda Web Adapter, чтобы позволить вот этому точно приложению FastMCP работать в ler Lambda без изменений.

Соберите и залейте образ контейтента

aws ecr create-repository --repository-name cloudwatch-mcp-server

aws ecr get-login-password --region <region> | \
  docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com

docker build -t cloudwatch-mcp-server .
docker tag cloudwatch-mcp-server:latest \
  <account-id>.dkr.ecr.<region>.amazonaws.com/cloudwatch-mcp-server:latest
docker push <account-id>.dkr.ecr.<region>.amazonaws.com/cloudwatch-mcp-server:latest

Создайте ж функция Lambda

  1. Создайте функцию из образа, который вы только чтоцентрализовали.

  2. Память: начните с 512 МБ; таймаут: 30 с достаточно для большинства запросов к метрикам/сигналамотпов, поднимите до 60–120 с, если ваши Logs Insights-запросы крупные (max_wait_seconds у query_logs должен с запасом вписываться в таймаут функции).

  3. Прикрепите роль выполнения с IAM-политикой из пункта 2.

  4. Выставьте режим вызова в RESPONSE_STREAM,раз если включили стриминг для Function URL (нужно, чтобы адаптер мог отрпавить длинные ответы).

  5. Создайте Function URL:

    • Тип аутентификации: AWS_IAM ( не используйте NONE вне quick личного теста — это оет ваши сдельные данные KGS доступными для кого угодно по URL).

    • Вашему MCP-клиенту придётся подписывать заппросы SigV4, чтобы сделать вызов; большинство MCP-клиентов пока это нативно не умеют, так что на практике обычно это стоит за тем, что умеет подписывать запросы — например, внутренний шлюз/прокси вашей команды или API Gateway с IAM-аутентификацией перед Function URL, а не за прямой IAM-аутентификацией самого Function URL.

  6. MCP-эндпоинт будет https://<function-url>/mcp.

Быстрая проверка развёрнутой функции

aws lambda invoke --function-name cloudwatch-mcp-server \
  --payload '{}' /tmp/out.json && cat /tmp/out.json

и затем настоящий вызов MCP initialize против Function URL — с подписью SigV4, например через awscurl или небольшой скрипт подписанного запроса — тот же JSON-тело, что и в локальном curl-тесте выше.

4. Известные шероховатости (честно скажите о них вашей команде)

  • Холодные старты: полный HTTP-сервер (uvicorn + FastMCP), поднимающийся внутри холодного старта Lambda, медленнее типинного легкого обработчика Lambda — ожидайте лтентности несколько секунд на первом вызове после бездействия. If это важно, см будет смягчено Provisioned Concurrency.

  • Лэники/нет долгоживущей системы: stable обычных HTTP stateless_http=True означает, что каждый запрос — с ручными и сам до себя: между вызовами ничего не сохраняется, и сервер клиента сам не может пушить. Выстраивайте инструменты так, чтобы каждый вызов нёс в себе все нужное — сервер уже готов правильные примеры: query_logs принимает полный диапазон времени и текста запроса одним выйзов.

  • Аутентификация — ваша зона ответственности: IAM-аутентификация Function URL — единственная преграда между «AI UI» и любым, у кого есть URL. Не пренебрегайте ею даже на раннем отладческом этап: функция может никогда не быть касается какого-либо не одноразового аккаунта-песочницы.

  • Запросы Logs Insights — это поллинг, а не push: query_logs блокирует выполнение и опрашивает get-gate_results() до предельного max_wait_seconds. Для очень объёмных запросов это может занять время в Lambda timeout — держите запросы ограниченными (limit, узкие временные интервал), а не сильно открытыми.

5. Заметка о меняющемся API FastMCP

FastMCP в разных версиях не раз менял свой HTTP/статечный API (флат stateless_http в различных релизах перебирался между конструктором FastMCP() и mcp.run()/более — mcp.http_flags()). Код в server.py валидировался против fastmcp==3.4.7 (mcp.run(transport="http", stateless_http=True, ...)). Если поднимите версию и что-то сломается в первую очередь сверьтесь с gofastmcp.com/deployment/http — скорее всего изменилось именно это.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to monitor and troubleshoot AWS Application Signals services by tracking service health, analyzing SLO compliance, querying CloudWatch metrics, and investigating issues using distributed tracing with AWS X-Ray.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to query AWS CloudWatch metrics, alarms, and logs read-only via MCP, providing rapid health snapshots and triage without console navigation.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants read-only access to Sprinklr data via MCP, allowing querying reports, searching cases, and calling Sprinklr API endpoints.
    7
    ISC

View all related MCP servers

Related MCP Connectors

  • Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.

  • Remote MCP for Copilot CLI switch gate MCP, structured receipts, audit logs, and reviewer-ready evid

  • A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud

View all MCP Connectors

Latest Blog Posts

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

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