Skip to main content
Glama

DynamoDB Read-Only MCP

by jjikky

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 クエリを書くためのヘルププロンプト

インストールと実行

以下のRun with NPXメソッドを使用すると、インストールせずに実行できます。

Smithery経由でインストール

Smithery経由で Claude Desktop 用の DynamoDB 読み取り専用サーバーを自動的にインストールするには:

npx -y @smithery/cli install @jjikky/dynamo-readonly-mcp --client claude

インストール

  1. リポジトリをクローンします。
    git clone https://github.com/jjikky/dynamo-readonly-mcp.git cd dynamo-readonly-mcp
  2. 必要なパッケージをインストールします。
    npm install
  3. .envファイルを作成し、AWS 認証情報を設定します。
    AWS_ACCESS_KEY_ID=your_access_key AWS_SECRET_ACCESS_KEY=your_secret_key AWS_REGION=your_region

ビルドと実行

npm run build npm start

Claudeデスクトップに接続

この MCP サーバーを Claude Desktop で使用するには、Claude Desktop 構成ファイルを変更する必要があります。

  1. Claude Desktop 構成ファイルを開きます。
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. 次のようにサーバー構成を追加します。
    { "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" } } } }
  3. Claude Desktop を再起動します。

NPXで実行

グローバルインストールなしでnpxを使用してこのサーバーを実行することもできます。

{ "mcpServers": { "dynamodb-readonly": { "command": "npx", "args": ["-y", "dynamo-readonly-mcp"], "env": { "AWS_ACCESS_KEY_ID": "your_access_key", "AWS_SECRET_ACCESS_KEY": "your_secret_key", "AWS_REGION": "your_region" } } } }

使用例

クロードに次のような質問をすることができます:

  1. 「DynamoDB にはどのようなテーブルがあるのか教えていただけますか?」
  2. 「Usersテーブルの構造を説明する」
  3. 「「Users」テーブルで、グループIDが「0lxp4paxk7」であるユーザーの数を見つけます」

建築

この MCP サーバーは次の階層構造で構成されています。

  1. クライアントインターフェース(Claude Desktop) - ユーザーとLLM間のインタラクション
  2. MCPプロトコル層- 標準化されたメッセージ交換方法を提供する
  3. DynamoDB サーバー- DynamoDB と対話する関数を実装します
  4. AWS SDK - AWS DynamoDB サービスと通信します

主要な操作メカニズム

1. 初期化と接続

サーバーが起動すると、次のプロセスが実行されます。

async function main() { const transport = new StdioServerTransport(); await server.connect(transport); console.error('DynamoDB read-only MCP server is running...'); }
  • StdioServerTransport標準入出力を介して通信チャネルを設定します。
  • server.connect(transport) MCP プロトコルを介して Claude Desktop に接続します。
  • 接続中に、サーバーはサポートされているツール、リソース、およびプロンプトに関する情報をクライアントに送信します。

2. ツール要求処理

ユーザーが Claude に「DynamoDB テーブルのリストを表示してください」のような質問をした場合:

  1. クロードはこのリクエストを分析し、 list-tablesツールを呼び出します。
  2. この要求は、MCP プロトコルを通じてサーバーに送信されます。
  3. サーバーは対応するツール ハンドラーを実行します。
server.tool('list-tables', 'Gets a list of all DynamoDB tables', {}, async () => { try { const tables = await listTables(); return { content: [{ type: 'text', text: JSON.stringify(tables, null, 2) }], }; } catch (error) { return { isError: true, content: [{ type: 'text', text: `Error: ${error.message}` }] }; } });
  1. 結果は MCP プロトコルを通じて Claude に返されます。
  2. クロードはこの結果を自然言語に変換し、ユーザーに提示します。

3. 特定のパラメータ処理

ユーザーが「Users テーブルの構造を教えてください」と要求した場合:

  1. Claude は、このリクエストではdescribe-tableツールを使用する必要があると判断しました。
  2. Claude はパラメータを{ tableName: "Users" }として設定します。
  3. この情報は MCP サーバーに送信されます。
