A template MCP server with FastAPI and Scalar UI
Server has 5 tools with basic structure but significant quality gaps. All tools have descriptions (good), but descriptions are generic and lack actionable context. Input schemas are present with type definitions, but parameter descriptions are minimal (1-3 words). No output schemas documented. Error handling returns JSON errors but provides no recovery guidance. Tools follow verb_noun naming convention. Missing: enum constraints, parameter ranges, dependency hints, and structured output documentation.
새로운 데이터를 생성합니다. 데이터 입력 및 추가작업에 활용할 수 있습니다.
데이터를 삭제합니다. 데이터 정리 및 관리에 활용할 수 있습니다.
데이터 ID로 특정 데이터를 조회합니다. 상세 정보 확인에 활용할 수 있습니다.
키워드로 데이터를 검색합니다. 검색 및 필터링에 활용할 수 있습니다.
기존 데이터를 업데이트합니다. 데이터 수정 및 갱신에 활용할 수 있습니다.
Parameter descriptions are minimal (1-3 words). 'The data ID to retrieve' and 'Search keyword' lack context on format, constraints, or when to use. LLMs cannot infer valid ranges or formats from bare labels.
No output schemas documented. Tools return JSON strings but LLMs cannot plan downstream calls without knowing response structure (fields, types, required vs optional). Breaks tool chaining.
Error handling returns generic JSON errors ('error': str(e)) with no recovery guidance. LLMs cannot determine if errors are retryable, user-fixable, or fatal. No actionable next steps provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
search_data_by_query accepts 'limit' parameter but no pagination support documented. No mention of total count, next_cursor, or offset. Large result sets will blow context window.
Destructive tool (delete_data_by_id) has no confirmation step or dry-run option. Agents can permanently delete data without safeguards. No idempotency guarantee documented.