
AWS Documentation MCP Server の各ツールを検証してみた
はじめに
AWS が公開したMCP Serverが話題となっています。
AWSのドキュメントを調べることがよくある身としては活用して行きたいと思って、AWS Documentation MCP Serverの各ツールの動作を検証してみました。
AWS Documentation MCP Server とは
AWS のドキュメントとベストプラクティスにアクセスするためのサーバーです。
AWS Documentation MCP Serverのserver.pyには、以下のような記載がありました。(機械翻訳)
このサーバーは、公開されている AWS ドキュメントへのアクセス、コンテンツの検索、および推奨事項の取得のためのツールを提供します。
ベストプラクティス
長いドキュメントページの場合、start_index の値を変更して複数回 read_documentation を呼び出し、ページネーションを行います。
非常に長いドキュメント(30,000 文字以上)の場合、必要な情報が見つかった時点で読み取りを停止します。検索時には、一般的なフレーズではなく、具体的な技術用語を使用します。
検索結果に表示されない関連コンテンツを見つけるために、recommend ツールを使用します。サービスの最新の更新情報を取得するには、そのサービス内の任意のページの URL を取得し、その URL に対する recommend ツールの出力の New セクションを確認します。
類似の用語で複数回検索しても十分な結果が得られない場合、recommend を使用して関連ページを見つけるように切り替えます。
ユーザーに情報を提供する際は、常にドキュメントの URL を引用します。
AWS Documentation MCP Server を構成するツール
- search_documentation を使用する場合:特定の AWS サービスや機能に関するドキュメントを見つける必要があるとき
- read_documentation を使用する場合:特定のドキュメントの URL があり、その内容が必要なとき
- recommend を使用する場合:閲覧中のドキュメントページに関連するコンテンツを見つけたい、または新しくリリースされた情報を探したいとき
- recommend をフォールバックとして使用する場合:複数回の検索で特定の情報が得られなかったとき
AWS Documentation MCP Serverの各ツールの動作を実際の動きを調べてみた
Claude for desktopを使って、AWS Documentation MCP Serverを利用しました。
今回は以下ようなプロンプト入力して、AWS Documentation MCP Server のツールの動きを見てみようと思います。
search_documentationとread_documentation を使ってみる
search_documentation はAWSドキュメントの検索APIを利用して、検索するツールです。
プロンプトで以下のように入力してみます。
S3バケットを作成する際の考慮事項、推奨事項、関連事項を教えてください。
search_documentation のツールを使って、以下のように検索しています。
プロンプトに入力した日本語を生成AIが英語のキーワードの変換して、検索しているように見えます。
{
`limit`: 5,
`search_phrase`: `S3 bucket creation considerations best practices`
}
検索結果は以下のように"rank_order"、"url","title"、"context" を返していました。
{"rank_order": 1,
"url": "https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html",
"title": "Security best practices for Amazon S3 - Amazon Simple Storage Service",
"context": "Learn about guidelines and best practices for addressing security issues in Amazon S3."}
検索でヒットした上位5件を取得しているようで、タイトルは以下でした。
- Security best practices for Amazon S3 - Amazon Simple Storage Service
- Lake Formation best practices, considerations, and limitations - AWS Lake Formation
- Best practices design patterns: optimizing Amazon S3 performance - Amazon Simple Storage Service
- Creating a general purpose bucket - Amazon Simple Storage Service
- Security best practices for directory buckets - Amazon Simple Storage Service
https://docs.aws.amazon.com/ の検索ボックスを用いて、同じ検索キーワードを検索した際とほぼ同じ結果が返ってきています。
検索結果の"context" はタイトル下部にある説明ドキュメントと同一の内容でした。
検索結果で関連がありそうな記事のURLを"read_documentation"で記事の内容を5000文字ずつ読んでいます。
今回は、4番目の"Creating a general purpose bucket" を読んでいるので、一番上から手当たり次第に読んでいる感じではなさそうでした。
出力はマークダウンとなっており、5000文字ずつ読んで関連性の出てきるテキストが出てくるまで、5000文字ずつ読み進めてそうな動きをしていました。
read_documentation のリクエスト
{
`url`: `https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html`,
`max_length`: 5000
}
出力結果のイメージは以下の通り。(冒頭の部分のみ)
AWS Documentation from https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html:
# Creating a general purpose bucket
To upload your data to Amazon S3, you must first create an Amazon S3 general purpose bucket in one of the AWS Regions. The
AWS account that creates the bucket owns it. When you create a bucket, you must choose a bucket name and
Region. During the creation process, you can optionally choose other storage management options for the
bucket.
検索結果の5件から関連性のありそうなものを繰り返しよんでいるような動きをしていて、
今回は、"Security best practices for directory buckets" と"Best practices design patterns: optimizing Amazon S3 performance"も読んでいました。
search_documentation の検索結果にはありませんでしたが、"Performance guidelines for Amazon S3" も読んでいました。
仕様は分かりませんが、"Best practices design patterns: optimizing Amazon S3 performance"のドキュメントにURLがあったため、そちらを参照して読んでいるものと考えられます。
最終的に、以下のような回答が出てきました。
以下は出力の冒頭のテキストです。
S3バケット作成の考慮事項と推奨事項
S3バケットは、AWSクラウド上でデータを保存するための基本的なコンテナです。バケットを作成する際には、以下の点を考慮し、ベストプラクティスに従うことで、安全で効率的なストレージ環境を構築できます。
基本的な考慮事項
1. バケット命名規則
バケット名は3〜63文字の間でなければなりません
小文字、数字、ハイフン(-)、ピリオド(.)のみ使用可能
文字または数字で始まり、文字または数字で終わる必要があります
read_documentation を使ってみる。
read_documentationは指定のURLのAWSドキュメントを5000文字ずつ読んでくれるツールです。
URLを指定して、指示を出すと起動するようです。
以下のようなプロンプトを入力します。
以下記事を読んで、要約してください
上記URLの全て読んで(5000文字読む、途中で終わったら次の5000文字読むを繰り返します)、2つまとめて要約してくれます。
リクエストは以下の通りです。
1回目
{
`url`: `https://docs.aws.amazon.com/lambda/latest/dg/services-sqs-errorhandling.html`
}
2回目
{
`url`: `https://docs.aws.amazon.com/lambda/latest/dg/services-sqs-errorhandling.html`,
`start_index`: 5000
}
※完了するまで繰り返してます。
※レスポンスは省略します。
2つのドキュメントの内容をまとめて要約します。
Lambda SQSイベントソースのエラー処理に関する要約
1. エラー処理の基本メカニズム
バックオフ戦略
関数コードのエラー: Lambdaはイベントソースマッピングの同時実行数を段階的に減らし、処理を停止します。キューの可視性タイムアウト後にメッセージが再び利用可能になります。
スロットリング (制限) によるエラー: Lambdaは同時実行数を段階的に減らしながら再試行を続けます。メッセージがキューの可視性タイムアウトを超えると、そのメッセージは削除されます。
recommend を使ってみる
recomedは指定のURLのAWSドキュメントの関連記事一覧を出してくれるツールです。
プロンプトで以下のように入力してみます。
以下の関連ページを教えてください
https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html
リクエストは以下の通りとなります。
{
`url`: `https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html`
}
レスポンスは以下のような結果が並びます。今回は116件ありました。
"url"、"title"、"context"が出力されていて、以下のようなレスポンスが116件あります。
{"url": "https://docs.aws.amazon.com/lambda/latest/dg/welcome.html", "title": "What is AWS Lambda?", "context": "AWS Lambda enables running code without provisioning servers, automatically scaling, processing real-time streaming data, building serverless backends, creating container images, packaging dependencies, and configuring private networks."}
レスポンスの結果の一部のタイトルは以下の通り
What is AWS Lambda?
Lambda runtimes
Working with Lambda environment variables
Define Lambda function handler in Python
Define Lambda function handler in Node.js
Lambda quotas
プロンプトで入力した、URLのページの下部のDiscover highly rated pagesが出力されているように見えました。
※Discover highly rated pages は日本語では表示されず、英語のページだと表示されました。
search_documentationのツールを使用したときはその後、read_documentationが動きましたが、recommendの時はread_documentationが動きませんでした。
最終的な出力は以下のようなイメージです。(冒頭だけを添付しています。)
お探しのページに関連する情報として、以下の関連ドキュメントがあります。特に重要なものをいくつかピックアップしてご紹介します:
Lambda と Amazon SQS に関する主要な関連ページ
チュートリアル: Lambda と Amazon SQS の使用
URL: https://docs.aws.amazon.com/lambda/latest/dg/with-sqs-example.html
Lambda と SQS を一緒に使用する方法の詳細なチュートリアル
SQS イベントソースのエラー処理
URL: https://docs.aws.amazon.com/lambda/latest/dg/services-sqs-errorhandling.html
Lambda における SQS イベントソースのエラー処理方法
バッチ項目失敗のレポート
URL: https://docs.aws.amazon.com/lambda/latest/dg/example_serverless_SQS_Lambda_batch_item_failures_section.html
Amazon SQS トリガーを持つ Lambda 関数のバッチ項目失敗のレポート方法
まとめ
AWS Documentation MCP Server を通して、MCPサーバーについてちょっと詳しくなれた気がしました。
AWS Documentation MCP Serverはぼんやりとしたものを検索する時はもちろんのこと、ドキュメントの要約や関連記事の探索にも有用ということがわかりました。