server.tool( 'describe-table', 'Gets detailed information about a DynamoDB table', { tableName: z.string().describe('Name of the table to get detailed information for'), }, async ({ tableName }) => { // Query table information using the tableName parameter const tableInfo = await describeTable(tableName); // Return results } );

ここで、 z.string()は Zod ライブラリを使用してパラメータを検証します。

4. リソースの取り扱い

リソースは、読み取り専用データを提供するもう 1 つの MCP 機能です。

server.resource('dynamodb-tables-info', 'DynamoDB table information', async () => { // Create and return resource data const tables = await listTables(); const tablesInfo = await Promise.all(/* Query table information */); return { contents: [ { uri: 'dynamodb://tables-info', text: JSON.stringify(tablesInfo, null, 2), mimeType: 'application/json', }, ], }; });

クロードはリソースにアクセスし、それをコンテキスト情報として使用します。

5. 迅速な対応

MCP サーバーは、特定のタスクのプロンプト テンプレートを提供できます。

server.prompt( 'dynamodb-query-help', 'A prompt that helps write DynamoDB queries', { tableName: z.string().describe('Table name to query'), queryType: z.enum(['basic', 'advanced']).default('basic'), }, async ({ tableName, queryType }) => { // Generate prompt content return { messages: [ { role: 'user', content: { type: 'text', text: helpContent }, }, ], }; } );

このプロンプトは、ユーザーが「Users テーブルのクエリの記述方法を教えてください」と要求したときに使用されます。

データフローの概要

  1. ユーザーは自然言語でクロードにリクエストを送信します
  2. クロードはリクエストを分析し、適切なMCPツール/リソース/プロンプトを選択します。
  3. MCPクライアントは標準化された形式でサーバーにリクエストを送信します。
  4. サーバーはリクエストを処理し、AWS DynamoDB API を呼び出します。
  5. DynamoDBは結果を返します
  6. サーバーは結果をMCP形式に変換し、クライアントに送信します。
  7. クロードは結果を自然言語で処理し、ユーザーに提示します。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Claude のような LLM が自然言語リクエストを通じて AWS DynamoDB データベースをクエリできるようにし、テーブル管理、データクエリ、スキーマ分析をサポートするサーバー。

  1. 特徴
    1. インストールと実行
      1. Smithery経由でインストール
      2. インストール
      3. ビルドと実行
    2. Claudeデスクトップに接続
      1. NPXで実行
        1. 使用例
          1. 建築
            1. 主要な操作メカニズム
              1. 初期化と接続
              2. ツール要求処理
              3. 特定のパラメータ処理
              4. リソースの取り扱い
              5. 迅速な対応
            2. データフローの概要
              1. ライセンス

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  Enables management of DynamoDB resources through the Model Context Protocol, supporting table and index creation, capacity management, and data operations without delete functionality to prevent accidental data loss.
                  Last updated -
                  12
                  4
                  JavaScript
                  MIT License
                • -
                  security
                  F
                  license
                  -
                  quality
                  A protocol server that enables LLMs like Claude to interact with MongoDB databases, providing tools for schema exploration, aggregation queries, and data analysis through natural language in Cursor.
                  Last updated -
                  11
                  5
                  TypeScript
                  • Linux
                  • Apple
                • A
                  security
                  A
                  license
                  A
                  quality
                  A Model Context Protocol server implementation that enables Claude to perform AWS operations on S3 and DynamoDB services through natural language commands.
                  Last updated -
                  23
                  92
                  Python
                  MIT License
                  • Apple
                • -
                  security
                  A
                  license
                  -
                  quality
                  A server that enables LLMs like Claude to interact with Azure Cosmos DB databases through natural language queries, acting as a translator between AI assistants and database systems.
                  Last updated -
                  JavaScript
                  MIT License

                View all related MCP servers

                MCP directory API

                We provide all the information about MCP servers via our MCP API.

                curl -X GET 'https://glama.ai/api/mcp/v1/servers/jjikky/dynamo-readonly-mcp'

                If you have feedback or need assistance with the MCP directory API, please join our Discord server