mcp-registry/io.github.heavyblotto/caelus-mcp · v0.25.0
As of 2026-10-23 11:19 UTC, the Heavyblotto Caelus MCP server is up with a Glimind reliability score of 97/100 (grade A). 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 11 minutes.
34-tool Caelus MCP for validated astrology: charts, transits, Vedic, facts, sky view, synthetic.
Claude Code
claude mcp add --transport http heavyblotto-caelus-mcp-server https://www.ephemengine.com/api/mcp
Claude Desktop · Windsurf · Cline (mcpServers JSON)
{
"mcpServers": {
"heavyblotto-caelus-mcp-server": {
"type": "http",
"url": "https://www.ephemengine.com/api/mcp"
}
}
}
Third-party server, listed as discovered. Review its source before installing.
1 tool definition(s) exceed ~1,200 tokens each (largest: chart_facts, ~2,191).
Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~1,591 tokens every session. How to fix →
35 of 35 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 →
11 parameter(s) across 5 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 →
Loading this server's tool list costs an agent ~18,574 tokens before any work — more than 95% of MCP servers.
Split rarely-used tools into a separate server or a toolset the client can enable, or expose one "search tools" entry point. Many agents load every connected server's tools into every request. How to fix →
No tool declares an outputSchema.
Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →
Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 5 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fio.github.heavyblotto%2Fcaelus-mcp/fixes
{
"name": "counterfactual_chart",
"description": "A birth chart, perturbed — a 'what if'. Give a base chart (date+lat+lon) and an edit: `shift_time` (e.g. '1h', '-30m', 'P1D') moves the instant (\"born an hour later\"), `move_lat`+`move_lon` recompute at another place, and/or `set_longitudes` moves bodies to new ecliptic degrees (\"Mars in the next sign\"). Returns the diff vs the original: bodies that changed sign or house, aspects gained or lost, and angles that changed sign. A time/place edit rotates the houses and angles while planets stay put;",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"date",
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude, north positive"
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude, EAST positive (Americas are negative)"
},
"date": {
"type": "string",
"description": "UTC date-time, ISO 8601, e.g. 1990-06-10T14:30:00Z. Convert local birth time to UTC first."
},
"zodiac": {
"enum": [
"tropical",
"sidereal:lahiri",
"sidereal:fagan_bradley",
"sidereal:krishnamurti",
"sidereal:raman",
"sidereal:yukteshwar",
"sidereal:galcent_0sag",
"sidereal:true_citra"
],
"type": "string",
"default": "tropical",
"description": "tropical (default) or sidereal:<ayanamsa>"
},
"move_lat": {
"$ref": "#/properties/lat",
"description": "Recompute at this latitude instead of the birth latitude"
},
"move_lon": {
"$ref": "#/properties/lon",
"description": "Recompute at this longitude instead of the birth longitude"
},
"shift_time": {
"type": "string",
"description": "Duration to shift the instant: '1h', '-30m', 'P1Y'"
},
"house_system": {
"type": "string",
"default": "placidus",
"description": "House system (default placidus). Case- and spacing-insensitive; valid: placidus, whole_sign, equal, porphyry, koch, regiomontanus, campanus, alcabitius, morinus, meridian, polich_page, vehlow (aliases like \"whole sign\" also work)."
},
"set_longitudes": {
"type": "object",
"description": "Move bodies to these ecliptic longitudes in degrees, e.g. { \"mars\": 45 }",
"additionalProperties": {
"type": "number"
}
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "electional_search",
"description": "Rank moments in a window for an electional aim. Samples the window and scores each instant by how closely a set of wanted body-to-body aspects is satisfied (tighter and applying aspects score higher), optionally penalizing a void-of-course Moon. Returns the top moments with the aspects that matched. Body-to-body only; for aspects to the angles, compute the chart at a candidate moment.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"start",
"end",
"wanted"
],
"properties": {
"end": {
"type": "string",
"description": "UTC ISO end of the window"
},
"limit": {
"type": "integer",
"default": 10,
"description": "max moments to return (default 10)",
"exclusiveMinimum": 0
},
"start": {
"type": "string",
"description": "UTC ISO start of the window"
},
"wanted": {
"type": "array",
"items": {
"type": "object",
"required": [
"a",
"b",
"aspect"
],
"properties": {
"a": {
"type": "string",
"description": "first body, snake_case"
},
"b": {
"type": "string",
"description": "second body, snake_case"
},
"aspect": {
"enum": [
"conjunction",
"sextile",
"square",
"trine",
"opposition"
],
"type": "string"
}
},
"additionalProperties": false
},
"minItems": 1,
"description": "aspects to reward when close to exact"
},
"zodiac": {
"enum": [
"tropical",
"sidereal:lahiri",
"sidereal:fagan_bradley",
"sidereal:krishnamurti",
"sidereal:raman",
"sidereal:yukteshwar",
"sidereal:galcent_0sag",
"sidereal:true_citra"
],
"type": "string",
"default": "tropical",
"description": "tropical (default) or sidereal:<ayanamsa>"
},
"step_hours": {
"type": "number",
"default": 6,
"description": "sampling step in hours (default 6)",
"exclusiveMinimum": 0
},
"avoid_void_moon": {
"type": "boolean",
"default": false,
"description": "penalize a void-of-course Moon"
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true
}
}{
"name": "find_aspect_dates",
"description": "Exact dates a transiting body makes an aspect, within a range: to a fixed longitude OR to another transiting body. Provide exactly one of target_lon / target_body. Includes retrograde re-hits. Body names are snake_case (mean_node, true_node).",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"body",
"aspect",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "UTC ISO end date (convert from local first); range <= 50 years"
},
"body": {
"enum": [
"sun",
"moon",
"mercury",
"venus",
"mars",
"jupiter",
"saturn",
"uranus",
"neptune",
"pluto",
"chiron",
"mean_node",
"true_node"
],
"type": "string",
"description": "Transiting body (snake_case, e.g. saturn, true_node)"
},
"start": {
"type": "string",
"description": "UTC ISO start date (convert from local first)"
},
"aspect": {
"enum": [
"conjunction",
"sextile",
"square",
"trine",
"opposition"
],
"type": "string"
},
"zodiac": {
"enum": [
"tropical",
"sidereal:lahiri",
"sidereal:fagan_bradley",
"sidereal:krishnamurti",
"sidereal:raman",
"sidereal:yukteshwar",
"sidereal:galcent_0sag",
"sidereal:true_citra"
],
"type": "string",
"default": "tropical",
"description": "Zodiac for body and target_lon longitudes; tropical (default) or sidereal:<ayanamsa>"
},
"target_lon": {
"type": "number",
"maximum": 360,
"minimum": 0,
"description": "Fixed natal longitude in degrees. Provide this OR target_body, not both."
},
"target_body": {
"enum": [
"sun",
"moon",
"mercury",
"venus",
"mars",
"jupiter",
"saturn",
"uranus",
"neptune",
"pluto",
"chiron",
"mean_node",
"true_node"
],
"type": "string",
"description": "Another transiting body. Provide this OR target_lon, not both."
}
},
"additionalProperties": false
},
"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/io.github.heavyblotto/caelus-mcp"],"email":"[email protected]"}'Agents: watch_tool({"toolId": "mcp-registry/io.github.heavyblotto/caelus-mcp"}) over MCP.
chart_facts ~2,191 tokensreturns ~946 tokensnatal_chart ~898 tokenscurrent_sky ~882 tokenssynthetic_sky_view ~853 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%2Fio.github.heavyblotto%2Fcaelus-mcp?ref=badge)
<a href="https://glimind.com/server/mcp-registry%2Fio.github.heavyblotto%2Fcaelus-mcp?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.heavyblotto%2Fcaelus-mcp.svg" alt="MCP agent-readiness"></a>
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fio.github.heavyblotto%2Fcaelus-mcp.svg :target: https://glimind.com/server/mcp-registry%2Fio.github.heavyblotto%2Fcaelus-mcp?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:ff40c20398ada58e…, first seen 2026-10-17, included at leaf 533 of 51,766. Version history · verify what your client received.
Compare: most reliable knowledge servers · most reliable data servers · most reliable other servers · most reliable media 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-23 11:19 UTC, the Heavyblotto Caelus MCP server is up with a Glimind reliability score of 97/100 (grade A). 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 11 minutes.
Heavyblotto Caelus MCP server advertises 35 tools, including aspect_patterns, chart_facts, chart_signature, composite, cosmic_weather.
Point your MCP client at this streamable-http endpoint: https://www.ephemengine.com/api/mcp
Glimind scanned all 35 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.