Model Context Protocol server exposing sitemon monitoring tools (health checks, SSL inspection, incident analysis) over stdio for MCP clients like Claude Code
Three tools with basic descriptions and minimal parameter documentation. All tools have input schemas with type definitions, but descriptions are generic and lack LLM-optimized guidance. No output schemas documented. No error handling guidance, recovery hints, or parameter constraints (enums, ranges). Tool names are action-verb based (check_, ssl_, analyze) but descriptions do not explain WHEN to use each tool vs alternatives or what downstream actions they enable. Parameter descriptions are minimal (e.g., 'The URL to check' lacks format/constraint details). No mention of pagination, limits, or result structure for the analyze tool despite accepting a 'limit' parameter.
Analyze stored check history for a URL: uptime, latency, anomalies, and an incident summary.
Run a live health check on a URL and return status, code, and latency.
Inspect a URL's TLS certificate (issuer, expiry, days remaining).
No output schemas documented. LLMs cannot infer what fields check_url, ssl_check, and analyze return, forcing them to guess downstream field names and risk broken tool chains.
Parameter descriptions lack actionable constraints. 'The URL to check' does not specify format (http/https only?), length limits, or valid schemes. LLMs cannot validate input before calling.
No error handling guidance. Tools do not document what errors are retryable, what user-fixable errors look like, or how to recover from failures (e.g., invalid URL, timeout, certificate error).
analyze tool accepts 'limit' parameter but no description explains pagination behavior, default value, or result structure. LLMs cannot reason about how many records to request or how to iterate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Tool descriptions do not explain WHEN to use each tool or what they return. 'Run a live health check' is vague, does it return response time, headers, body? Does it follow redirects? What constitutes a 'pass'?