Almanack
Server Details
Date math and SVG rendering for fictional and custom calendars. Exact, stateless and deterministic.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 15 tools
Each tool targets a distinct date/calendar operation: arithmetic, conversion, weekday lookup, period membership, moon phase, daylight, event queries, formatting/parsing, and two different rendering outputs. Even superficially similar tools (calendar_weekday vs nth_weekday_of_month, calendar_events vs calendar_periods) ask clearly different questions that the descriptions make unambiguous.
Names are all lowercase snake_case and mostly follow a verb_first or noun_query pattern, but there is a mix: add_to_date, convert_date, and parse_calendar_date are imperative, while moon_phases, sun_daylight, and calendar_events are noun phrases describing what they return. The calendar_ prefix on three tools and consistent rendering parse/format pairs help readability, so this is a minor deviation, not chaos.
15 tools sits at the upper bound of the ideal range for a focused domain toolkit. Every tool addresses a genuine calendar use case (define, convert, query, render, validate, generate), and none feels redundant or extraneous.
The set covers the full lifecycle of working with a custom calendar: validation before use, conversion between representations, date arithmetic and intervals, weekday and period queries, recurring events and daylight/moon data, formatting/parsing, and visual rendering. No obvious dead ends or missing operations come to mind for the stated domain.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
- Changed
add_to_date9 fields changed- removed
Input schema / properties / date / additionalPropertiesRemoved value: -true - added
Input schema / properties / date / anyOfAdded value: +[ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / date / defaultAdded value: +null - removed
Input schema / properties / date / typeRemoved value: -"object" - added
Input schema / properties / on_errorAdded value: +{ + "default": "fail", + "title": "On Error", + "type": "string" +} - added
Input schema / properties / stepsAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Steps" +} - added
Input schema / properties / ticksAdded value: +{ + "default": 0, + "title": "Ticks", + "type": "integer" +} - added
Input schema / properties / timeAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Time" +} - changed
Input schema / requiredPrevious value: -[ - "calendar", - "date" -]New value: +[ + "calendar" +]
- Changed
calendar_events4 fields changed- changed
Input schema / properties / event / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "additionalProperties": true, - "type": "object" - } -]New value: +[ + { + "type": "string" + }, + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / event / defaultAdded value: +null - added
Input schema / properties / eventsAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": true, + "type": "object" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Events" +} - changed
Input schema / requiredPrevious value: -[ - "calendar", - "event" -]New value: +[ + "calendar" +]
- Added
calendar_periods - Changed
calendar_weekday7 fields changed- removed
Input schema / properties / date / additionalPropertiesRemoved value: -true - added
Input schema / properties / date / anyOfAdded value: +[ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / date / defaultAdded value: +null - removed
Input schema / properties / date / typeRemoved value: -"object" - added
Input schema / properties / datesAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Dates" +} - added
Input schema / properties / on_errorAdded value: +{ + "default": "fail", + "title": "On Error", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "calendar", - "date" -]New value: +[ + "calendar" +]
- Changed
convert_date5 fields changed- added
Input schema / properties / datesAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Dates" +} - added
Input schema / properties / day_numbersAdded value: +{ + "anyOf": [ + { + "items": { + "type": "integer" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Day Numbers" +} - added
Input schema / properties / gregoriansAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Gregorians" +} - added
Input schema / properties / on_errorAdded value: +{ + "default": "fail", + "title": "On Error", + "type": "string" +} - added
Input schema / properties / timeAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Time" +}
- Changed
date_interval2 fields changed- added
Input schema / properties / end_timeAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "End Time" +} - added
Input schema / properties / start_timeAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Start Time" +}
- Changed
format_calendar_date9 fields changed- removed
Input schema / properties / date / additionalPropertiesRemoved value: -true - added
Input schema / properties / date / anyOfAdded value: +[ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } +] - added
Input schema / properties / date / defaultAdded value: +null - removed
Input schema / properties / date / typeRemoved value: -"object" - added
Input schema / properties / datesAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Dates" +} - added
Input schema / properties / on_errorAdded value: +{ + "default": "fail", + "title": "On Error", + "type": "string" +} - added
Input schema / properties / timeAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Time" +} - added
Input schema / properties / timesAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + { + "type": "integer" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Times" +} - changed
Input schema / requiredPrevious value: -[ - "calendar", - "date", - "pattern" -]New value: +[ + "calendar", + "pattern" +]
- Changed
moon_phases1 field changed- added
Input schema / properties / timeAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "integer" + }, + "type": "object" + }, + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Time" +}
- Changed
render_calendar_page4 fields changed- added
Input schema / properties / month / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - added
Input schema / properties / month / defaultAdded value: +null - removed
Input schema / properties / month / typeRemoved value: -"integer" - changed
Input schema / requiredPrevious value: -[ - "calendar", - "year", - "month" -]New value: +[ + "calendar", + "year" +]
- Added
sun_daylight
13 tool updates
- First observed
add_to_date - First observed
calendar_events - First observed
calendar_weekday - First observed
convert_date - First observed
date_interval - First observed
format_calendar_date - First observed
moon_phases - First observed
nth_weekday_of_month - First observed
parse_calendar_date - First observed
render_calendar_page - First observed
render_timeline - First observed
scatter_dates - First observed
validate_calendar_spec
Related MCP Connectors
Deterministic calendars and cosmic date JSON for AI agents via MCP (Gregorian 1900-2100).
Deterministic date arithmetic with auditable receipts: business days, due dates, holidays.
Business-day, SLA, cron and recurrence calculations — offline, holiday-aware, no network.
Deterministic time tools for AI agents: timezone conversion, business-day math, cron interpretation.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConverts between East Asian lunisolar calendars (Chinese, Japanese, Korean, Vietnamese) and Gregorian/Julian dates using Julian Day Numbers. Provides MCP tools for date conversion and era search.1-
- AlicenseNot gradedqualityCmaintenanceJapanese calendar API for AI agents. Provides Rokuyo, Rekichu, Eto, 24 Solar Terms, and fortune judgments. MCP + REST API.5 npmMIT
- AlicenseAqualityBmaintenanceDeterministic temporal reasoning engine for AI agents. LLMs are surprisingly bad at dates, timezones, business days, holidays, and recurring schedules. Taghvim gives agents deterministic temporal primitives they can call instead of guessing.129 npm1MIT

OpenFate Bazi MCPofficial
AlicenseAqualityCmaintenanceEnables AI agents to calculate deterministic Bazi (Four Pillars) charts with True Solar Time and Earthly Branch interactions, avoiding LLM hallucination of calendrical math.668 npm154MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.