Simple AI Application using MCP server to provide tools for weather information and GraphQL schema introspection
Critical gaps across all dimensions. Tool 1 (getSeoulWeather) has NO input schema (empty object) and a non-English description that LLMs cannot reliably parse. Tool 2 (introspect-schema) has parameters with types but lacks descriptions for each parameter. Neither tool has documented output schemas. No error handling guidance. Naming lacks verb-noun clarity ('introspect-schema' is vague; 'getSeoulWeather' mixes camelCase with domain-specific Korean). No evidence of idempotency, pagination, or composition patterns. Code shows commented-out iterations suggesting incomplete implementation.
대한민국 서울의 날씨 정보를 알려줍니다.
GraphQL 스키마 도구
Tool 1 (getSeoulWeather) has NO input schema, empty object {} means LLMs cannot pass parameters or understand what the tool accepts.
Tool descriptions are non-English (Korean: '대한민국 서울의 날씨 정보를 알려줍니다.') and under 20 characters when translated. LLMs trained primarily on English will struggle to parse intent.
Tool 2 (introspect-schema) has parameters 'endpoint' and 'headersJson' with types but NO parameter descriptions. LLMs cannot infer what 'headersJson' format is expected or when to use 'endpoint' override.
No output schemas documented for either tool. LLMs cannot plan downstream calls or extract structured data. Baseline: 100% of A+ tools have documented return types.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 27 | <=2025-11-25 | v2 |
No error handling guidance. Code shows .onErrorResume() returning generic error strings, but no recovery hints for LLMs (e.g., 'If timeout, retry with longer duration' or 'If endpoint unreachable, check network'). Baseline: error responses must tell LLM what to do next.