AWS Documentation MCP Serverを使ってみた

に公開

はじめに

Fusicのレオナです。AWSが公開しているOSSの一部として「AWS MCP Servers」があります。このリポジトリでは、AWSの開発ワークフローに沿ったベストプラクティスを直接取り入れるために設計された、専用のMCP(Model Context Protocol)サーバー群が紹介されています。これらのMCPサーバーは、AWSドキュメントの検索、CDKにおけるベストプラクティスの実装、コスト分析、画像生成など、さまざまなタスクに対応します。

今回は、AWS公式ドキュメントの検索が可能な AWS Documentation MCP Server を使ってみます。

https://github.com/awslabs/mcp/tree/main/src/aws-documentation-mcp-server
(2025年4月14日時点の情報になります。)

MCP: Model Context Protocol とは

Anthropicが公開したIntroducing the Model Context Protocolから引用すると、MCPは複数のシステムに散在するデータを統一的に管理するためのオープンスタンダードです。コンテンツリポジトリ、業務用ツール、開発環境など、さまざまなデータソース間で、安全かつ効率的に情報をやりとりする手法となります。

MCPのGeneral architectureについて

  • Host:
    • Claude Desktop や VS Code, Cursor,Windsurf,ClineなどのLLMを搭載した全体のアプリケーションを指す
  • MCP Client:
    • サーバーと1:1の接続部分であり、サーバーとの通信を維持するクライアント
  • MCP Server:
    • 標準化されたModel Context Protocolを通じて特定の機能を提供するプログラム
  • Local Data Sources:
    • MCP サーバーが安全にアクセスできるローカルのファイルやサービス
  • Remote Services
    • MCPサーバーが接続できる、インターネット上で利用可能な外部システム(例:API経由でアクセスできるものなど)

https://modelcontextprotocol.io/introduction#general-architectureより

今回のAWS Documentation MCP Serverは、この仕組みの中で Remote Servicesに該当します。

AWS Documentation MCP Serverの概要

AWS Documentation MCP ServerはAPIを介して、AWSの公式ドキュメントに直接アクセスし、最新の情報を検索・提供することができます。

主な機能

  • ドキュメント読み取り:
    • AWSドキュメントページを取得してマークダウン形式に変換
  • ドキュメント検索:
    • AWS公式の検索APIを使用してドキュメントを検索する
  • レコメンデーション:
    • おすすめされたAWSドキュメントページの関連コンテンツを取得する

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

導入

今回は、Macの環境になります。MCP HostはClaude Desktopを使用しました。また、AWS Documentation MCP Serverでは、Pythonパッケージ兼プロジェクト管理ツールであるuvを利用します。詳細は、公式ページを参照してください。

  1. ターミナルでbrew install uvでuvをインストール

  2. ターミナルでuv python install 3.10でPython 3.10版をインストール

  3. Claude Desktopを開き、メニューバーのClaude -> 設定を開いてください

  4. 左サイドバーから開発者 -> 構成を編集をクリック

  5. claude_desktop_config.jsonがフォルダにあるのでクリック

  6. 以下のconfigを開いたclaude_desktop_config.jsonにコピペする

       {
          "mcpServers": {
            "awslabs.aws-documentation-mcp-server": {
                "command": "uvx",
                "args": ["awslabs.aws-documentation-mcp-server@latest"],
                "env": {
                  "FASTMCP_LOG_LEVEL": "ERROR"
                },
                "disabled": false,
                "autoApprove": []
            }
          }
        }
    
  7. Claude Desktopを再起動し、画像の赤枠のアイコンが追加されていたら完了です

実際に使ってみる

  • 質問:

Amazon Bedrock RAG Evaluationの機能について教えてください

  • 回答:
Amazon Bedrock RAG (Retrieval-Augmented Generation) Evaluationの機能について説明します。

Amazon Bedrock RAG Evaluationは、RAGシステムの品質を評価し、改善するための機能です。この機能を使用することで、データ検索の正確性や生成されたレスポンスの品質を評価できます。

主な機能:

1. 自動評価メトリクス - 関連性、正確性、有用性などの側面でRAGシステムを評価
2. カスタム評価指標の設定 - 特定のユースケースに合わせて評価基準をカスタマイズ可能
3. バッチ評価 - 複数のクエリやデータセットに対して一括で評価を実行
4. 詳細な分析レポート - パフォーマンスの問題点や改善が必要な領域を特定

より詳細な情報を得るために、AWS公式ドキュメントを確認してみましょう。

最も関連性の高いドキュメントを読み、詳細情報を取得しましょう。

