Skip to main content
Glama

Stellarhound — stargazing forecasts, dark-sky sites & aurora

Server Details

Live stargazing forecasts: per-night sky scores, dark-sky sites, aurora & light pollution anywhere.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 5 of 5 tools scored. Lowest: 3.8/5.

Server CoherenceA
Disambiguation4/5

The tools are mostly distinct: find_dark_sky_sites recommends locations, get_aurora_forecast handles aurora, get_light_pollution measures darkness, get_stargazing_conditions scores nights, and get_tonight_agenda gives a nightly plan. There is slight overlap between get_light_pollution and the light-pollution info embedded in get_stargazing_conditions and get_tonight_agenda, but the primary purposes are clear.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: find_dark_sky_sites, get_aurora_forecast, get_light_pollution, get_stargazing_conditions, get_tonight_agenda. The verbs (find, get) and nouns are descriptive and uniform, making the naming highly predictable.

Tool Count5/5

With 5 tools, the server is well-scoped for its purpose of stargazing forecasts and dark-sky site recommendations. Each tool covers a distinct aspect of the domain without redundancy, and the count is within the ideal range for a focused MCP server.

Completeness4/5

The tool surface covers the core stargazing workflow: finding dark sites, checking aurora, assessing light pollution, scoring nights, and getting a nightly agenda. A minor gap is the lack of a tool for detailed weather forecasts beyond the stargazing score, but the existing tools handle the primary use cases effectively.

Available Tools

5 tools
find_dark_sky_sitesA
Read-only
Inspect

Recommend dark-sky sites near a location, ranked by whether the drive is worth it.

Use for "where should I drive to stargaze near X". Sites are grouped by
drivability (how far), then ranked by a drive-worth score combining the
best weather window over the next 7 nights, how much darker the site is
than the user's location, and drive time. Drive times are approximate
(straight-line x 1.3), not routed.

Args:
    lat: Latitude in decimal degrees (-90..90).
    lon: Longitude in decimal degrees (-180..180).
    limit: Max sites to return, 1-12 (default 5).

Returns {ranking (methodology note), tiers:[{tier, label, hint, sites:[...]}],
nearest_km, uncertainty_note, attribution} — sites grouped into drivability
tiers. Include the methodology note when presenting — it explains the
ordering honestly.
ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
limitNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the ranking logic (grouped by drivability, scored by weather window, darkness, drive time), notes drive times are approximate, and instructs to include the methodology note when presenting results. Adds transparency beyond the read-only/non-destructive annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections: purpose, usage, ranking methodology, args. Concise yet comprehensive, no redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Comprehensive for its complexity: covers purpose, usage, ranking, output structure (tiers, nearest_km, uncertainty_note, attribution), and instructs to include methodology note. No gaps in understanding how to use and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The 'Args' section fully explains lat, lon, and limit, including ranges and default, which the input schema lacks. Adds meaningful parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool recommends dark-sky sites near a location, ranked by drive worth. Differentiates from siblings by focusing on recommending specific sites rather than providing forecasts or conditions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit usage example ('where should I drive to stargaze near X') and explains the ranking methodology, making it clear when to use this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_aurora_forecastA
Read-only
Inspect

Get the aurora (northern/southern lights) outlook for a location.

Use for "any chance of aurora tonight near X". Combines the Kp-index
forecast with the location's geomagnetic latitude to say whether aurora
could be visible there, and when.

Args:
    lat: Latitude in decimal degrees (-90..90).
    lon: Longitude in decimal degrees (-180..180).

Returns {kp_forecast:[{time, kp, flag: observed|estimated|predicted}, ...],
visibility assessment fields, attribution}. Kp entries are flagged by how
firm they are — keep those labels when presenting.
ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. Beyond the annotations, the description adds behavioral context by detailing the return structure (kp_forecast array with time/kp/flag fields), the firmness labels (observed|estimated|predicted), and an explicit instruction to preserve those labels when presenting. It stops short of covering update cadence or edge cases like daytime/polar-night behavior, but the description clearly earns its space.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded: a strong one-liner purpose statement, followed by the use-case guidance, then focused Args and Returns sections. Every sentence adds value—especially the note about keeping firmness labels, which is actionable. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter tool with no output schema, the description does a good job of documenting the return contract ({kp_forecast:[...], visibility assessment fields, attribution}) and the forecast's time dimension ('and when'). A few gaps remain: the forecast lookahead window (how many hours/days ahead) and a specific definition of 'visibility assessment fields' could be clarified. But overall, the description is sufficiently complete for this tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no descriptions (0% coverage), so the burden is on the description. The description compensates by specifying decimal degrees format and valid ranges for lat (-90..90) and lon (-180..180). This adds genuine semantic value beyond merely restating titles like 'Lat' and 'Lon'. Ranges and format are fairly standard for geospatial parameters, but they are explicitly documented and accurate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line, 'Get the aurora (n/s lights) outlook for a location,' is a specific verb+resource+context statement that also clarifies the domain. The description further differentiates from siblings by explaining the mechanistic combination of the Kp-index forecast with geomagnetic latitude, which is distinct from sibling tools like get_stargazing_conditions or get_light_pollution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance via the quoted use case, "Use for 'any chance of aurora tonight near X'", which clear signals intent and context of invocation. However, it doesn't name or exclude alternatives (e.g., when to prefer get_stargazing_conditions instead), leaving the when-not-to-use guidance implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_light_pollutionA
Read-only
Inspect

Estimate light pollution at any point: approximate Bortle class and what's visible there.

Use for "how dark is the sky at X" / "can I see the Milky Way from X".
Returns the zenith-brightness-derived estimate (mpsas, approximate Bortle
class) and a plain-language ceiling: what the Milky Way, naked-eye and
telescope views are like under that sky. This is a satellite-data estimate,
not a field measurement — say so.

