Moon & Star Map
Server Details
Moon phases & star map posters
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
The three tools split cleanly along answer-vs-poster and moon-vs-sky lines, and the descriptions explicitly cross-reference each other (find_moon_phase vs generate_moon_poster). The two poster tools share a similar output shape (preview + PDF/SVG), so an agent could occasionally hesitate between them, but the subject matter (moon phases vs star sky) resolves it.
All three names follow a consistent verb_noun snake_case pattern (find_moon_phase, generate_moon_poster, generate_star_map). The find/generate distinction is semantically meaningful rather than arbitrary.
Three tools is on the thin side but each covers a distinct deliverable (phase data, moon poster, star map) with no filler. For such a narrow niche, adding more tools would likely dilute rather than help.
The surface covers the core lifecycle: query moon data, produce a moon poster, produce a star map poster. Out-of-scope items (tides, planets, shipping) are explicitly declared, so no dead ends for the stated purpose, though there is no standalone option-listing or custom sizing tool beyond the fixed formats.
Available Tools
3 toolsfind_moon_phaseFind moon phaseARead-onlyIdempotentInspect
Use this when the user asks what the moon looked like on a date (birthday, wedding, first date), the moon phase today or tonight, whether two people's birthday moons complete each other ("our moons make a full moon"), or wants a moon phase calendar for a month. Returns phase name, illumination %, moon age, waxing/waning, exact phase times and the next full and new moon, computed with astronomical algorithms. Does not give astrology readings, tides or moonrise times. Do not use for planets or eclipses.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City (with state or country if ambiguous) that sets the time zone and hemisphere, e.g. "Austin, Texas" or "Sydney, Australia". Without it, dates are read in UTC. | |
| dates | No | Dates to look up as YYYY-MM-DD, optionally with a local time YYYY-MM-DDTHH:MM, e.g. ["1998-07-14"] for a birthday or ["1996-05-02", "1997-11-20"] for a couple. Omit for the Moon right now. | |
| month | No | A month YYYY-MM for a moon-phase calendar of every day plus the exact new, quarter and full moon times, e.g. 2026-01. | |
| labels | No | Optional names for the dates in the same order, e.g. ["Anna", "Ben"]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| pair | Yes | |
| moons | Yes | |
| place | Yes | |
| calendar | Yes | |
| time_zone | Yes | |
| hemisphere | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds useful context by saying results are computed with astronomical algorithms and by enumerating the returned values and capability limits, though it does not discuss calculation accuracy or timezone edge cases operationally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with "Use this when" and then proceeds through return contents and exclusions in a compact, scannable structure. Every sentence contributes either usage context, capability boundaries, or output expectations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and informative annotations already covering much of the contract, the description supplies the remaining intent, exclusions, return summary, and usage contexts needed for correct invocation. No major ambiguity remains for an agent deciding whether and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so city, dates, month, and labels are already fully documented in the input schema, which sets the baseline at 3. The description reinforces likely usage through birthday, couple, and monthly-calendar examples, but it does not add syntax or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and outcome, including returned fields such as phase name, illumination, moon age, and exact phase times. It excludes adjacent domains like astrology, tides, moonrise, planets, and eclipses, but it never names or directly contrasts the sibling tools generate_moon_poster and generate_star_map, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly lists when to use the tool: birthday/wedding/first-date moons, today or tonight, couple comparisons, and monthly calendars. It also lists clear exclusions, but it does not explicitly route related requests such as a moon poster to the sibling generate_moon_poster.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_moon_posterGenerate moon posterARead-onlyIdempotentInspect
Use this when the user wants a printable moon phase poster: the moon on one special date, two dates side by side ("our moons" couple print), or a lunar calendar of a whole year. Computes the real phases and returns a preview plus vector PDFs (12x18 in, 18x24 in, A3, Letter, A4) and SVG. Does not sell or ship prints. Do not use for a quick phase answer without a poster; that is find_moon_phase.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City for the time zone and hemisphere (southern hemisphere moons are drawn mirrored), e.g. "Melbourne, Australia". Default UTC. | |
| kind | Yes | moon: one date's moon as a large print; pair: two dates side by side (e.g. two birthdays) with whether they complete each other; year: a lunar calendar of all 365 days. Example: pair. | |
| year | No | For year: the calendar year, e.g. 2027. | |
| dates | No | For moon: one date; for pair: two dates. YYYY-MM-DD, optionally with a local time YYYY-MM-DDTHH:MM, e.g. ["1995-03-14", "1996-09-02"]. | |
| theme | No | midnight (default), black, paper, or ink. | |
| title | No | Poster headline, e.g. "The moon on the day you were born". | |
| labels | No | Optional names under each moon for pair, e.g. ["Mia", "Leo"]. | |
| message | No | Short line under the title, e.g. "Mia, 14 March 1995". |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| pair | Yes | |
| moons | Yes | |
| request | Yes | |
| summary | Yes | |
| downloads | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds useful context about computed real phases, returned preview plus vector PDFs/SVG, and that prints are not sold or shipped, though it does not mention auth, limits, or other operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the use case, then covers modes, outputs, and the exclusion in a compact, well-structured way. Every sentence carries useful selection or behavioral information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existing output schema, annotations, and fully described parameters, the description provides enough context to choose the tool and understand its main modes and output artifacts. No critical gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters and enums. The description echoes the three poster kinds but adds no syntax, constraints, or parameter details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (generate moon poster) and distinguishes the three supported poster kinds: single moon, pair, and yearly lunar calendar. It also names the sibling tool it is not, making selection unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives when to use it (printable poster, special date, couple print, yearly calendar) and when not to use it (quick phase answer should use find_moon_phase). The alternative is named directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_star_mapGenerate star mapARead-onlyIdempotentInspect
Use this when the user wants a star map or night sky poster for a date and place: the sky over a city on a birthday, wedding, anniversary or the night they met, or the sky tonight. Computes the real positions of about 2,900 stars, constellation lines and the Moon for the city's local time (time zones and DST handled) and returns a preview plus vector poster PDFs (12x18 in, 18x24 in, A3, Letter, A4) and SVG. Takes a city name, not coordinates. Does not draw planets and is not for navigation or telescope pointing.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | City the sky is seen from, with state or country if ambiguous, e.g. "Austin, Texas", "Paris, France", "Kraków". Not coordinates. | |
| date | Yes | Local date YYYY-MM-DD, e.g. 2019-06-21, or "tonight" for the sky tonight. | |
| time | No | Local clock time HH:MM (24 h) or 9:30 pm, e.g. 22:15. Default 21:00. | |
| theme | No | Colour style: midnight (navy and gold, default), black, paper (cream with a navy sky disc), ink (white, printer-friendly). | |
| title | No | Poster headline, e.g. "The night we met". | |
| labels | No | Label the brightest stars and constellations, e.g. false (default, cleaner keepsake look). | |
| message | No | Short line under the title, e.g. "Under these stars, forever began". | |
| show_moon | No | Draw the Moon in its real position and phase when it is above the horizon, e.g. true (default). | |
| constellations | No | Draw constellation lines, e.g. true (default). |
Output Schema
| Name | Required | Description |
|---|---|---|
| moon | Yes | |
| notes | Yes | |
| place | Yes | |
| request | Yes | |
| utc_time | Yes | |
| downloads | Yes | |
| time_zone | Yes | |
| local_time | Yes | |
| coordinates | Yes | |
| stars_drawn | Yes | |
| brightest_visible | Yes | |
| constellations_visible | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe, read-only, idempotent, non-destructive operation. The description adds substantial behavioral context beyond annotations: it computes real star positions, handles local time including time zones and DST, returns a preview and multiple vector poster formats, and explicitly notes that it takes a city rather than coordinates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary use case and remains dense with useful detail. Each sentence contributes either usage guidance, behavioral capability, input constraint, or scope limitation, and there is no wasted filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, full schema coverage, annotations, and an output schema, the description is complete enough for correct invocation. It covers the main purpose, input constraint, behavioral scope, output formats, and exclusions without needing to explain return values in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all nine parameters with examples, defaults, and constraints. The description reinforces that the city must be a name rather than coordinates and that local time is handled, but it does not add much parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: generating a star map or night sky poster for a date and place, with concrete examples. It is clear, but it does not explicitly differentiate itself from the sibling generate_moon_poster tool, so it falls short of the top score despite strong specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear when-to-use conditions (birthday, wedding, anniversary, the night they met, or tonight) and when-not-to-use cases (not planets, not navigation, not telescope pointing). It does not name alternatives among the sibling tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
find_moon_phase - First observed
generate_moon_poster - First observed
generate_star_map
Related MCP Connectors
Moon phases, moon signs, full/new moon dates 1900-2100, moonrise/moonset for any coordinates.
Genealogy charts and posters
Birth charts, transits, moon phases and more from precise astronomical calculations. Natal Compass.
Real natal charts for you and your people: compare charts, map your Circle, see your week.
Related MCP Servers
- AlicenseAqualityAmaintenancePrecision-audited astrology MCP for natal charts, transits, synastry and moon phases. No API key.1034 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides astronomical data including ISS tracking, moon phases, NASA APOD, near-Earth objects, exoplanets, space weather, and upcoming celestial events without requiring an API key.26 PyPIMIT
- AlicenseAqualityFmaintenanceProvides authoritative astronomical data including moon phases, solar eclipses, and sun/moon rise and set times using the US Navy API or offline Skyfield calculations. It enables users to query Earth's seasons and celestial events for any location and date.81Apache 2.0
- AlicenseNot gradedqualityDmaintenanceCalculates astrological birth charts including planetary positions, house placements, and aspects based on birth date, time, and location.3,411 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.