以上のAWS公式ドキュメントから、Amazon Bedrock RAG Evaluationの機能についてまとめます:

## Amazon Bedrock RAG Evaluation の概要

Amazon Bedrock RAG Evaluationは、Retrieval Augmented Generation (RAG) システムの評価を行い、そのパフォーマンスを測定するためのAWSのサービスです。これにより、知識ベースの検索能力と応答生成の品質を評価することができます。

## 評価タイプ

RAG Evaluationでは、主に2種類の評価を行うことができます:

1. **検索のみ(Retrieve only)** - 知識ベースからの情報検索能力のみを評価します。Amazon Bedrock Knowledge Baseまたは外部のRAGソースからの推論応答データを評価できます。

2. **検索と生成(Retrieve and generate)** - 知識ベースからの情報検索と、それに基づいて生成されたレスポンスの両方を評価します。Amazon Bedrock Knowledge Baseと評価モデルを使用するか、外部RAGソースからの推論応答データを評価できます。

## 主な評価指標

### 検索のみの評価に関連する指標:

- **コンテキスト関連性(Context relevance)** - 検索されたテキストチャンクが質問のコンテキストにどれだけ関連しているかを測定します。スコアが高いほど、情報の関連性が高いことを示します。

- **コンテキストカバレッジ(Context coverage)** - 検索されたテキストチャンクが、正解(ground truth)に含まれるすべての情報をどれだけカバーしているかを測定します。この指標には正解データが必要です。

### 検索と生成の評価に関連する指標:

- **正確性(Correctness)** - 生成された回答が質問に対して正確であるかどうかを測定します。

- **完全性(Completeness)** - 生成された回答が質問のすべての側面に対応しているかどうかを測定します。

- **有用性(Helpfulness)** - 生成された回答が全体的に質問に対して役立つかどうかを測定します。

- **論理的一貫性(Logical coherence)** - 回答に論理的なギャップ、矛盾がないかを測定します。

- **忠実性(Faithfulness)** - 検索されたテキストチャンクに基づいて、幻覚(hallucination)を避けているかを測定します。

- **引用精度(Citation precision)** - 引用されたパッセージが正確に引用されているかを測定します。

- **引用カバレッジ(Citation coverage)** - 回答がどれだけ引用によってサポートされているかを測定します。

- **有害性(Harmfulness)** - 回答に憎しみ、侮辱、暴力的な表現が含まれているかを測定します。

- **ステレオタイプ(Stereotyping)** - 個人やグループに対する一般化された発言が含まれているかを測定します。

- **拒否(Refusal)** - 質問に対して回避的な回答をしているかを測定します。

## 評価ジョブの作成方法

評価ジョブを作成するには、以下の手順が必要です:

1. **プロンプトデータセットの作成** - 評価に使用するプロンプトデータセットを作成し、Amazon S3に保存します。JSONLフォーマットを使用し、最大1000個のプロンプトを含めることができます。

2. **評価ジョブの設定** - AWSコンソールまたはAWS CLIを使用して、評価ジョブを設定します。

3. **評価モデルの選択** - メトリクスを計算するための評価モデルを選択します。

4. **出力場所の指定** - 評価結果を保存するS3バケットを指定します。

## 評価結果の確認

評価結果はAmazon Bedrockコンソールまたは指定したS3バケットで確認できます。結果には、各メトリクスの平均スコア(0〜1の値)とその分布を示すヒストグラムが含まれます。スコアが1に近いほど、そのメトリクスの特性が検索されたテキストや生成された回答に現れていることを示します。

これらの評価結果を活用することで、異なるAmazon Bedrock Knowledge Basesや他のRAGソースを比較し、アプリケーションに最適なRAGシステムを選択することができます。

回答生成されている途中に画像のような表示になりますが、このチャットで許可するか一度だけ許可を選択してください。

https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-eval-retrieve.htmlhttps://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-eval-retrieve-generate.htmlに書かれている情報が正しく生成されていました。

最後に

Claude 3.7 Sonent自体は2024年10月までのデータを基に学習しており、最新情報は含まれていません。しかし、AWS Documentation MCP Serverの仕組みを利用することでhttps://aws.amazon.com/jp/about-aws/whats-new/2024/12/amazon-bedrock-knowledge-bases-rag-evaluation-preview/で発表されたAmazon Bedrock RAG Evaluationの機能に関して最新かつ正確な情報を取得、回答することができました。

またRAGにおける検索(retrieval)部分が置き換わる技術だと思いました。MCPでファイル検索を行った後、LLMによる回答が行えると考えます。

Fusic 技術ブログ

Discussion