Amazon DynamoDB backend binding plugin for mcpg — exposes per-binding DynamoDB operations (get/put/delete/query/scan) as MCP tools over the modern aws-lc-rs/rustls AWS HTTPS client.
8 tools with solid naming (verb_noun pattern) and comprehensive parameter schemas. Descriptions are present and actionable (avg ~80 chars), exceeding the 10-char minimum. All tools declare input schemas with typed properties and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance or categorization. Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Composition is strong: tools chain well (query→batch_get, put→update), and batch variants reduce call overhead. Security concern: no evidence of input validation or injection guards despite DynamoDB expression injection risk.
Retrieve multiple items from DynamoDB in a single batch request
Write or delete multiple items in DynamoDB in a single batch request
Delete an item from DynamoDB by its key
Retrieve a single item from DynamoDB by its key
Write or overwrite an item in DynamoDB
Query items from DynamoDB using key condition expression
Scan all items in a DynamoDB table with optional filtering
Output schemas not documented. LLMs cannot predict response structure (items returned, pagination cursors, metadata). Violates pattern:tool requirement that all tools document return types.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite explicit risk levels in metadata. Agents cannot distinguish safe reads from destructive writes without parsing descriptions.
No error handling guidance. Errors (e.g., 'ConditionalCheckFailedException', 'ValidationException') lack recovery hints. LLMs cannot self-correct or know whether to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Update specific attributes of an item in DynamoDB
DynamoDB expression injection risk. No evidence of input validation for 'condition_expression', 'update_expression', 'key_condition_expression', 'filter_expression'. Agents could pass malicious CEL/DynamoDB expressions.
Pagination not fully specified. 'query' and 'scan' accept 'exclusive_start_key' and 'limit', but no 'total_count' or 'has_more' documented in output. LLMs cannot determine when to stop paginating.