An MCP server that allows AI agents to perform natural language queries over DynamoDB tables using the AWS SDK v3, with OpenAI integration for query translation
Single tool 'query_table' has a minimal schema with only a 'prompt' parameter (string, no constraints). Tool description is generic and does not explain WHAT queries are supported, WHEN to use it, or what the output structure is. No output schema documented. Parameter lacks format/constraint guidance. No error handling patterns visible. Tool appears to convert natural language to DynamoDB queries via OpenAI, but this critical behavior is not stated in the description. Schema is present but trivial; descriptions are under 100 chars and lack actionable detail.
Run a natural language query over a configured DynamoDB table
Tool description is too generic and does not explain the LLM-powered query translation mechanism, supported query types, or output structure. Current: 'Run a natural language query over a configured DynamoDB table', lacks WHAT queries work, WHEN to use it, and what fields are returned.
No output schema documented. Agents cannot plan downstream operations or extract required fields. Code shows OpenAI generates a JSON response with 'result', 'tableName', 'filterList', 'sortList', 'fieldList', 'queryType', 'limitCount', but this is never exposed to the MCP client.
Parameter 'prompt' has no format constraints, length limits, or examples of valid queries. Description is empty. LLMs cannot infer what kinds of queries are supported (filtering, sorting, aggregation, etc.).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2025-06-18+ | v2 |
No error handling guidance. Code may fail if OpenAI API is unavailable, DynamoDB scan fails, or memory limits are exceeded, but tool definition provides no recovery hints or error classification.
Tool name 'query_table' is vague. Does it search, filter, aggregate, or list? A more specific name like 'search_dynamodb_table' or 'filter_table_by_query' would clarify intent. Current name does not start with a clear action verb.