MCP サーバー

Model Context Protocol (MCP) は、AI エージェントが外部のツールやデータソースと対話できるようにするオープンな標準です。DynoTable は MCP サーバーとして動作できます — そのため、ターミナルやエディタで動くエージェント(Claude Code、Cursor、Codex など)が、スキーマや結果をチャットにコピー&ペーストで往復させることなく、あなたの DynamoDB テーブルと OpenSearch インデックスを直接扱えます。

接続すると、エージェントは組み込みアシスタントが使うゲート付きツールキットの一部を得ます — スキーマの読み取り、クエリと単一アイテム読み取りの実行、確認用の変更のステージング、ビューを開く操作、エクスポート — をすべて、ローカルのループバック専用 HTTP endpoint 経由で行います。読み取り専用のクエリは、アプリ内のビジュアルフィルターと同じインデックスとキー条件を使います。クライアントを組む前に、クエリビルダーで同等の SDK コードをプレビューできます。一部のアプリローカルなツールはアプリ内に留まり、公開されません。エージェントはあなたのテーブルを発見し、クエリし、編集を提案しますが、あなたの AWS 認証情報を保持することは決してありません。

これはデフォルトでオフです。オンにすること、そして個々の接続はすべて、明示的にあなたの管理下にあります — 下記のセキュリティを参照してください。

テーブルとインデックス

各接続は 1 つのプロファイルに紐づき、そのプロファイルのエンジンの設定が、エージェントに見えるものを決めます: DynamoDB テーブル、OpenSearch インデックス、またはその両方です。DynamoDB のみのプロファイルへの接続にはインデックスの機能がなく、その逆も同じです。

OpenSearch がオンなら、エージェントはインデックスのマッピングを読み、Lucene やクエリ DSL で検索し、ドキュメントを読み、ベクトル検索を実行し、テーブルとインデックスを結合する SQL を実行できます。ステージのスコープがあれば、インデックスへのドキュメントの変更や一括編集もステージできます。各スコープがインデックスで何を許すかは OpenSearch MCP サーバーで説明しています。

サーバーを有効にする

設定 → MCPを開いてオンにします。DynoTable は 127.0.0.1 にバインドしたサーバー(ループバック専用 — 他のマシンから到達できません)を起動し、その接続コマンドを表示します。

DynoTable の「設定 → MCP」ペイン:ローカルのループバックポートで動作する DynamoDB MCP サーバーと、接続中のクライアント一覧およびそのアクセスレベル。
DynoTable の「設定 → MCP」ペイン:ローカルのループバックポートで動作する DynamoDB MCP サーバーと、接続中のクライアント一覧およびそのアクセスレベル。

プロファイルを公開する

サーバーはオンになっていますが、プロファイルを公開するまで、どのエージェントも接続できません。設定でプロファイルの MCP セクションを開き、MCP 経由で公開をオンにします。公開された各プロファイルは独自の接続コマンドを得ます — そのため、プロファイルごとに 1 つの接続を構成できます(例えば dynotable-dev と dynotable-prod)。それぞれそのプロファイルの認証情報とリージョンに厳密に隔離されます。接続は、紐づけられたプロファイルのデータしか見ることがありません。

AWS バックエンドのプロファイルもローカル(DynamoDB-Local)のプロファイルも公開できます。ローカルプロファイルを公開すると、エージェントが MCP 経由であなたのローカルのシード済みテーブルを操作できます — 開発に便利です。(同じポート上の 2 つのローカルプロファイルは同じローカルデータベースを共有するため、同じテーブルを見ます。)

「MCP 経由で公開」を有効にした DynoTable プロファイルの MCP セクション — プロファイルごとの接続ブロックに、クライアントへ追加するエンドポイントが表示されます。
「MCP 経由で公開」を有効にした DynoTable プロファイルの MCP セクション — プロファイルごとの接続ブロックに、クライアントへ追加するエンドポイントが表示されます。

クライアントを接続する

DynoTable は streamable HTTP で MCP を話すため、MCP 対応のエージェントなら何でも接続できます。公開された各プロファイルは、その MCP セクションに独自の接続コマンドを表示します — そこからコピーしてください。コマンドは http://127.0.0.1:<port>/mcp?profile=<slug> を指します。?profile=<slug> は、どのプロファイルを使いたいかを DynoTable に伝え、承認プロンプトで事前選択します(あくまでヒントであり — それでもあなたが確認します)。サーバー名にプロファイルのスラッグを使う(例えば dynotable-prod)ことで、2 つのプロファイルの接続を区別できます。

