MCP server for secure NTP synchronization with geographic filtering
Two tools with identical empty input schemas and minimal descriptions. Both tools have clear verb-noun naming (get_current_time, list_approved_servers) following baseline conventions. Descriptions are present but generic (194-char baseline; these are ~120-140 chars). No parameter descriptions exist (both have empty properties). No output schemas documented. Security implementation is solid (whitelist, IP blocking, rate limiting) but not reflected in tool definitions. Error handling exists in code but not surfaced to LLM via tool descriptions.
Get the current time from an NTP server specified by NTP_SERVER env var (default 'pool.ntp.org'), in time zone specified by TZ env var (default system local)
List all approved NTP servers that can be used
No input schemas documented for tools. Both tools declare empty properties {} with no parameter descriptions.
No output schemas documented. Tools return unstructured responses.
Tool descriptions lack actionable context. 'Get the current time from an NTP server...' does not explain WHEN to use this vs system time, WHAT format is returned, or HOW to handle errors.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
Environment variable configuration (NTP_SERVER, TZ) is not exposed as tool parameters. LLMs cannot control server selection or timezone at runtime.
No error recovery guidance in tool descriptions. Code implements retry logic (tenacity) and rate limiting, but LLMs see no indication of retryable vs fatal errors.