DynamoDB MCP サーバー: Claude Code、Cursor、Codex を安全に接続する
Model Context Protocol (MCP) を使うと、ターミナルや エディタで動く AI エージェント — Claude Code、Cursor、Codex、VS Code Copilot — が、推測する 代わりに外部のツールを呼び出せます。一つを DynamoDB に向ければ、エージェントはスキーマを 読み取り、実際のクエリを実行し、編集を提案できます — テーブルのダンプをチャットに貼り付ける ことなく。
問題は何を渡すかです。エージェントを DynamoDB に配線するほとんどの方法は、エージェントの
MCP サーバープロセスに生の AWS 認証情報と、テーブルへの直接の書き込みアクセスを
与えます。これはまさにセキュリティ研究者が警告するパターンです: 汚染されたツール結果や
プロンプトインジェクションされたドキュメントによって操作されうるエージェントが、本番環境で
DeleteItem できるキーを保持しているのです。このガイドは両方 — 安全な方式と生の方式 — を
扱うので、意図して選べます。
DynamoDB の MCP サーバーはありますか?
はい — 複数あります。AWS はデータモデリング向けの公式サーバーを公開しており、コミュニティの npm・PyPI サーバーはライブの読み取り専用または読み書きアクセスを提供します。DynoTable もローカル MCP サーバーとして機能します。本当の選択肢はサーバーの有無ではなく、エージェントにどれだけの権限を与えるかです。読み取り専用サーバーはまずまず安全ですが、AWS キーを持つ書き込み可能なサーバーはリスクを伴います。
- エージェントに DynamoDB を読んで推論させたい? いくつかの MCP サーバーがこれを 行います。読み取り専用のものはまずまず安全です。
- エージェントにデータを変更させたい? キーと直接の書き込み経路を渡してはいけません。 人間がコミットするよう、書き込みをレビューステップ経由でルーティングしましょう。それが 以下で説明する DynoTable が採るモデルです。
安全な方式: MCP サーバーとしての DynoTable
DynoTable は、ローカルの MCP サーバーとして動作できるデスクトップ DynamoDB クライアントです。外部のエージェントがこれに接続すると、DynoTable の組み込み アシスタントが使うのと同じゲート付きツールキットを得ます — ただし、 スタンドアロンのサーバーが提供しない 2 つの保証付きです:
- あなたの AWS 認証情報がエージェントに届くことは決してありません。 DynoTable が あなたの AWS プロファイルを保持し、エージェントは AWS ではなく DynoTable と対話します。 エージェントのプロセス内のどこからも、あなたのキーは読み取れません。
- エージェントは DynamoDB に直接書き込めません。 提案するすべての変更は、あなたが 確認してコミットするための DynoTable のステージングコミットウィンドウ に着地します。エージェントは提案し、あなたがコミットします。
加えて: デフォルトでオフ、すべての接続はあなたが選んだスコープでクライアントごとに
承認され、endpoint はループバック専用(127.0.0.1、マシンの外からは決して到達
できません)で、どのクライアントも取り消し可能です。
有効化してクライアントを接続する
設定 → MCP サーバーでサーバーをオンにします。DynoTable はループバックポートにバインド
し、正確な接続コマンドを表示します。endpoint は http://127.0.0.1:<port>/mcp です(実際の
ポートはペインからコピーしてください)。
プロジェクト内で MCP ペインのコマンドを実行します:
claude mcp add --transport http dynotable http://127.0.0.1:<port>/mcp.cursor/mcp.json(プロジェクト)または ~/.cursor/mcp.json(グローバル)に追加します:
{
"mcpServers": {
"dynotable": {
"url": "http://127.0.0.1:<port>/mcp"
}
}
}.vscode/mcp.json(Copilot エージェントモード)に追加します:
{
"servers": {
"dynotable": {
"type": "http",
"url": "http://127.0.0.1:<port>/mcp"
}
}
}~/.codex/config.toml に追加します:
[mcp_servers.dynotable]
url = "http://127.0.0.1:<port>/mcp"opencode.json の mcp の下に追加します:
{
"mcp": {
"dynotable": {
"type": "remote",
"url": "http://127.0.0.1:<port>/mcp",
"enabled": true
}
}
}クライアントが初めて接続すると、DynoTable はアプリ内に同意プロンプトを表示します。 接続してくるクライアントの名前を示し、どのスコープを付与するか — または拒否するか — を 求めます:
- 読み取り専用 — スキーマ、クエリ、アイテムの読み取り。変更はなし。
- 読み取り&ステージング — 上記に加えて、あなたが確認するための変更のステージング (直接の書き込みは決してありません)。
- フルアクセス — 上記に加えて、ビューを開く、フィルター、エクスポート。ここでも 書き込みはやはりステージングを経由します。
完全なセットアップ、スコープ、セキュリティモデルは MCP サーバードキュメント にあります。
その他の選択肢(とそのトレードオフ)
これらも機能しますが、本番テーブルに向ける前にトレードオフを読んでください。
AWS の公式 DynamoDB MCP サーバー — モデリング向けで、ライブ運用向けではない
AWS は awslabs/mcp で公式の dynamodb-mcp-server を
公開しています。2026-06-12 時点では、本番テーブルに対するライブの読み書きではなく、
データモデリングと設計のガイダンス — スキーマ設計、DynamoDB Local に対する検証、
コスト見積もり — に向けられています。ライブのデータプレーンアクセスについて、AWS は
ユーザーを汎用の AWS API MCP サーバーに案内しており、これは設定された AWS 認証情報で
AWS API/CLI 呼び出しを実行します。つまりエージェントのサーバープロセスが、広い影響範囲を
持ちフルパワーのキーを保持し、DynamoDB 固有のレビューステップは存在しません。(これに
頼る前に awslabs リポジトリで現在のツールセットを確認してください — これらのサーバーは
変化します。)
コミュニティの npm/PyPI サーバー — よくて読み取り専用、悪くすると生のキー
npm と PyPI には複数のコミュニティ製 DynamoDB MCP サーバーがあります。テーブル/アイテムの 全操作を公開するものもあれば、意図的に読み取り専用のものもあります。共通しているのは:
- あなたの AWS アクセスキーとシークレットがサーバーの環境(
.envまたはクライアント 設定)に置かれ、それらのキーの IAM 権限がフルに効きます。 - 接続ごとの同意も、スコープも、書き込みステージングもありません — 読み取り専用の ものは、設計によってではなく書き込みツールを省くことだけであなたを守っています。
読み取り専用のコミュニティサーバーは、エージェントにテーブルを探索させるための、 妥当で低リスクな方法です。書き込み可能なものに本番のキーを渡すのは、危険なパターンです。
AI エージェントに DynamoDB アクセスを与えても安全か?
それは完全に経路次第です。機微でないテーブルへの読み取りアクセスは低リスクです。問題は 書き込みアクセスです — そして安全な答えは、自律的なエージェントに認証情報と直接の 書き込み経路の両方を決して与えないことです。読み取り専用に保つか、すべての変更を人間が 承認するレビューステップ経由でルーティングしましょう。DynoTable は後者を行います: エージェントはあなたのキーを保持せず、DynamoDB に書き込むこともありません。あなたが ステージングウィンドウからコミットします。
MCP エージェントは私の DynamoDB テーブルに書き込めるか?
生の書き込み可能なサーバーでは: はい、直接 — それがリスクです。DynoTable では: いいえ、 直接には書き込めません。読み取り&ステージングまたはフルアクセスでは、エージェントは変更を ステージングできますが、それはアプリ内でレビュー可能な差分として現れ、あなたが コミットしたときにのみ書き込まれます。
Claude Code を DynamoDB と一緒に使うには?
DynoTable の MCP サーバーを実行し(設定 → MCP サーバー)、プロジェクト内で
claude mcp add --transport http dynotable http://127.0.0.1:<port>/mcp を実行し、希望する
スコープで接続を承認して、Claude Code をリロードします。これでエージェントは、AWS 認証情報を
一切保持することなく、スキーマを読み取り、クエリを実行し、編集をステージングできます。同じ
パターンが Cursor、VS Code Copilot、Codex、OpenCode でも機能します(設定は上記)。
関連
- MCP サーバードキュメント — 完全なセットアップ、スコープ、同意、そして セキュリティモデル。
- AI ツール — 外部エージェントが得るゲート付きツールキットと、各操作が どう権限付けされるか。
- ステージング — 提案された書き込みがどうレビューされ、コミットされるか。
- エージェントが DynamoDB でぶつかる PartiQL vs SQL のギャップと、 率直な DynamoDB GUI クライアント総まとめ。
- 単一のリクエストを手で組み立てたいですか? DynamoDB Expression Builder
は
FilterExpression/KeyConditionExpressionをブラウザ内で生成します — エージェント 不要、SQL 不要。 - DynoTable をダウンロードして、1 分足らずで最初のエージェントを接続しましょう。
製品名はそれぞれの所有者の商標であり、識別のためにのみ参照しています。競合製品と AWS サーバーの詳細は 2026-06-12 に確認済み — これらに頼る前に上流のリポジトリを再確認して ください。