# io.github.heavyblotto/caelus-mcp: tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.heavyblotto%2Fcaelus-mcp/versions/latest)
- Connected to: https://www.ephemengine.com/api/mcp
- Repository: https://github.com/heavyblotto/caelus
- Scoring rules: v2
- Tools: 35
- Average: 49.0 / 100 (Cloudy)
- Near-identical pairs: 0

This page shows how io.github.heavyblotto/caelus-mcp's tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Minor: 35 tools. Above 25, models start to tell tools apart less well.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `synthetic_sky_view`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: system, system.id, system.bodies, system.bodies[].id, system.bodies[].mode, system.bodies[].lonDeg, system.bodies[].id, system.bodies[].mode, system.bodies[].periodDays, system.bodies[].phaseDeg, system.bodies[].epoch, system.bodies[].id, system.bodies[].mode, system.bodies[].a, system.bodies[].e, system.bodies[].i, system.bodies[].node, system.bodies[].peri, system.bodies[].M0, system.bodies[].periodDays, system.bodies[].epoch, system.observer, system.render, lens, width, height, bortle.
  - Minor: String arguments with no constraint or example: system.id, system.bodies[].id, system.bodies[].mode, system.bodies[].id, system.bodies[].mode, system.bodies[].id, system.bodies[].mode, system.observer.
  - Minor: Says nothing about what it returns.
- `composite`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: b.date, b.lat, b.lon.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `synthetic_validate`: 40 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: system, system.id, system.bodies, system.bodies[].id, system.bodies[].mode, system.bodies[].lonDeg, system.bodies[].id, system.bodies[].mode, system.bodies[].periodDays, system.bodies[].phaseDeg, system.bodies[].epoch, system.bodies[].id, system.bodies[].mode, system.bodies[].a, system.bodies[].e, system.bodies[].i, system.bodies[].node, system.bodies[].peri, system.bodies[].M0, system.bodies[].periodDays, system.bodies[].epoch, system.observer, system.render.
  - Minor: String arguments with no constraint or example: system.id, system.bodies[].id, system.bodies[].mode, system.bodies[].id, system.bodies[].mode, system.bodies[].id, system.bodies[].mode, system.observer.
- `transits`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `find_aspect_dates`: 43 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: aspect.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `synthetic_positions`: 43 / 100
  - Major: Arguments without a description: system, system.id, system.bodies, system.bodies[].id, system.bodies[].mode, system.bodies[].lonDeg, system.bodies[].id, system.bodies[].mode, system.bodies[].periodDays, system.bodies[].phaseDeg, system.bodies[].epoch, system.bodies[].id, system.bodies[].mode, system.bodies[].a, system.bodies[].e, system.bodies[].i, system.bodies[].node, system.bodies[].peri, system.bodies[].M0, system.bodies[].periodDays, system.bodies[].epoch, system.observer, system.render.
  - Minor: String arguments with no constraint or example: system.id, system.bodies[].id, system.bodies[].mode, system.bodies[].id, system.bodies[].mode, system.bodies[].id, system.bodies[].mode, system.observer.
- `cosmic_weather`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: String arguments with no constraint or example: date.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `nakshatras`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `parans`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `yogas`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `aspect_patterns`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `chart_signature`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `rectification_grid`: 47 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sky_events`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `electional_search`: 48 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: wanted[].aspect.
  - Minor: String arguments with no constraint or example: wanted[].a, wanted[].b.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `void_of_course`: 48 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `dignities`: 49 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `lots`: 49 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `planetary_hours`: 49 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sky_view`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `vargas`: 49 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `directions`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `profections`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `progressions`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `returns`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `synastry`: 52 / 100
  - Minor: Arguments without a description: b.date, b.lat, b.lon.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `chart_facts`: 53 / 100
  - Major: Arguments without a description: constraints[].kind, constraints[].a, constraints[].b, constraints[].angle, constraints[].weight, constraints[].kind, constraints[].body, constraints[].sign, constraints[].weight, constraints[].kind, constraints[].body, constraints[].degree, constraints[].weight, constraints[].kind, constraints[].body, constraints[].degree, constraints[].weight, constraints[].kind, constraints[].a, constraints[].b, constraints[].contra, constraints[].weight, constraints[].kind, constraints[].a, constraints[].b, constraints[].angle, constraints[].weight.
  - Minor: String arguments with no constraint or example: constraints[].kind, constraints[].a, constraints[].b, constraints[].kind, constraints[].body, constraints[].kind, constraints[].body, constraints[].kind, constraints[].body, constraints[].kind, constraints[].a, constraints[].b, constraints[].kind, constraints[].a, constraints[].b.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument constraints[].contra is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `firdaria`: 54 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `counterfactual_chart`: 56 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `dasha`: 56 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `releasing`: 56 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `similar_skies`: 57 / 100
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `sky_view_sequence`: 57 / 100
  - Minor: Arguments without a description: lens, width, height.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `natal_chart`: 58 / 100
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `current_sky`: 70 / 100
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
