MCP server for Item CRUD operations built with FastAPI and fastapi-mcp
FastAPI-CRUD MCP exposes 5 CRUD tools with clear verb-noun naming (create_item, get_all_items, get_item, update_item, delete_item). All tools have descriptions (10 - 200 chars, within baseline range). Input schemas are present and properly typed with JSON Schema. However, parameter descriptions are minimal or missing context; output schemas are not explicitly documented; error handling lacks recovery guidance; and tool annotations (readOnlyHint, destructiveHint) are absent despite clear risk classifications in the metadata.
Create a new item with the provided name and description.
Delete the item with the given ID.
Retrieve a list of all items, with optional pagination.
Retrieve the item with the given ID.
Update the item with the given ID using the provided data.
Tool annotations missing: create_item, update_item, delete_item lack destructiveHint/idempotentHint metadata despite clear WRITE/DESTRUCTIVE risk classifications. LLMs cannot infer safety properties without explicit annotations.
Output schemas not documented: tools return ItemOut or list[ItemOut] but no schema is visible in tool definitions. LLMs cannot plan downstream calls or extract required fields (e.g., item_id for chaining).
Error handling lacks recovery guidance: HTTPException(404, 'Item not found') returns raw status codes. No actionable error messages telling LLM what to do next (e.g., 'Try search_items() with a partial name').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | <=2025-11-25 | v2 |
Parameter descriptions incomplete: 'item_id' described only as 'The ID of the item to retrieve', no format, range, or constraint hints. 'skip' and 'limit' lack context on pagination behavior or total count return.
No idempotency guarantees documented: create_item and update_item do not state whether repeated calls with identical input produce the same result or duplicate records. Agents retry on ambiguous failures, non-idempotent tools risk side effects.