こんにちは。
Creageビジネス事業部の Ao です。

今回はAIエージェントであるClineとAWSのMCPを使ってCloudWatchのログ検索を実施してみたいと思います!

目次

1.    ClineとMCPってなに?
2.    Clineの導入
3.    MCPの導入
4.    Workflowを使ってみる
5.    まとめ

1. ClineとMCPってなに?

  • Clineとは?

Clineはエディタ内で動作するAIエージェントの一種です。
ファイルの読み書きはもちろん、コマンドの実行やブラウザを使用したテストなども実施できます。
Visual Studio Code(以降VS Codeと記載)やCursor、JetBrainsに導入可能です。

 

  • MCPとは?

MCP(Model Context Protocol)はLLMと外部ツールやデータソースを標準的に繋ぐためのプロトコルになります。
今回はAWSのリソースにアクセスしたいので、AWSが提供しているMCPをClineから利用します。

2. Clineの導入

今回はVS CodeにClineを導入します。
導入自体は拡張機能から「Cline」をインストールするだけになります。

正常にインストールできると拡張機能の一覧にClineのアイコンが追加されるはずです。
アイコンをクリックするとチャット画面が表示されるので、右上の歯車アイコンをクリックしましょう。
すると以下のようにAPI Provider等を設定する画面が表示されます。
私はAWSのサービスであるAmazon Bedrockを指定し、ModelにはClaude Sonnetを利用しています。

最低限、上記の設定が完了すればClineを利用開始できます。

3. MCPの導入

今回はClineからCloudWatchのログ検索を行いたいので、CloudWatch用のMCP(CloudWatch Logs MCP)を導入していきます。

 

  • uvのインストール

CloudWatch Logs MCPの導入の前提条件としてPythonのパッケージ管理ツールである「uv」をインストールする必要があります。
コマンドプロンプト等で以下のようにuvをインストールします。
※Pythonはインストール済みの想定です

> pip install uv

 

  • CloudWatch Logs MCPの導入

以下の流れでMCPを導入します。
1.    VS CodeのClineを開く
2.    MCPの設定画面を開く

3.    Marketplaceのタブで「cloudwatch logs」を検索し、インストールする

4.    installボタンを押下するとClineのプロンプトが自動で起動し、セットアップが進む。コマンド実行許可を求められるため適宜Approveする。

5.    Clineの各タスクが正常に終了したら、VS Codeを再起動する

VS Codeを再起動したら、 cline_mcp_settings.jsonを開き、以下を追記します。
jsonファイルは「~/AppData/Roaming/Code/User/globalStorage/saoudrizwan.claude-dev」配下に作成される想定です。
今回はconfigの中にCredentialをハードコーディングしていますが、Profileを指定して読み込ませる方法などもあります。
※「***」となっている箇所のCredentialを適宜置き換えて追記してください。

{

  "mcpServers": {

    "github.com/awslabs/mcp/tree/main/src/cloudwatch-logs-mcp-server": {

      "autoApprove": [],

      "disabled": false,

      "timeout": 60,

      "type": "stdio",

      "command": "uv",

      "args": [

        "tool",

        "run",

        "--from",

        "awslabs.cloudwatch-mcp-server@latest",

        "awslabs.cloudwatch-mcp-server.exe"

      ],

      "env": {

        "AWS_REGION": "us-east-1",

        "FASTMCP_LOG_LEVEL": "ERROR",

        "AWS_ACCESS_KEY_ID": "***",

        "AWS_SECRET_ACCESS_KEY": "***",

        "AWS_SESSION_TOKEN": "***"

      }

    }

  }

}

ファイルを保存したらCloudWatch Logs MCPサーバを再起動します。
Clineの対話プロンプトの下にあるサーバマークをクリックすると、MCPサーバの一覧が表示されるので、「CloudWatch Logs」の再起動マークを押下します。

