Labsco
MCP SERVER

DynamoDB Read-Only MCP

by jjikky

Read a DynamoDB account from an agent — table list, schema, key lookups, queries, scans and counts — with no tool in the set that can write.

NoSQL, Graph & Key-Value StoresVerified
Summary
The tool list contains no write operation, so what the agent can do is bounded by the tools even where the AWS credentials you hand it are broader.

The distinction that decides your bill is `query-table` against `scan-table`: a query is bounded by `keyConditionExpression` and can be pointed at a secondary index through `indexName`, while a scan reads the table and applies `filterExpression` afterwards. `count-items` answers a how-many question without moving the items across the wire. `paginate-query-table` takes a narrower argument list than `query-table` — no `indexName`, no `limit`, no `filterExpression` — so a paged read gives up the index target and the filter that the single-shot query accepts.

What it is

A read-only DynamoDB client exposing `list-tables`, `describe-table`, `get-item`, `query-table`, `paginate-query-table`, `scan-table` and `count-items`.

What you get
  • Discovery before access: `list-tables` returns the table names in the account, and `describe-table` returns the detail of a single table by `tableName`.
  • Key-addressed reads through `get-item`, which takes the `key` and the `tableName` and returns that item.
  • Condition-bounded reads through `query-table`, which takes a `keyConditionExpression` with `expressionAttributeValues`, can be aimed at a secondary index via `indexName`, and narrows the result with `filterExpression`, `projectionExpression` and `limit`.
  • Whole-table reads through `scan-table`, under the same `filterExpression`, `projectionExpression` and `limit` controls.
  • `paginate-query-table` for a query whose result set runs past a single response.
  • `count-items`, which returns how many items match a `filterExpression` without returning the items themselves.
Requirements

AWS credentials for the account holding the tables — AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY — plus the region those tables live in as AWS_REGION.

Setup effort

One command plus a key — npx -y @smithery/cli install @jjikky/dynamo-readonly-mcp --client claude, then supply credentials