[新機能] Amazon S3 Tables MCP (Model Context Protocol) Server をClaude Codeで試してみた!

[新機能] Amazon S3 Tables MCP (Model Context Protocol) Server をClaude Codeで試してみた!

Clock Icon2025.07.16

クラウド事業本部コンサルティング部の石川です。AWSが新たに発表した Amazon S3 Tables MCP Server は、AIとストレージを連携させる新しいアプローチとして注目されています。S3 Tables上の構造化データやそのメタデータに対し、対話的AIエージェントがアクセスしてデータ活用を支援できます。本日は、この新機能をClaude code から試してみます!

https://aws.amazon.com/jp/about-aws/whats-new/2025/07/amazon-s3-tables-mcp-server/

Amazon S3 Tables MCP Serverの機能

Amazon S3 Tables MCP Serverは、Amazon S3上の「S3 Tables」に保存されたデータへ、AIモデルやAIアプリケーションが標準プロトコル(Model Context Protocol:MCP)を介してアクセスできるAPIサーバーです。 これにより、AIエージェントが自然言語による問い合わせでテーブルデータの検索・集計・分析できます。

この機能の特長

  • 標準プロトコル(MCP)対応
    Model Context Protocolに準拠し、各種AIエージェントやチャットボットへ簡単に組み込み可能。

  • 生成AI開発者ツール連携

    Claude Code、Gemini CLI、Amazon Q Developerをはじめとする AIコーディングアシスタントとの連携。

  • S3 Tables連携
    Amazon S3に構造化データを安全かつ柔軟に保存しながら、AIから検索・取得が可能。

この機能の仕組み

Amazon S3 Tablesは、クエリエンジンを持たないフルマネージドのApache Icebergストレージサービスです。Amazon S3 Tables MCP Serverでクエリが実行できるのは、サーバーに搭載されたツールが分散クエリエンジンDaft を使用しているためです。DaftはPyIcebergとネイティブに統合されており、AIアシスタントはこれを利用してS3 Tables内のマネージドIcebergテーブルを読み書きができます。

  • MCPサーバー
    Amazon S3 Tables MCP Serverは、Model Context Protocol(MCP)のAPIサーバー実装として動作します。AIエージェントはMCP経由で、S3 Tablesの「テーブル構造のメタデータ取得」「クエリ実行」「結果取得」などのツールコール(API)にアクセス。
  • 対話AI連携
    Claude CodeなどのAIシステムは、MCPサーバーに自然言語の問い合わせを投げることで、裏側ではSQLライクなクエリが自動生成・実行され、結果が自然言語で返されます。
  • 認証・認可
    OAuthなどの認証フローを組み込み、担保されたアクセス管理が可能です。

設定方法

Amazon S3 Tables MCP Server の README.md の中では、Amazon Q Developerの設定を例に解説していますが、今回は、Claude codeにこのMCPを設定する方法について解説します。

https://github.com/awslabs/mcp/tree/main/src/s3-tables-mcp-server