MCPサーバの再起動が完了したら、Clineの対話プロンプトから動作確認してみましょう!
プロンプトに「CloudWatch Logs MCPを使ってロググループを検索したいです。ロググループの一覧を取得してください。」のように打ち込んで実行することで、ClineがAWSにアクセスし、CloudWatchのロググループ一覧を取得してくれます。
以下は実行結果の一例になります。
ロググループの作成日やログの保持期間、サイズなどをまとめて出してくれました。

ログ検索なども実行できるため、色々試してみましょう!

4. Workflowを使ってみる

次はClineのWorkflowを作っていきます。
3章のようにシンプルにClineのプロンプトからログ検索などを実施することも可能ですが、せっかくなのでログ検索用のWorkflowを作って動かしてみたいと思います!

 

  • Workflowとは?

作成の前に少しだけClineのWorkflowについて記載します。
Clineでは繰り返し実行するタスクや複雑な処理を伴うタスクのガイドラインのようなものを定義しておき、再利用できるようにする仕組みとしてWorkflowという機能が存在します。

 

  • Workflowの作成

ではWorkflowを作っていきましょう。
まずはVS CodeのClineの画面を開き、チャットの下の天秤のようなアイコンをクリックします。

すると以下のような画面が表示されるため、「Workflows」タブをクリックしましょう。
その後、任意のWorkflowの名前を入力し、+マークを押下します。
このWorkflowの名前はファイル名にもなります。

+マークを押下すると自動でWorkflowを記述するファイルがVS Code上で開かれます。
このWorkflowファイルにMarkdown形式でClineに処理させる内容を記述していきます。

今回は以下のように定義してみました。

# Check CloudWatch Logs Workflow

AWS CloudWatch Logsのロググループを検索するCline Workflowsです。

# 前提条件

  - CloudWatchの操作にはCloudWatch Logs MCPを利用する

# 実行手順

## 1. **対象のロググループを確認**

  - 検索対象のロググループを確認する

## 2. **ログを確認**

  - ロググループの内容を確認する

  - エラーがあれば概要を報告する

## 3. **エラーの対処方法を提案**

  - エラーがあった場合は内容を分析し、対処方法を提案する

ファイルを保存できたらWorkflowを実行してみましょう!

 

  • Workflowの実行

Workflowの実行にはClineのチャット画面で「/{Workflow名}」と入力します。
Workflowファイルの名前を「cloudwatch_workflow.md」にした場合は、「/ cloudwatch_workflow.md」で実行できます。

実行してみると、Workflowに定義した通り以下の流れで動いてくれました。
①    対象のロググループをヒアリング
②    ロググループの中身を確認
③    エラーに対する対処方法の提案

対象のロググループをヒアリングするフェーズでは、ロググループの数が多く最初の一覧には目的のロググループが出てこなかったため、対象のロググループをこちらから指定しました。

ロググループが見つかると、CloudWatch Logs MCPの機能でログの中身を見てくれます。

今回はLambdaのロググループを検索させています。
あえて以下のエラーログを仕込んだ状態で検索させたので、それぞれのエラー対処法を提示してくれるか試してみました。

エラーの内容
①    Lambdaの実行タイムアウト
②    DynamoDBへのアクセス権限不足

 

以下、Clineの回答になります。

 

  • サマリ
  • エラー内容①について
  • エラー内容②について

上記の通り、ちゃんと仕込んだエラーを解析して対処法も提示してくれました。
(今回は簡単なエラーである点に注意が必要です。)

 

また、Clineの回答に疑問があれば、通常のClineとのやりとりのようにプロンプトに投げかければ会話を継続できます。

5. まとめ

今回はCline×CloudWatch Logs MCPを触ってみましたが、思いのほか簡単かつ直感的に操作できるので使い勝手はそれなりに良いなと感じました。
本記事では例として簡単な操作しか試しませんでしたが、あらかじめトラブルシューティング用のWorkflowを定義しておくなどすれば、運用時のエラー対応の初動対応などに使えるのではないか?など色々と用途が思い浮かびます。
また、CloudWatch用のMCP以外にも様々なMCPが存在するため、皆さんもご自身の用途に応じて触ってみてはいかがでしょうか?

 

最後までお読みいただきありがとうございました!