Provides access to Roman Catholic liturgical calendar data including general, national, and diocesan calendars with support for multiple locales
The server provides four tools with descriptions and input schemas, but several critical quality gaps reduce its overall grade to Fair (C). Tool naming is strong (verb-based, specific), and descriptions exist for all tools and parameters. The tools are read-only and focused on calendar retrieval, which is domain-appropriate, but the implementation falls short of production-grade quality expected for A/B grades.
Retrieve the liturgical calendar for a specific diocese and year, and optional locale. List all of the particular celebrations, do not remove any of them. Parameters: - diocese: Diocese ID like 'romamo_it' for Diocese of Rome. - year: Four-digit year (e.g., 2024). Defaults to current year if not provided. - locale: Use format like 'fr_CA' for French-Canadian; infer the regional format from the nation that the diocese belongs to. Defaults to 'en_US'. Example: diocese='romamo_it', locale='it_IT', year=2023
Retrieve the General Roman Calendar for a specific year with optional locale. Parameters: - year: Four-digit year (e.g., 2024). Defaults to current year if not provided. - locale: Locale code for translations (e.g., "en", "fr"). Defaults to "en". Example: locale='fr', year=2023
Retrieve the liturgical calendar for a specific nation and year, and optional locale. List all of the particular celebrations, do not remove any of them. Parameters: - nation: Two-letter country code like 'CA' for Canada or 'US' for United States. - year: Four-digit year (e.g., 2024). Defaults to current year if not provided. - locale: Use format like 'fr_CA' for French-Canadian; infer the regional format from the nation parameter. Defaults to 'en_US'. Example: nation='CA', locale='fr_CA', year=2023
List all available national and diocesan calendars with their locales and settings.
Descriptions embed example values (e.g. 'locale="en", "fr"'; 'nation="CA"') that LLMs reuse literally instead of adapting to context. Per pattern:tool-description, examples should be replaced with formal constraints (enums, patterns).
Output schema is not documented. Tools return plain text strings (format_calendar_summary(), format_announcement_response()), but the actual structure of these responses is opaque to the LLM. LLMs cannot plan downstream operations or extract structured fields without documented output schemas.
Error responses are plain text strings (e.g. '❌ Error: {str(e)}', '❌ National calendar not found...') with no structured recovery guidance. Per pattern:recovery-guide, errors should categorize themselves (retryable, user-fixable, fatal) and provide actionable next steps.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 58 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 25 | - | v1 |
No tool annotations present. Tools lack readOnlyHint (these are safe read-only queries) or idempotentHint. Per current MCP spec (2026-07-28), tool annotations enable agents to understand safety properties and optimize retry strategies.
list_available_calendars has minimal description ('List all available national and diocesan calendars with their locales and settings.') with no explanation of when to call it or what structure it returns. Per pattern:tool-description baseline of 194 chars average, this is undersized and uninformative.
Parameters 'nation' and 'diocese' have empty string defaults ('default': ''), which is ambiguous. Unclear whether empty string is a valid calendar ID or whether it triggers default behavior. Per pattern:constrained-input, should either use required=true or provide a clear semantic default.