mcp-registry/dev.almanack/almanack · v0.7.0
As of 2026-10-20 01:02 UTC, the Almanack MCP server is up (it requires sign-in) with a Glimind reliability score of 83/100 (grade B). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 5 minutes.
Date math and SVG rendering for fictional and custom calendars. Exact, stateless and deterministic.
Claude Code
claude mcp add --transport http almanack-mcp-server https://almanack.dev/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"almanack-mcp-server": {
"type": "http",
"url": "https://almanack.dev/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
81 parameter(s) across 15 tool(s) have no description.
Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →
15 of 15 tool(s) carry no readOnlyHint/destructiveHint annotations.
Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →
Requires authentication; tool definitions could not be read anonymously.
If discovery should be public, allow initialize + tools/list without credentials and gate only tools/call. Directories and routers can then list your tools.
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 15 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fdev.almanack%2Falmanack/fixes
{
"name": "add_to_date",
"description": "Move a date by years, months, days and ticks. They are applied in that fixed order, which matters: a month then a day is not always the same landing as a day then a month. Adding days is always exact. policy decides what happens when the day does not exist in the target month: 'clamp' (default) moves to that month's last day, 'reject' refuses with an error, 'spill' carries the excess into the following month. Adding months to an intercalary date is refused, because those days sit between months;",
"inputSchema": {
"type": "object",
"title": "add_to_dateArguments",
"required": [
"calendar"
],
"properties": {
"date": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Date",
"default": null
},
"days": {
"type": "integer",
"title": "Days",
"default": 0
},
"time": {
"anyOf": [
{
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Time",
"default": null
},
"steps": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
{
"type": "null"
}
],
"title": "Steps",
"default": null
},
"ticks": {
"type": "integer",
"title": "Ticks",
"default": 0
},
"years": {
"type": "integer",
"title": "Years",
"default": 0
},
"months": {
"type": "integer",
"title": "Months",
"default": 0
},
"policy": {
"type": "string",
"title": "Policy",
"default": "clamp"
},
"calendar": {
"type": "object",
"title": "Calendar",
"additionalProperties": true
},
"on_error": {
"type": "string",
"title": "On Error",
"default": "fail"
}
}
},
"annotations": {
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false
}
}{
"name": "convert_date",
"description": "Convert between a calendar date, its day number, and its Gregorian date. Give exactly one of date, day_number, gregorian or one of their plurals dates, day_numbers, gregorians; all three forms come back, with whether the year is a leap year, how long it is, and any named period of the year the date falls in. USE THE PLURALS FOR MORE THAN ONE DATE: the calendar spec travels on every call, so fifteen dates in one call cost the spec once instead of fifteen times, and there is no reason to work an a",
"inputSchema": {
"type": "object",
"title": "convert_dateArguments",
"required": [
"calendar"
],
"properties": {
"date": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Date",
"default": null
},
"time": {
"anyOf": [
{
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Time",
"default": null
},
"dates": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
{
"type": "null"
}
],
"title": "Dates",
"default": null
},
"calendar": {
"type": "object",
"title": "Calendar",
"additionalProperties": true
},
"on_error": {
"type": "string",
"title": "On Error",
"default": "fail"
},
"gregorian": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Gregorian",
"default": null
},
"day_number": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Day Number",
"default": null
},
"gregorians": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Gregorians",
"default": null
},
"day_numbers": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Day Numbers",
"default": null
}
}
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "validate_calendar_spec",
"description": "Check a calendar spec and list everything wrong with it. Returns structured errors and warnings; it never throws and never partially accepts a spec. Errors mean the spec is unusable; warnings mean it is legal but probably not what was meant (a leap rule that changes no year's length, a moon that cycles every few hours). Use this before any other tool when you have written or edited a spec yourself. It is the only tool that accepts a malformed spec. A key no block defines is one of the errors, an",
"inputSchema": {
"type": "object",
"title": "validate_calendar_specArguments",
"required": [
"calendar"
],
"properties": {
"calendar": {
"type": "object",
"title": "Calendar",
"additionalProperties": true
}
}
},
"annotations": {
"readOnlyHint": true
}
}Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:
curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/dev.almanack/almanack"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/dev.almanack/almanack"}) over MCP.
convert_date ~447 tokenscalendar_events ~430 tokensadd_to_date ~405 tokensformat_calendar_date ~398 tokensdate_interval ~328 tokensStatic checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).
Operator? Fix these, then re-check live. Embed the readiness badge:
[](https://glimind.com/server/mcp-registry%2Fdev.almanack%2Falmanack?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fdev.almanack%2Falmanack?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fdev.almanack%2Falmanack.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fdev.almanack%2Falmanack.svg :target: https://glimind.com/server/mcp-registry%2Fdev.almanack%2Falmanack?ref=badge :alt: MCP agent-readiness
Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:f49b1de4d7b51edb…, first seen 2026-10-17, included at leaf 10378 of 30,073. Version history · verify what your client received.
Compare: most reliable other servers · most reliable knowledge servers · most reliable data servers
Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.
Claude Code
claude mcp add --transport http glimind https://glimind.com/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"glimind": {
"type": "http",
"url": "https://glimind.com/mcp"
}
}
}
As of 2026-10-20 01:02 UTC, the Almanack MCP server is up (it requires sign-in) with a Glimind reliability score of 83/100 (grade B). Over the last 30 days it answered 100% of Glimind's liveness checks. It had 1 outage in 90 days, with a median recovery of 5 minutes.
Almanack MCP server advertises 15 tools, including add_to_date, calendar_events, calendar_periods, calendar_weekday, convert_date.
Point your MCP client at this streamable-http endpoint: https://almanack.dev/mcp
Glimind scanned all 15 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.
Status page: 90-day uptime, every outage and how long it lasted.
Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.
Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.