DynamoDB 読み取り専用 MCP
モデルコンテキストプロトコル(MCP)を利用してAWS DynamoDBデータベースにクエリを実行するサーバー。このサーバーにより、ClaudeのようなLLMは自然言語リクエストを通じてDynamoDBデータをクエリできるようになります。
特徴
この MCP サーバーは次の機能を提供します。
テーブル管理ツール:
list-tables: すべての DynamoDB テーブルのリストを表示するdescribe-table: 特定のテーブルに関する詳細情報を表示する
データクエリツール:
scan-table: テーブルのデータ全体または一部をスキャンするquery-table: テーブル内の特定の条件に一致するデータを検索するpaginate-query-table: 特定の条件に一致する複数のページにわたるデータを取得するget-item: 特定のキーを持つアイテムを取得するcount-items: テーブル内のアイテム数を計算する
リソース:
dynamodb-tables-info: すべてのテーブルのメタデータを提供するリソースdynamodb-table-schema: 特定のテーブルのスキーマ情報を提供するリソース
プロンプト:
dynamodb-query-help: DynamoDB クエリを書くためのヘルププロンプト
Related MCP server: dbt Semantic Layer MCP Server
インストールと実行
以下のRun with NPXメソッドを使用すると、インストールせずに実行できます。
Smithery経由でインストール
Smithery経由で Claude Desktop 用の DynamoDB 読み取り専用サーバーを自動的にインストールするには:
インストール
リポジトリをクローンします。
git clone https://github.com/jjikky/dynamo-readonly-mcp.git cd dynamo-readonly-mcp必要なパッケージをインストールします。
npm install.envファイルを作成し、AWS 認証情報を設定します。AWS_ACCESS_KEY_ID=your_access_key AWS_SECRET_ACCESS_KEY=your_secret_key AWS_REGION=your_region
ビルドと実行
Claudeデスクトップに接続
この MCP サーバーを Claude Desktop で使用するには、Claude Desktop 構成ファイルを変更する必要があります。
Claude Desktop 構成ファイルを開きます。
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
次のようにサーバー構成を追加します。
{ "mcpServers": { "dynamodb-readonly": { "command": "node", "args": ["/absolute-path/dynamo-readonly-mcp/dist/index.js"], "env": { "AWS_ACCESS_KEY_ID": "your_access_key", "AWS_SECRET_ACCESS_KEY": "your_secret_key", "AWS_REGION": "your_region" } } } }Claude Desktop を再起動します。
NPXで実行
グローバルインストールなしでnpxを使用してこのサーバーを実行することもできます。
使用例
クロードに次のような質問をすることができます:
「DynamoDB にはどのようなテーブルがあるのか教えていただけますか?」
「Usersテーブルの構造を説明する」
「「Users」テーブルで、グループIDが「0lxp4paxk7」であるユーザーの数を見つけます」
建築
この MCP サーバーは次の階層構造で構成されています。
クライアントインターフェース(Claude Desktop) - ユーザーとLLM間のインタラクション
MCPプロトコル層- 標準化されたメッセージ交換方法を提供する
DynamoDB サーバー- DynamoDB と対話する関数を実装します
AWS SDK - AWS DynamoDB サービスと通信します
主要な操作メカニズム
1. 初期化と接続
サーバーが起動すると、次のプロセスが実行されます。
StdioServerTransport標準入出力を介して通信チャネルを設定します。server.connect(transport)MCP プロトコルを介して Claude Desktop に接続します。接続中に、サーバーはサポートされているツール、リソース、およびプロンプトに関する情報をクライアントに送信します。
2. ツール要求処理
ユーザーが Claude に「DynamoDB テーブルのリストを表示してください」のような質問をした場合:
クロードはこのリクエストを分析し、
list-tablesツールを呼び出します。この要求は、MCP プロトコルを通じてサーバーに送信されます。
サーバーは対応するツール ハンドラーを実行します。
結果は MCP プロトコルを通じて Claude に返されます。
クロードはこの結果を自然言語に変換し、ユーザーに提示します。
3. 特定のパラメータ処理
ユーザーが「Users テーブルの構造を教えてください」と要求した場合:
Claude は、このリクエストでは
describe-tableツールを使用する必要があると判断しました。Claude はパラメータを
{ tableName: "Users" }として設定します。この情報は MCP サーバーに送信されます。
ここで、 z.string()は Zod ライブラリを使用してパラメータを検証します。
4. リソースの取り扱い
リソースは、読み取り専用データを提供するもう 1 つの MCP 機能です。
クロードはリソースにアクセスし、それをコンテキスト情報として使用します。
5. 迅速な対応
MCP サーバーは、特定のタスクのプロンプト テンプレートを提供できます。
このプロンプトは、ユーザーが「Users テーブルのクエリの記述方法を教えてください」と要求したときに使用されます。
データフローの概要
ユーザーは自然言語でクロードにリクエストを送信します
クロードはリクエストを分析し、適切なMCPツール/リソース/プロンプトを選択します。
MCPクライアントは標準化された形式でサーバーにリクエストを送信します。
サーバーはリクエストを処理し、AWS DynamoDB API を呼び出します。
DynamoDBは結果を返します
サーバーは結果をMCP形式に変換し、クライアントに送信します。
クロードは結果を自然言語で処理し、ユーザーに提示します。
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。