下記の例ではスラッグとして prod を使っています。あなたのプロファイルのスラッグと、設定に表示される実際のポートに置き換えてください。

プロジェクト内でこれを実行します。プロファイルの MCP セクションのコマンドです。zsh は引用符のない ? をグロブとして扱うため、URL は引用符で囲まれています:

claude mcp add --transport http dynotable-prod "http://127.0.0.1:<port>/mcp?profile=prod"

2 つ目のプロファイルを接続するには、そのプロファイルのコマンド(独自のスラッグ)で繰り返します。接続したら、クライアントを再起動またはリロードして新しいサーバーを取り込ませます。

接続を承認する

クライアントが初めて接続すると、DynoTable はアプリ内に同意プロンプトを表示します。接続してくるクライアントの名前を示し、その接続が紐づくプロファイルを選ばせ(?profile= ヒントから事前選択され、公開済みのプロファイルに限定されます)、スコープの付与 — または拒否 — を求めます。あなたが承認するまで、何も公開されません。

DynoTable アプリ内の MCP 同意プロンプト:接続してきたクライアントがアクセスを要求し、3 つのスコープのいずれかを許可するか拒否します。
DynoTable アプリ内の MCP 同意プロンプト:接続してきたクライアントがアクセスを要求し、3 つのスコープのいずれかを許可するか拒否します。

範囲

スコープは、その接続がどのツールを見て使えるかを決めます。スコープは累積的で、各段階は前の段階を含みます:

  • 読み取り専用 — スキーマとインデックスのマッピングの読み取り、クエリ・SQL・インデックス検索の実行、アイテムとドキュメントの読み取り。変更はなし。
  • 読み取りとステージ — 読み取り専用のすべて、加えてあなたが確認してコミットするための、アイテムやドキュメントの変更と一括編集のステージング(エージェントが DynamoDB や OpenSearch に直接書き込むことはなく、ステージングを経由します)。 1 つのアイテムやドキュメントのステージには、そのプロファイルで DynoTable のウィンドウが開いている必要があります。一括編集には不要です。
  • フルアクセス — 上記のすべて、加えてビューを開く、フィルターやインデックスのクエリを設定する、結果をエクスポートする。書き込みはやはりステージングを経由します — フルアクセスでも、エージェントは DynamoDB や OpenSearch に直接書き込めません。

スコープはあなたのライセンスに従います。サインアウト中はサーバーが接続を拒否します。無料の読み取り専用プランでは、どのスコープを承認していても、すべての接続が読み取り専用に固定され、Workbench と Smart Table のツールは非表示になります。

接続は、あなたがプロンプトで承認したプロファイルに紐づきます — その認証情報とリージョンは接続の存続期間を通じて固定されるため、ちょうどそのプロファイルのデータを読み取り(書き込みをステージング)します。プロンプトに表示されるクライアント名は、接続してくるエージェントの自己申告なので、本当のゲートは名前ではなく、あなたが承認するプロファイルとスコープです。

承認したプロファイルが MFA を使う場合、エージェントはワンタイムコードを自身のセッション内で直接尋ねられます — DynoTable に戻る必要はありません。(SSO 経由でサインインするプロファイルは、引き続き DynoTable でそのサインインを完了します。)

接続を管理する

承認したクライアントはすべて設定 → MCPに一覧表示されます。いつでもどれでも取り消せます — 取り消されたクライアントは次のリクエストで遮断されます。プロファイルの公開を解除すると、その接続も即座に取り消されます。 サーバーをオフにすると、完全に停止します。

セキュリティ

  • ループバック専用。 サーバーは 127.0.0.1 にバインドします。マシンの外からは何も到達できません。
  • デフォルトでオフ、接続ごとに承認。 サーバーを有効化し、かつあなたが選んだスコープでその接続を承認するまで、どのエージェントもアクセスできません。
  • 認証情報はローカルに留まる。 接続はこのマシン上の既存の AWS プロファイル(AWS に接続)を使います。認証情報がエージェントに送られることはありません。
  • 接続ごとに 1 つのプロファイル。 各接続は、あなたが承認した単一のプロファイルに固定されます — 他のプロファイルのテーブル、インデックス、認証情報に到達することは決してありません。
  • 書き込みは確認を経る。 フルアクセスでも、変更はあなたがコミットするためにステージングされます — エージェントが独力で DynamoDB や OpenSearch に書き込むことはできません。
  • 取り消し可能。 いつでもクライアントを取り消すか、サーバーをオフにできます。

更新日