MCP server that provides tools to fetch data from JSONPlaceholder API, including posts, albums, users, comments, todos, and photos
This server has critical gaps in definition quality. All 11 tools lack proper parameter descriptions, the IdSchema is used throughout but never documented in tool definitions. Tool descriptions are generic and under 50 chars on average. The get-posts tool incorrectly declares inputSchema: IdSchema when it takes no parameters. No output schemas are documented. Error handling is minimal (basic null checks, no recovery guidance). The server reads from a public API (JSONPlaceholder) with no authentication, but lacks pagination support despite returning potentially large result sets. Naming is acceptable (verb_noun pattern) but descriptions fail to explain WHEN to use each tool or what distinguishes similar tools (e.g., get-albums vs get-user-albums).
Get Album by ID
Get all albums
Get comments by postID
Get a specific post item by ID
Get all post items
Get url of photos by album Id
Get user albums by User ID
Get user detail by ID
Three tools (get-posts, get-albums, get-users) declare inputSchema: undefined but are registered with IdSchema in code, creating a mismatch. get-posts has inputSchema: IdSchema but takes no parameters, this will confuse LLMs into passing an 'id' when none is needed.
No parameter descriptions visible in tool definitions. IdSchema is imported and used but never documented, LLMs cannot infer that 'id' is a number or what it represents (post ID vs album ID vs user ID). Parameter descriptions are mandatory per pattern:tool-description.
Tool descriptions are generic and under 50 characters. 'Get all post items' and 'Get all albums' do not explain when to use them, what they return, or how they differ from related tools. Descriptions should be 50 - 200 chars and answer: what, when, and why.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
Get user posts by User ID
Get user todos by User ID
Get all Users
No output schemas documented. Tools return formatted text responses but LLMs cannot parse structure or extract IDs for chaining. Responses should include structured fields (id, title, userId, etc.) so agents can compose downstream calls without re-parsing.
No pagination support. Tools like get-posts and get-albums return all results without limit or offset parameters. JSONPlaceholder has ~100 posts and ~10 albums, but returning all items in one response wastes tokens and violates pattern:paginated-result. Add limit and offset params.