AWS DynamoDB MCP Serverを試してみた

AWS DynamoDB MCP Serverを試してみた

Clock Icon2025.05.19

お疲れさまです。とーちです。

AWS MCP ServersにAWS DynamoDB MCP Server というものがあったので試してみました。

https://awslabs.github.io/mcp/servers/dynamodb-mcp-server/

AWS DynamoDB MCP Serverとは

名前から想像できる通り、MCPサーバを介してDynamoDBの操作ができるものとなっています。

詳細はこちらをご確認いただければと思いますが、概要としては以下のような機能をもっています。

主な機能

  • Table Operations:DynamoDB テーブルの新規作成・スループット等の設定更新・削除・テーブル情報の表示など
  • Item Operations:テーブル上のアイテムの新規作成・更新・削除・参照をすることができる
  • Query and Scan Operations:キー指定でアイテムを参照するqueryと全件取得のscanを実行できる
  • Backup and Recovery:テーブルのバックアップ作成・参照やバックアップから新しいテーブルの作成ができる
  • Export Operations:DynamoDBからS3へのエクスポートジョブの参照ができる

上記の通り、DynamoDBに関するほとんどの操作が可能となっていると言ってよいのではと思います。

なお、Export Operationsについては参照のみでエクスポートジョブの作成には対応していないようです。

それでは実際に使ってみましょう。

AWS DynamoDB MCP Serverの設定

なんとなくDockerでMCP Serverを実行してみたかったので今回はDockerでやってみます。

こちらのインストール手順だけ見ると分かりづらいのですが、以下のREADMEにはやり方が分かりやすく書いてあります。

https://github.com/awslabs/mcp?tab=readme-ov-file#running-mcp-servers-in-containers

まずはDockerコンテナをビルドしておく必要があるので以下のコマンドを実行します。git cloneで awslabs/mcpのリポジトリをクローンするところから行う必要があります。

> git clone git@github.com:awslabs/mcp.git
> cd mcp/src/dynamodb-mcp-server/
> ls
awslabs/               docker-healthcheck.sh* LICENSE                pyproject.toml         tests/
CHANGELOG.md           Dockerfile             NOTICE                 README.md              uv.lock
> docker build -t awslabs/dynamodb-mcp-server .

# 正常にビルドできたことを確認
> docker images
REPOSITORY                                                        TAG       IMAGE ID       CREATED          SIZE
awslabs/dynamodb-mcp-server                                       latest    2f49580f8f41   14 minutes ago   1.9GB

1.9GBとなかなかの容量のコンテナですね。

ビルドが出来たらMCPクライアント(この記事ではClineを使ってます)でMCPサーバ設定ファイルを編集します。

以下のように追加しました。

{
  "mcpServers": {
    "awslabs.dynamodb-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "--interactive",
        "--env",
        "FASTMCP_LOG_LEVEL=ERROR",
        "--env",
        "AWS_REGION=ap-northeast-1",
        "--env",
        "AWS_DEFAULT_PROFILE=<プロファイル名>",
        "--volume",
        "/full/path/to/.aws:/app/.aws",
        "awslabs/dynamodb-mcp-server:latest"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  }
}

Docker上で実行するので、AWS認証情報の渡し方に少し工夫が必要です。色々方法はありますが、今回はローカルにある認証情報ファイルが格納されたディレクトリ($HOME/.aws)をコンテナにボリュームマウントする方法で行いました。

上記の設定ファイルの --volume で指定している部分がそれにあたります。/full/path/to となっている部分はご自身のホームディレクトリのパスに変更してください。

また AWS_DEFAULT_PROFILE 環境変数を使用することで、$HOME/.aws/config に書かれた中のどのプロファイルを使用するかを指定しています。

なお、使用したプロファイルで指定されているIAMロールには AmazonDynamoDBFullAccess のAWS管理ポリシーを付与しました。

この状態で、MCPサーバ設定を更新すると以下のようにDockerコンテナが起動されていることが確認できます。

> docker ps
CONTAINER ID   IMAGE                                COMMAND                  CREATED             STATUS                       PORTS     NAMES
1ee493b87366   awslabs/dynamodb-mcp-server:latest   "awslabs.dynamodb-mc…"   About an hour ago   Up 59 minutes (healthy)                xenodochial_aryabhata

ここまで出来れば設定は完了です。

やってみた

それではDynamoDBテーブルの作成からアイテムのput、scan、テーブルの削除までの一連の流れを試してみたいと思います。

まずは 新規でtestという名前のdynamodbテーブルを作成してと依頼しました。

回答が以下でした。

DynamoDBテーブルを作成するために必要な情報を確認させてください。以下の項目をお教えください:

1. パーティションキー(必須)の属性名(例: "id")
2. パーティションキーのデータ型(S=文字列, N=数値, B=バイナリ)
3. ソートキーが必要かどうか(必要な場合、属性名とデータ型)

例:
1. id
2. S
3. 不要

パーティションキーにid/S、ソートキーは不要と回答したところcreate_tableツールを使用してテーブルを作成しました。

alt text

続いて 作成したtestテーブルに新しいアイテムを作成して。適当なアイテムでいいです と依頼しました。すると何故かAWS CLIで直接アイテムをputしようとしていたので

alt text

コマンドの実行ではなくmcpツールを使ってほしいと再度依頼しました。すると、put_item ツールでアイテムを作成してくれました。

alt text

その後、特に指示はしてないのですが、get_item でputしたアイテムが正常に登録されていることを確認してくれました。

alt text

また、最終確認としてテーブルステータスも確認していました。

alt text

確認した結果、ItemCountが0になっていたので、scanも実行されました。

alt text

ちゃんとアイテムが入ってますね。

最後に testテーブルを削除して と伝えました。こちらも最初はコマンドで消そうとしていましたが、最終的には以下のようにツールで消してくれました。

alt text

まとめ

ということで、AWS DynamoDB MCP Server を試してみた。でした。

DynamoDB MCP Serverの他にもDB操作をMCPサーバを介して行うものとして、AWS Labs postgres MCP Server も公開されています。MCPサーバを介してDB上のデータを取れることで、簡易的なRAGとしても使えるのではないかなと思います。既存のDBがあり、それに基づいた回答をさせたいという場合には今回紹介したようなMCPサーバを試してみると面白いかもしれないですね。

以上、とーちでした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.