MCP server for accessing payment data from MongoDB. Provides tools to query completed and all payments, and resources for accessing payment data.
This server has severe definition quality gaps. Both tools have minimal descriptions (under 50 characters each), completely empty input schemas with no parameter definitions, and no documented output schemas. The tools are simple read-only database queries without any parameter guidance, but their descriptions are so terse they fail to explain WHEN to use each tool or WHY they exist as separate endpoints. Per the rubric, descriptions under 20 chars cap at 0-20, and empty input schemas with no properties cap schema scores at 0. The naming is adequate (verb-noun), but the lack of any parameter or output documentation, combined with absent error handling guidance, makes these tools difficult for LLMs to use confidently.
Get all payments from the database
Get all payments where done is true
Input schemas are completely empty (no properties, no required array content) and parameters lack all type definitions and descriptions.
Tool descriptions are 30-35 characters and lack critical context. 'Get all payments where done is true' and 'Get all payments from the database' do not explain WHEN to use one vs the other, what the return format is, or how to interpret results. These are at the floor of acceptable.
No output schema documented. LLMs cannot know what fields are returned (presumably id, amount, done, timestamp, etc.). Without documented return structure, agents cannot plan downstream operations or extract relevant data reliably.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 7 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 22 | - | v1 |
Error handling provides no recovery guidance. When a database query fails, the response returns a generic error text. Per pattern recovery-guide, errors should tell the LLM what to do next (e.g., 'MongoDB connection failed. Retry in 5 seconds.' or 'Invalid database state. Contact administrator.').
No pagination support. Both tools return all results in memory and serialize them. If the payments collection grows large, this will exhaust context windows and harm LLM reasoning. Per pattern paginated-result, tools returning lists should support limit/offset and return a total count.
Redundant tools with unclear differentiation. 'get_completed_payments' and 'get_all_payments' are nearly identical in implementation (both query the payments collection, one filters on done=true). The description does not explain WHY an agent should prefer one over the other, or when filtering completed payments is the right choice.