Args:
    lat: Latitude in decimal degrees (-90..90).
    lon: Longitude in decimal degrees (-180..180).

Returns {light_pollution:{bortle_approx, mpsas, ceiling:{label, milky_way,
naked_eye, telescope}, note}, attribution}.
ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description doesn't repeat safety info. It adds value by clarifying the estimate is satellite-based and the ceiling is a plain-language summary, which is behavioral context beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections, a usage example, and parameter list. A bit verbose in the returns section but every sentence adds value. Could be slightly tighter, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-param tool with good annotations, the description covers purpose, usage, and return structure. It lacks output schema but provides a literal return example. It's adequately complete, only missing edge cases like invalid coordinates, which are likely handled by schema validation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description explains the two parameters (lat, lon) with ranges and types, adding meaning beyond the schema's bare type definitions. This fully compensates for the low coverage, though it could mention error handling or precision.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the tool's function: estimating light pollution at a given point, returning Bortle class and visibility. It differentiates from siblings by focusing on a point-specific estimate, contrasting with tools like find_dark_sky_sites or get_tonight_agenda.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear use cases ('how dark is the sky at X', 'can I see the Milky Way from X') and explicitly states it's a satellite estimate, not a field measurement. However, it does not explicitly mention when not to use it or alternatives, though sibling names suggest context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stargazing_conditionsA
Read-only
Inspect

Score the next nights for stargazing at a location (0-100 per night).

Use for "when should I stargaze this week near X", "is Saturday any good
for the Milky Way", trip planning. Each night combines the three-layer
cloud-cover forecast, moon illumination and up-fraction, and the
astronomical-darkness window; `best_window` names the best upcoming night.
Also returns the location's light-pollution estimate (approximate Bortle
class + what's visible at that darkness).

Args:
    lat: Latitude in decimal degrees (-90..90). You know city coordinates — pass them.
    lon: Longitude in decimal degrees (-180..180).
    nights: How many nights ahead to score, 1-16 (default 7; forecasts
        beyond ~7 nights are increasingly uncertain).

Returns {timezone, light_pollution, nights:[{date, darkness, moon, cloud,
score:{value, band, summary}}], best_window, uncertainty_note, attribution}.
Present scores/verdicts verbatim; skies beyond ~7 days are provisional.
ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
nightsNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond that: how scores are computed (three-layer cloud-cover, moon illumination, darkness window), the inclusion of a light-pollution estimate, and the uncertainty caveat ('forecasts beyond ~7 nights are increasingly uncertain'). It also instructs the agent to 'Present scores/verdicts verbatim' and notes that skies beyond 7 days are provisional, which are valuable behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and appropriately sized for the tool's complexity. It opens with the core purpose, follows with usage examples and calculation details, then provides a clear Args section and a compact Return structure. No sentence is wasted, and it remains readable despite its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing the return fields ({timezone, light_pollution, nights:[...], best_window, uncertainty_note, attribution}). It also covers edge cases like uncertainty, provisional data, and the instruction to present scores verbatim. This makes the tool fully understandable in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no descriptions (0% coverage), so the description must fully explain parameters. It does: lat as 'decimal degrees (-90..90)', lon similarly, and nights with range, default, and uncertainty note. This gives the agent all necessary semantic information beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Score the next nights for stargazing at a location (0-100 per night).' It uses a specific verb ('score') and identifies the resource ('stargazing conditions') and scope ('at a location'). It distinguishes itself from sibling tools by emphasizing per-night scoring that combines cloud cover, moon, and darkness window, while siblings handle site finding, aurora, or light pollution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage scenarios: 'Use for "when should I stargaze this week near X", "is Saturday any good for the Milky Way", trip planning.' This gives clear context for when to use the tool. However, it does not explicitly mention alternatives or conditions when not to use it, so it falls 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.

get_tonight_agendaA
Read-only
Inspect

Get tonight's stargazing plan for a location: score, darkness window, and what to observe.

Use when the user asks "what can I see tonight" / "is tonight worth going
out". Returns tonight's sky score and darkness window plus a ranked agenda
of observing targets appropriate for the location's sky darkness.

Args:
    lat: Latitude in decimal degrees (-90..90).
    lon: Longitude in decimal degrees (-180..180).

Returns {timezone, light_pollution, tonight:{date, darkness, weather,...},
targets/agenda entries, attribution}. Report as returned.
ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read. The description adds context about returning a ranked agenda and 'report as returned' but does not detail aspects like network calls, timezone handling, or any limitations. With good annotations, a 3 is appropriate, adding some value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with a brief summary, usage context, args, and return format. Each section adds value. It could be slightly more concise but is not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 simple params, no output schema, and annotations cover safety, the description provides a clear return structure including the fields returned. It adequately explains the input and high-level output, but it does not elaborate on the 'weather' or 'darkness' fields or the agenda possibilities, leaving some ambiguity for a tool that returns complex structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, but the description provides clear meaning for lat and lon ('Latitude in decimal degrees (-90..90)') and 'Longitude in decimal degrees (-180..180)'. This goes beyond the schema, which only names them. Given only two simple params, this is adequate, though it doesn't add additional format details beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get'), a clear resource ('tonight's stargazing plan'), and includes the key elements: sky score, darkness window, and observing targets. It distinguishes from siblings by focusing on the 'tonight' agenda for a location, but it does not explicitly differentiate from similar siblings like get_stargazing_conditions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: when the user asks 'what can I see tonight' or 'is tonight worth going out'. This clearly differentiates from siblings, which likely focus on broader conditions or forecasts. No exclusions provided but context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources