AWS MCPを使って公式ドキュメントからClaudeに回答してもらう

## はじめに

awslabs の GitHub で [awslabs/mcp](https://github.com/awslabs/mcp) が公開されました。

この中で **AWS Documentation MCP Server** が提供されていました。これを使えば、Cursor や Claude Desktop などのMCPクライアントから LLM が AWS の公式ドキュメントを探してきて、その情報を元に回答してくれそうです。実際に試してみた内容を共有します。

> A server for accessing AWS documentation and best practices.
> - Search Documentation using the official AWS search API
> - Get content recommendations for AWS documentation pages
> - Convert documentation to markdown format
（ドキュメントから引用）

以下の公式ドキュメントに従い設定します。

https://awslabs.github.io/mcp/servers/aws-documentation-mcp-server/

## 前提

#### 環境

- Mac OS 14.5
- Claude Desktop (Claude 3.7 Sonnet)

:::note info
VS Code 版の記事も作成しました。
https://qiita.com/ny7760/items/137dec44d7fb188defea
:::


#### 準備

[awslabs/mcp](https://github.com/awslabs/mcp) はPythonで書かれており、公式の手順ではパッケージマネージャーの `uv` が必要になります。

- `uv` のインストール（[Astral公式ドキュメント](https://docs.astral.sh/uv/getting-started/installation/)または[GitHub](https://github.com/astral-sh/uv#installation)参照）
- Python 3.10 以上 （公式では `uv python install` が推奨されてますが asdf のPythonでも動きました）

:::note warn
最新版は[公式ドキュメント](https://awslabs.github.io/mcp/servers/aws-documentation-mcp-server/)を参照してください。
:::

## 設定方法

[1] Claude Desktop の「設定＞開発者」から「構成を編集」


<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451175/5a4f8fc1-9c91-4d33-8e5e-ce605c18d2b5.png" width=70%>

[2] `claude_desktop_config.json` に以下を記載して保存

```json
{
  "mcpServers": {
    "awslabs.aws-documentation-mcp-server": {
        "command": "/Users/{username}/.local/bin/uvx",
        "args": ["awslabs.aws-documentation-mcp-server@latest"],
        "env": {
          "FASTMCP_LOG_LEVEL": "ERROR"
        },
        "disabled": false,
        "autoApprove": []
    }
  }
}
```

:::note info
`command` は `uvx` へのフルパスを設定しています。
公式では`uvx`のみですが、Claude Desktopでパスが通らないこともあるためです。
:::

[3] Claude Desktopを再起動する

再起動後、図のようにアイコンが表示されていれば正しく設定されています。
クリックすると利用できるツールが表示されます。例として`read_documentation` は AWS Documentation MCP Server から提供されているツールです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451175/e50d102d-ad31-4160-92f5-93d209250e35.png" width=50%>

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451175/b587ff62-ff10-4d5a-8796-2c02de98641b.png" width=70%>

設定は以上になります。

## 使ってみる

Claude 3.7 Sonnetが東京リージョンで使えるか聞いてみます。2025/4/4 時点では利用不可です。

聞いてみると以下のようにMCPサーバーが提供するツールを使って調べ始めます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451175/2e2c854f-0257-479d-b651-9ac6dc241c38.png" width=80%>

ツールを使う際には以下のようなユーザーへの確認が行われます。JSONの設定で`autoApprove`を設定することも可能なようです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451175/c4b59dde-4e99-4ec3-8e85-1f00aa2d272b.png" width=70%>

最終的には以下のように正しい回答を出してくれました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451175/8e34e937-6363-4f33-98a7-e1cc79b82e71.png" width=80%>

途中、クロスリージョン推論のことも調べ出したので少し時間がかかりましたが、公式ドキュメントをもとにした回答は安心感があります。

## 何が嬉しいのか

### RAGとの違い
この例だけを見ると、RAGと同じように思われる方もいるかもしれません。

一般的なRAGの仕組みでは、検索モデルと対象のドキュメントを用意して、LLMに情報を与えて回答してもらう必要があります。そのため、検索精度によっては正しい情報を取得できず、LLMの回答が正しくない、あるいは回答するのに十分な情報が集まらず判断できないということもありました。
また、ドキュメントを用意するにも、スクレイピングなどのデータ整備が必要でした。

今回の方法では、MCPクライアントのLLMが、エージェントとして自律的に必要な情報をドキュメントから集めてきて、回答を生成してくれます。そのため、ユーザーからの質問に一度の問いで回答してくれる確率が高まります。また、複雑な問いに対してもエージェントによる思考プロセスが挟まるので、RAGよりも正しい回答が期待できそうです。

### コスト

Claude Desktopは従量課金ではなく定額で利用できるのも嬉しいポイントです。
VSCode Insider も GitHub Copilot を使えば同様の恩恵が受けられそうです。

## 終わりに

簡単ですが、AWS MCPを使った方法をご紹介しました。
AWSの公式ドキュメントに触れる機会が多い方はぜひ試してみてください。

また、AWS MCPからは他にも複数のMCPサーバーが提供されていますので、興味がある方はそちらも試してみてください。