[アップデート] CloudWatch Application Signals MCP サーバーが公開されました

[アップデート] CloudWatch Application Signals MCP サーバーが公開されました

こんにちは。クラウド事業本部の枡川です。
先日 CloudWatch MCP サーバーと CloudWatch Application Signals MCP サーバーが利用できるようになりました。

https://aws.amazon.com/about-aws/whats-new/2025/07/amazon-cloudwatch-application-signals-mcp-servers-for-ai-assisted-troubleshooting/

生成 AI を使って運用時のトラブルシューティングが楽になると嬉しいですよね!
本記事では CloudWatch Application Signals MCP サーバーにフォーカスして試してみます。

CloudWatch Application Signals MCP サーバー
https://github.com/awslabs/mcp/tree/main/src/cloudwatch-appsignals-mcp-server

CloudWatch Application Signals とは?

OpenTelemetry 互換のアプリケーションパフォーマンスモニタリングを実現するための CloudWatch の 1 機能です。
Observability を簡単に整備できることが大きなメリットで、ドキュメント通り設定するだけでアプリケーションへの自動計装も完了します。
もちろん組み込みダッシュボードも存在しており、SLO(サービスレベル目標)や SLI(サービスレベル指標)を扱えることも大きな特徴です。

appsig-1.png

Application Signals MCP サーバーでできること

できることをざっくりまとめると下記のようになります。

Available Tools 概要
list_monitored_services Application Signals で監視されている全サービスの一覧を取得
get_service_detail 特定サービスの詳細情報を取得
list_slis 全サービスの SLO/SLI ステータスを一覧取得
get_slo 特定 SLO の詳細情報を取得
search_transaction_spans Transaction Search を使った OTel Spans データのクエリ
query_sampled_traces AWS X-Ray トレースをクエリしてインサイトを取得
query_service_metrics Application Signals メトリクスをクエリ

AWS 上でトレースをクエリしてインサイトを得ようとすると専用のクエリ方式を扱う必要があります。
例えば応答時間が 5 秒を超えたリクエストを取得しようとした場合、下記のように書けます。

responsetime > 5

フィルター式の使用 | AWS X-Ray

これだけだと簡単ですが、サービスや URL、ステータスコードなども含めて条件が複雑になってくると、どんどん複雑なクエリになっていきます。
昨年 Transaction Search が登場してトレースの分析が簡単になりましたが、AI に指示したら情報まとめてくれた方が嬉しい場面もあると思います。

https://dev.classmethod.jp/articles/try-xray-transaction-search/

とはいえ、Transaction Search のビジュアルエディタはフィルタ式を書かなくても簡単に分析できてとても良いです。
トレースの分析という観点だけだとまだまだ Transaction Search を見たいなとも思います。

transaction-search.png

なので、ローカル環境にある各種ソースコードと Application Signals で得られる情報の両方を AI に読み込ませて動作させることができるというのが一つの肝に思いました。
こんな感じで各種メトリクス情報と各種ソースコードを理解した AI がコードの問題点まで調査してくれたら最高ですよね。

mcp.png

※ 上記画像の際は AWS CLI を実行させて AWS の情報を取得させてます。

使ってみる

今回は AWS が公開している application-signals-demo を利用してデモ環境を作成しました。

https://github.com/aws-observability/application-signals-demo

その状態で Application Signals MCP サーバーリポジトリの README.md 記載の通り、 Cursor に MCP サーバーの設定を行います。
Add to Cursor と記載してあるので、そこをクリックして追加しました。
ただ、普通に追加すると MCP 名と Tool 名の組み合わせが長いと怒られました。

mcp2.png

(わかる、CloudWatch Application Signals MCP サーバーって長いよね、良い略し方を提案して欲しい)

CloudWatch は自明なので省いてあげて、最終的な設定は下記の通りになりました。

{
  "awslabs.appsignals-mcp-server": {
    "autoApprove": [],
    "disabled": false,
    "timeout": 60,
    "command": "uvx awslabs.cloudwatch-appsignals-mcp-server@latest",
    "env": {
      "AWS_PROFILE": "<利用するプロファイル名>",
      "AWS_REGION": "ap-northeast-1",
      "FASTMCP_LOG_LEVEL": "ERROR"
    },
    "transportType": "stdio"
  }
}

では聞いてみます。
まずは監視されているサービス一覧を確認します。
list_monitored_services を利用して正確に回答してくれました。

mpc3.png

次の SLO の状態を聞いてみると、list_slis を利用して確認してくれました。

mcp4.png

Transaction Search が有効であるので、100% のトレース可視性があることも伝えてくれています。
どうやら Transaction Search が有効な時に使える search_transaction_spans を利用しないと、全てのトレースを見て回答することはできないようです。

mpc5.png

Transaction Search は X-Ray トレース設定で明示的に有効化しないと利用できないので、こちらは注意が必要です。

ts.png

個別のサービス (payment-service-dotnet) について聞くと、get_service_detailquery_service_metrics を利用して、状態をまとめてくれました!

mcp6.png

Application Signals の Error メトリクスや Latency メトリクスから情報を持ってきているようです。

appsig-error-latency.png

最後に

CloudWatch Application Signals MCP サーバーを試してみました。
生成 AI による運用負荷低減は、多くの人が望んでいる所ではないでしょうか。
今回は触ってみるだけに留まりましたが、より実践的なシナリオを作ってトラブルシューティングさせるといったことも試していこうと思います!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.