前提条件の準備

  • Pythonのバージョン3.10以降のインストール

  • uvのインストール(参考: Astral or the GitHub README

    • macOS 又は Linux の場合

      curl -LsSf https://astral.sh/uv/install.sh | sh
      
    • Windows の場合

      powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
      
  • S3 Bucket、S3 Namespaces、S3 Tablesを事前に作成

  • AWSの認証用のAWSのアクセスキー又はAWSプロファイルなどを用意

    • LambdaやECSなどで動作させる場合は、IAMロールを用意

MCP Serverの設定

Claude CodeにMCPサーバーを追加するには、通常 claude mcp add コマンドを使いますが、設定ファイル (.claude.json) に直接「参照専用」または「読み書き用」の設定を追記しました。

今回はグローバル設定(すべてのプロジェクトに適用)とするため、ホームディレクトリにある .claude.json ファイルに設定を追記し、動作確認を行いました。

設定サンプル内のenvキーでは、AWSの環境変数を以下のように指定しています。

  • "AWS_REGION": "us-east-1"
    • リージョンを指定します。 サンプルではバージニア北部 (us-east-1) になっていますが、ご自身のS3 Tablesバケットが存在するリージョン名に書き換えてください。
  • "AWS_PROFILE": "cm-claudecode"
    • AWSの認証情報を指定します。 サンプルではcm-claudecodeという名前のAWSプロファイルを使用しています。IAMロールなどで認証情報が自動的に渡される環境の場合、この設定は不要です。
    "env": {
      "AWS_PROFILE": "cm-claudecode",
      "AWS_REGION": "us-east-1"
    }

参照専用

既存の設定に影響を与えることなく機能を試したい場合は、「参照専用」の設定をお使いいただくのが安全です。特に、初めてこのツールを利用する方におすすめします。

:
"mcpServers": {
  "s3tables": {
    "type": "stdio",
    "command": "uvx",
    "args": [
      "awslabs.s3-tables-mcp-server@latest"
    ],
    "env": {
      "AWS_PROFILE": "cm-claudecode",
      "AWS_REGION": "us-east-1"
    }
  },
  :
}
:

読み書き用(--allow-writeの追加)

データやメタデータに対して変更したい場合は、「読み書き用」の設定をお使いください。

:
"mcpServers": {
  "s3tables": {
    "type": "stdio",
    "command": "uvx",
    "args": [
      "awslabs.s3-tables-mcp-server@latest","--allow-write"
    ],
    "env": {
      "AWS_PROFILE": "cm-claudecode",
      "AWS_REGION": "us-east-1"
    }
  },
  :
}
:

補足: MCPサーバーのログ出力(--log-dirの追加)

サーバーがログファイルを書き込むディレクトリを指定します。指定しない場合、デフォルトのログディレクトリはオペレーティングシステムによって異なります。

  • macOS :~/Library/Logs
  • Windows:~/AppData/Local/Logs
  • Linux/その他:~/.local/share/s3-tables-mcp-server/logs/

参照専用の設定にMCPサーバーのログ出力オプションを追加すると以下のようになります。

:
"mcpServers": {
  "s3tables": {
    "type": "stdio",
    "command": "uvx",
    "args": [
      "awslabs.s3-tables-mcp-server@latest","--log-dir","/tmp/s3-tables-logs"
    ],
    "env": {
      "AWS_PROFILE": "cm-claudecode",
      "AWS_REGION": "us-east-1"
    }
  },
  :
}
:

動作確認

Claude Codeのスラッシュコマンド/mcpでMCPのサーバーの状態を確認します。

amazon-s3-tables-mcp-server-1

すると、s3tablesが追加されているのが確認できます。

amazon-s3-tables-mcp-server-2

Amazon S3 Tables MCP Serverは、16のツールがあることが確認できます。

amazon-s3-tables-mcp-server-3

Amazon S3 Tables MCP Serverは、以下のツールがあることが確認できます。

  1. list_table_buckets
  2. list_namespaces
  3. list_tables
  4. create_table_bucket
  5. create_namespace
  6. create_table
  7. get_table_maintenance_config
  8. get_maintenance_job_status
  9. get_table_metadata_location
  10. rename_table
  11. update_table_metadata_location
  12. query_database
  13. preview_csv_file
  14. import_csv_to_table
  15. get_bucket_metadata_config
  16. append_rows_to_table

amazon-s3-tables-mcp-server-4

例えば、「1. list_table_buckets」を選択して、Enterを押すと詳細が確認できます。

amazon-s3-tables-mcp-server-6

自然言語で問い合わせしてみる!

読み書き用ができるMCPサーバーの設定を用いて、自然言語で問い合わせします。特にこのMCPサーバーを利用するようにプロンプトに含めていません。

S3 Tables のメタデータをクエリする

S3 Tables のメタデータをクエリして、S3 Tables bucket内のS3 Namespaces、S3 Tablesを再帰的に探してレポート出力させて。

プロンプト

cm-sample テーブルバケットに関する利用可能なすべてのメタデータをクエリする

出力結果

特にこのMCPサーバーを利用するようにプロンプトに含めていませんが、Todosが作成され、Tool use でMCPサーバーが使われるようにプランされています。

amazon-s3-tables-mcp-server-7

Todosに基づき、再帰的にS3 Tables bucket内の情報収集します。

amazon-s3-tables-mcp-server-8

Todosがすべて終わると、日本語でレポート出力されました。

amazon-s3-tables-mcp-server-9

S3 Tables 上のテーブルのデータに自然言語で問合せ

データについて自然言語で問合せ、いわゆる Text-to-SQLNL-to-SQL)を試してみました。

プロンプト

sales テーブルで支出額上位3人の顧客を見つける

出力結果

最初にプロンプトに指定したsales テーブルでクエリを生成・実行した後、sales テーブルとuserテーブルを結合したSQLを生成して、レポート出力しています。

amazon-s3-tables-mcp-server-10

S3 Tables Bucketを作成させる

S3 Tables Bucketを作成する、つまり自然言語でS3 Tables のAPIを実行させます。

プロンプト

cm-sample に関する利用可能なすべてのメタデータをクエリする

出力結果

数秒で作成が完了しました。

amazon-s3-tables-mcp-server-11

マネジメントコンソールからも作成できたことが確認できます。

amazon-s3-tables-mcp-server-12

最後に

Amazon S3 Tables MCP Serverは、S3に蓄積されたテーブル形式のデータを、生成AIや対話型インターフェースから直接活用できるという点で、AIとデータ基盤の連携を大きく前進させる技術です。これまで煩雑だったクエリ設計やインフラ構築を抽象化し、自然言語による直感的な分析を可能にすることで、開発者や業務ユーザーの負担軽減と生産性向上を支援します。S3 Tablesの活用を考えている方はもちろん、AIとデータ統合の最前線に関心のあるすべての方にとって、この新機能は注目に値するでしょう。今回の検証が、皆さんのデータ利活用プロジェクトの一助となれば幸いです。

合わせて読みたい

https://aws.amazon.com/jp/blogs/storage/implementing-conversational-ai-for-s3-tables-using-model-context-protocol-mcp/

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.