Horoscope MCP — wraps the keyless Horoscope App API.
Three tools with complete schemas and reasonable descriptions. Naming follows verb_noun pattern (daily_horoscope, weekly_horoscope, monthly_horoscope). Descriptions are 150-200 chars, within baseline range (p10=34, p90=392). All parameters have type and description. However, parameter descriptions lack actionable constraints (e.g., 'sign' lists valid values in text but not as enum; 'day' format not formally specified). Output schemas are not documented, LLMs cannot predict response structure. Error handling returns basic messages but lacks recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Composition is sound: three independent, single-purpose tools.
Get the daily horoscope for a zodiac sign. Returns the prediction text for a given day (today, tomorrow, yesterday, or a specific YYYY-MM-DD date). Useful for "what is my horoscope today" style questions.
Get the monthly horoscope for a zodiac sign. Returns the prediction text for the current month plus challenging and standout days.
Get the weekly horoscope for a zodiac sign. Returns the prediction text covering the current week.
Parameter 'sign' lists valid values in description text ('aries, taurus, ...') instead of as a formal enum constraint. LLMs cannot parse text enums reliably and may hallucinate invalid values.
Output schemas are not documented. LLMs cannot predict response structure (e.g., fields returned by daily_horoscope: sign, period, date, day, horoscope). This forces agents to guess or fail on downstream processing.
Parameter 'day' in daily_horoscope accepts 'TODAY', 'TOMORROW', 'YESTERDAY', or 'YYYY-MM-DD' but format constraint is not formally specified (no regex pattern, no enum). Description text is insufficient for LLM validation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Error responses (e.g., 'invalid sign', 'Horoscope API: 500') do not guide recovery. Missing actionable next steps like 'Try one of: aries, taurus, ...' or 'Retry in 30 seconds' for transient failures.
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, but this is not declared in the schema. Agents cannot optimize retry logic or caching.