Skip to main content
Glama

Server Details

Factual sky for AIs: ISS, auroras, archives. Never confuses unexplained with extraterrestrial.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 79 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 29 tools

Disambiguation4/5

Descriptions actively disambiguate by naming the sibling tool to use instead (what_did_i_see vs identify vs which_star vs triangulate; iss_passes vs iss_city_passes; aurora vs solar vs tonight_sky vs observation_conditions). A few pairs remain close enough to misselect — especially the four 'explain a light in the sky' tools and the two ISS pass tools — but the guidance is unusually explicit.

Naming Consistency3/5

All names are lowercase snake_case, which helps, but the conventions are mixed: verb_noun (draft_sighting_report, cancel_sighting_report, submit_sighting_report), noun-only single words (moon, solar, status, doctrine, cite, identify), and noun_noun compounds (asteroid_impact, iss_city_passes, observation_conditions, hatch_stats). No single predictable pattern lets an agent guess a name.

Tool Count2/5

29 tools is above the comfortable range for a single public server, and several are narrow one-liners (moon, status, cite, capabilities, sighting_report_limits). The surface spans many subdomains — satellite passes, space weather, UAP report submission, cultural astronomy, and pure physics calculators (hawking_black_hole, drake_equation) — which inflates the count beyond the core purpose.

Completeness4/5

Core lifecycles are covered: report draft → submit → cancel → limits, plus a broad observational surface (satellites, Moon, planets, aurora, space weather, historical archives, explanations). Gaps are acknowledged rather than accidental (no clouds/light pollution, no aircraft/drones/meteors, no way to retrieve or delete an already-submitted report), which agents can work around.

Available Tools

29 tools
asteroid_impactAsteroid impact simulatorA
Read-onlyIdempotent
Inspect

Simulate an asteroid impact: energy, air burst or crater, radii of blast, heat and earthquake effects, effects felt at a chosen distance, and how often such an object hits Earth (Collins, Melosh & Marcus 2005). Use it for 'what if' questions; for real asteroids passing today use neo_watch. Local model, no network call.

NameRequiredDescriptionDefault
presetNoKnown event that fills the parameters: tcheliabinsk (2013), toungouska (1908), apophis, chicxulub.
angle_degNoEntry angle from the horizontal in degrees (5-90, default 45).
diameter_mNoAsteroid diameter in metres (1-30000). Required unless a preset is given.
distance_kmNoEffects felt at this distance from impact
density_kg_m3NoDensity in kg/m³: 1500 cometary ice, 3000 stony rock (default), 8000 iron.
velocity_km_sNoEntry speed in km/s (11-72, default 20).

Output Schema

NameRequiredDescription
regimeNo
citationsYes
provenanceYes
energy_mt_tntNo
zones_radius_kmNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish that this is a read-only, idempotent, non-destructive, closed-world operation. The description adds useful context by identifying the local simulation model and citing Collins et al. 2005, and reinforces that no network call is made, though it does not discuss computational cost or model limitations.

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 compact and front-loaded: it starts with the core simulation purpose, then covers expected outputs, use-case routing, and local execution. Every sentence contributes useful information without redundancy.

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?

Given the rich input schema, annotations, and existing output schema, the description provides sufficient context for an agent to select and invoke the tool correctly. It explains the tool's purpose, scope, alternative, and local behavior without needing to restate return-value details.

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 description coverage is 100%, so all six parameters are already well documented in the input schema, including presets, ranges, defaults, and physical meanings. The description itself does not add parameter-specific guidance beyond the schema, so the baseline of 3 is appropriate.

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 gives a specific verb ('Simulate') and resource ('asteroid impact'), then enumerates the key outputs such as energy, air burst or crater, blast/heat/earthquake radii, local effects, and impact frequency. It also distinguishes this simulator from the real-time asteroid sibling by naming neo_watch.

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?

It explicitly states the intended use case ('what if' questions) and names the alternative for a different use case: 'for real asteroids passing today use neo_watch.' This gives clear routing guidance between related tools.

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

auroraAurora odds for a latitudeA
Read-onlyIdempotent
Inspect

Return the current geomagnetic Kp index and whether an aurora can be seen from a given latitude, with the Kp needed there (France: Kp 6 in the far north, 7 to 8 in the centre, 9 in the south). Use it for 'can I see the aurora tonight'; for the solar storms behind it (CMEs) use solar, for a full night summary use tonight_sky. Live NOAA SWPC data through the Vigi-Sky API, cached 2 minutes; clouds and light pollution are not modelled.

NameRequiredDescriptionDefault
latYesObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.

Output Schema

NameRequiredDescription
auroraNo
citationsYes
provenanceYes

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the readOnly/idempotent/openWorld annotations, the description discloses the data source (NOAA SWPC via Vigi-Sky), a 2-minute cache TTL, and two explicit model limits (clouds and light pollution not modelled). That is real behavioral context; only the response shape is left unstated, which the output schema covers.

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?

Front-loaded with what is returned, then usage routing, then data provenance and caveats — a sensible order with no filler. It is a single dense paragraph whose parenthetical France example is long but genuinely illustrative rather than redundant.

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?

With annotations covering the safety profile, an output schema present, and full parameter documentation, the description supplies the remaining essentials: scope, alternatives, data source, cache, and known non-modelled factors. Only edge-case behavior (e.g. polar latitudes or how borderline Kp is reported) is unaddressed.

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 coverage is 100%, including lat/lon ranges and the lon/lng alias note, so the baseline is 3. The description adds a useful interpretation of latitude via the France Kp-by-region example, but says nothing about how lng or lang affect the result beyond what the schema already documents.

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?

States a specific verb and two concrete outputs (current Kp index and aurora visibility for a latitude), plus the local Kp threshold needed. It is clearly distinguishable from sibling tools like solar, moon, or tonight_sky without opening any schema.

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?

Gives an explicit triggering question ('can I see the aurora tonight') and names two alternatives with the conditions that select them: solar for CMEs, tonight_sky for a full night summary. Nothing is left to inference.

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

cancel_sighting_reportCancel a drafted sighting reportA
DestructiveIdempotent
Inspect

Cancel a draft that was not submitted and erase its personal data. Use it when the witness declines or changes their mind after draft_sighting_report; a submitted report cannot be cancelled here. Repeating the call is harmless.

NameRequiredDescriptionDefault
jetonYesSecret token returned by draft_sighting_report.
action_idYesDraft id returned by draft_sighting_report.

Output Schema

NameRequiredDescription
erreurNo
statusNo
citationsYes
provenanceYes

TDQS

A4.4/5.0
Behavior4/5

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

Adds real context beyond annotations: it discloses that personal data is erased (the concrete meaning of destructiveHint) and that a submitted report is out of scope. 'Repeating the call is harmless' restates idempotentHint but in actionable language; nothing is said about irreversibility or error behavior for a missing draft id.

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?

Three short sentences, front-loaded with the core action and its consequence, then usage, then idempotency. No filler.

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?

Output schema and annotations already cover return values, destructiveness, and idempotency, and the description fills in scope and the data-erasure effect. Minor gaps remain on what happens with a stale or already-cancelled draft id.

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 description coverage is 100% and both parameters (jeton, action_id) are documented as coming from draft_sighting_report, so the description adds nothing param-specific. Baseline 3 applies.

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?

States a specific verb+resource (cancel a draft) plus the key side effect (erase personal data). It immediately distinguishes itself from submit_sighting_report by noting a submitted report cannot be cancelled here.

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?

Names the trigger condition (witness declines or changes their mind after draft_sighting_report) and an explicit exclusion (submitted reports). The alternative path is implied through the named sibling, so the agent knows when to route elsewhere.

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

capabilitiesMap of Vigi-Sky MCP serversA
Read-onlyIdempotent
Inspect

Describe what this public server offers and what the separate local server (VigiSky Sentinel, 23 tools, runs on the user's PC) adds: photo and video analysis, night watch, star-field solving. Use it when a task needs local files or a camera, which this server cannot access; for sky questions this server answers directly, call the matching tool (what_did_i_see, iss_city_passes, aurora...). Static description, no network call.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
citationsYes
provenanceYes
this_serverNo
local_serverNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and openWorld=false. The description adds useful context beyond that: it is a static description with no network call, and it clarifies that this server cannot access local files or a camera. That helps prevent incorrect invocation, though it does not add much more behavioral depth.

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 front-loaded with purpose, followed by routing guidance and a key behavioral note. It is efficient overall, though the second sentence is long and packs several clauses; it still earns its place by clarifying server boundaries.

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?

For a static, zero-parameter capabilities tool with an output schema, the description is complete: it explains what the tool describes, when to use it, when not to use it, and that no network call occurs. An agent has everything needed to select and invoke it correctly.

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 tool has zero parameters, so there is nothing parameter-level to document. The schema is empty and fully covered; the baseline for a no-parameter tool is 4, and no additional parameter semantics are needed or missing.

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?

States a specific verb and resource: it describes what the public server offers and what the separate local VigiSky Sentinel server adds (photo/video analysis, night watch, star-field solving). It also explicitly distinguishes itself from sibling tools by directing sky questions to what_did_i_see, iss_city_passes, aurora, etc.

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?

Gives explicit when-to-use guidance ('when a task needs local files or a camera') and explicit when-not guidance ('for sky questions this server answers directly, call the matching tool'), naming alternatives. The boundary between this server and the local server is unambiguous.

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

citeFind the Vigi-Sky page to citeA
Read-onlyIdempotent
Inspect

Map a user question to the single best Vigi-Sky page (or the official GEIPAN page for French UFO reports) to cite as a source, with alternatives. Use it when you need a URL to back an answer; it does not answer the question itself, so call the matching tool (aurora, iss_city_passes, what_did_i_see...) for live data. Keyword match over a fixed page catalogue, no network call.

NameRequiredDescriptionDefault
langNoLanguage of the text fields: fr (default) or en.
queryYesThe user's question or topic, in French or English, e.g. 'aurore boréale en France'.

Output Schema

NameRequiredDescription
bestNo
langNo
queryNo
citationsYes
provenanceYes
alternativesNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld=false, so the safety profile is covered. The description still adds useful mechanism: keyword match over a fixed page catalogue and no network call, which reinforces the closed-world behaviour and explains latency/consistency expectations.

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?

Three sentences, front-loaded with the mapping action, then usage, then mechanism. No filler; each clause carries distinct information.

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?

An output schema exists, so return values need no explanation. For a two-parameter, read-only lookup, the description covers scope, exclusions, sibling routing and matching mechanism completely.

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 description coverage is 100%, so both the query example and the lang enum (fr default / en) are already documented in the schema. The description adds nothing about lang and only restates that the query can be French or English, so baseline 3 applies.

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?

States a specific verb and resource: map a user question to the single best Vigi-Sky page (or the official GEIPAN page) to cite, plus that alternatives are returned. It clearly distinguishes itself from the live-data siblings it names (aurora, iss_city_passes, what_did_i_see).

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?

Gives the trigger ('when you need a URL to back an answer') and an explicit exclusion ('it does not answer the question itself, so call the matching tool ... for live data'), naming the alternative tools to route to.

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

doctrineVigi-Sky identity and methodA
Read-onlyIdempotent
Inspect

Return Vigi-Sky's identity card and method rules: founder, launch date, the book, the 'never UFO detected' rule, and the difference between the imported Hatch archive (18,116 historical cases) and Vigi-Sky's own public case files. Use it before describing Vigi-Sky or explaining its method; its counts are fixed at release, so for current numbers and API health use status, and for a page to cite use cite.

NameRequiredDescriptionDefault
langNoLanguage of the text fields: fr (default) or en.

Output Schema

NameRequiredDescription
entityNo
summaryNo
citationsYes
provenanceYes
public_consented_dossiersNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-obvious context: the counts are fixed at release and therefore stale by design, which is the key behavioral trait an agent must know to avoid misreporting figures. It stops short of describing the returned structure, but an output schema exists.

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?

Two sentences, zero waste: the first front-loads what is returned, the second front-loads the usage rule and the routing to status and cite. The content list is dense but every item is a distinct payload field the agent would otherwise have to discover.

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?

For a static read-only identity tool with an output schema, the description covers purpose, the staleness caveat, and both competing siblings. There is no gap an agent would need filled before calling it correctly.

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?

One optional parameter (lang) with 100% schema description coverage including the enum and the fr default, so the schema fully carries parameter meaning. The description says nothing about language selection, so it adds no value beyond the schema — the baseline 3 applies.

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?

States a specific verb (Return) and a precisely scoped resource (Vigi-Sky's identity card and method rules), then enumerates the exact contents: founder, launch date, the book, the 'never UFO detected' rule, and the archive-vs-own-cases distinction. This is unmistakably different from siblings like hatch_stats, status, or cite.

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?

Gives an explicit trigger ('Use it before describing Vigi-Sky or explaining its method') and names two alternatives with the conditions that select them: status for current numbers and API health, cite for a page to cite. Nothing is left to inference.

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

draft_sighting_reportDraft a sighting report (step 1 of 2)AInspect

Step 1 of 2: prepare a draft report of something seen in the sky, without publishing or sending anything. Returns a summary to show the witness, a draft id and a secret token, and, when place and time are given, the immediate explanation. Then, only after the witness explicitly agrees, call submit_sighting_report; otherwise cancel_sighting_report. Drafts expire after 10 minutes; at most 5 drafts per client per hour.

NameRequiredDescriptionDefault
azNoMeasured direction in degrees from north, if any.
elNoMeasured height above the horizon in degrees, if any.
latNoWitness latitude (rounded to about 1 km before publication).
lonNoWitness longitude (rounded to about 1 km before publication).
emailNoOptional contact email; never published.
villeNoTown or city of the observation.
prenomNoOptional first name shown on the public record; 'Anonyme' if omitted.
consentYestrue once the witness has said they want to report this sighting (asked before drafting). Their approval of the summary is a second, separate agreement, required before submit_sighting_report. If false, the tool asks for it.
date_heureNoWhen it was seen, ISO-8601 with a time zone.
descriptionYesWhat was seen, in the witness's words.

Output Schema

NameRequiredDescription
jetonNo
statusNo
action_idNo
citationsYes
provenanceYes
etape_suivanteNo
explication_immediateNo
resume_a_montrer_au_temoinNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already say non-readOnly, non-destructive, non-idempotent; the description adds what actually happens: nothing is published, a summary/draft id/secret token are returned, and the immediate explanation appears when place and time are supplied. Expiry and rate limits are disclosed, which annotations cannot convey.

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?

One tight paragraph, front-loaded with 'Step 1 of 2' and the no-publish guarantee, followed by outputs, then the branching next step and limits. Every sentence carries information.

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?

An output schema exists, yet the description still names the key returned artifacts (summary, draft id, secret token) briefly. The consent/approval workflow, alternatives, and rate limits are all present, so an agent can complete the two-step flow without guessing.

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 coverage is 100%, so the baseline is 3; the description adds a real behavioral link by noting that place and time parameters trigger the immediate explanation in the response. It does not re-explain individual fields, which is appropriate given the 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?

States a specific verb and resource ('prepare a draft report of something seen in the sky') and immediately scopes it as non-publishing. The 'step 1 of 2' framing distinguishes it from submit_sighting_report and cancel_sighting_report.

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?

Explicit sequencing: draft now, then call submit_sighting_report only after the witness explicitly agrees, otherwise cancel_sighting_report. Adds operational limits (10-minute expiry, 5 drafts per client per hour) that tell the agent when to reuse vs. redraft.

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

drake_equationDrake equation and Fermi paradoxA
Read-onlyIdempotent
Inspect

Compute the Drake equation N (detectable civilisations in the Milky Way) from your factors or a preset, and the probability that we are alone once uncertainty is spread honestly (Sandberg, Drexler & Ord 2018). Use it for 'are we alone' and Fermi-paradox questions; it says nothing about UFO sightings (for a light in the sky use what_did_i_see). Unset factors take the preset or default values. Local calculation, no network call.

NameRequiredDescriptionDefault
LNoYears a civilisation stays detectable (0-1e10).
RNoStar formation rate in the Milky Way, stars per year (0-1000).
fcNoFraction of those that emit detectable signals (0-1).
fiNoFraction of those where intelligence appears (0-1).
flNoFraction of those where life appears (0-1).
fpNoFraction of stars with planets (0-1).
neNoHabitable planets per star with planets (0-100).
presetNoSet of factors: pessimiste, gb-bas, gb-haut (Green Bank 1961 low/high), optimiste.

Output Schema

NameRequiredDescription
inputsNo
citationsYes
provenanceYes
N_civilisations_detectable_in_milky_wayNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the bar is lower. The description adds useful behavioral context beyond annotations: it is a local calculation with no network call, it cites the underlying model (Sandberg, Drexler & Ord 2018), and it explains that unset factors fall back to preset or default values.

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 front-loaded with the core computation, then immediately handles usage and alternatives, then closes with fallback and execution details. Every sentence adds distinct information with no filler.

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?

An output schema exists, so return values do not need full explanation. Given that, the description covers purpose, when to use it, what not to use it for, the alternative sibling tool, default-filling behavior, and local/no-network execution. Nothing essential for correct invocation is missing.

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 100%, so the schema already defines each factor's meaning and bounds. The description adds value by explaining the relationship between factors, presets, and defaults: 'from your factors or a preset' and 'Unset factors take the preset or default values.' This clarifies optional-parameter behavior beyond the 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 states a specific verb and resource: 'Compute the Drake equation N (detectable civilisations in the Milky Way)... and the probability that we are alone.' It also explicitly distinguishes itself from the sibling what_did_i_see, so an agent can tell it apart without inspecting the schema.

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?

It gives explicit usage guidance: 'Use it for 'are we alone' and Fermi-paradox questions; it says nothing about UFO sightings (for a light in the sky use what_did_i_see).' This names both the appropriate use case and the alternative tool for adjacent questions.

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

eclipse_20272 August 2027 total solar eclipse at a placeA
Read-onlyIdempotent
Inspect

Compute the total solar eclipse of 2 August 2027 at a place: total or partial, magnitude, contact times in local time, duration of totality and Sun height. Use it for that eclipse only: total from Spain and Morocco to Egypt, Saudi Arabia and Yemen, partial over Europe. Give a city (830 known) or coordinates. Computed locally, no network call.

NameRequiredDescriptionDefault
latNoObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
cityNoCity name, e.g. Louxor, Cadix, Tanger, Paris. Omit it to use lat/lon.
langNoLanguage of the text fields: fr (default) or en.

Output Schema

NameRequiredDescription
citationsYes
magnitudeNo
type_hereNo
provenanceYes
visible_verdictNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful context beyond that: 'Computed locally, no network call' (latency/offline behavior) and the fact that contact times are returned in local time and include Sun height, which affects how the agent should interpret results. It does not cover failure behavior for unknown cities or out-of-path coordinates.

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?

Three dense sentences, front-loaded with the verb and resource, then scope, then input forms and the offline-compute note. No sentence is redundant and nothing important is buried.

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?

The tool has rich annotations, full schema coverage and an output schema, so the description only needs to cover scope and input framing, which it does completely. Geographic coverage, eclipse-specific scope, input alternatives and local computation are all stated; return values are handled by the output schema.

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 coverage is 100%, so the baseline is 3. The description still adds meaning by framing the input choice ('Give a city (830 known) or coordinates') and disclosing the finite 830-city gazetteer, a real constraint not visible in the schema. The remaining alias and enum details are already fully covered by the 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?

States a specific verb and resource ('Compute the total solar eclipse of 2 August 2027 at a place') and enumerates the outputs (totality/partial, magnitude, contact times, duration, Sun height), so the agent knows exactly what it gets. It scopes itself to one eclipse ('Use it for that eclipse only') but never names a sibling such as solar or sky_events, so the differentiation is implicit rather than explicit.

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?

'Use it for that eclipse only' plus the geographic description (total from Spain/Morocco to Egypt, Saudi Arabia, Yemen; partial over Europe) tells the agent when this tool is relevant versus a general sun/sky tool. 'Give a city (830 known) or coordinates' gives clear input-selection guidance. It does not explicitly state when NOT to use it or name a fallback tool for other eclipses.

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

first_skiesIndigenous sky knowledge (Ciel des peuples)A
Read-onlyIdempotent
Inspect

Query Ciel des peuples: how 9 named nations (Diné, Pawnee, Inca, Maya, Mexica, Polynesia...) read the sky, with asterisms, coordinates, sources, and what is attested versus interpreted or kept private. Filter by nation, by a western constellation to compare cultures, by theme, or by free text; give lat to know which objects never rise there. Use it for cultural astronomy; for what is in the sky tonight use tonight_sky. Local curated data, no network call; never uses the generic 'the Indians'.

NameRequiredDescriptionDefault
qNoFree-text search over names and captions, e.g. 'pléiades', 'vénus'.
latNoOptional observer latitude, to flag objects that never rise there.
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.
themeNoRestrict to one use of the sky.
nationNoNation slug or name, e.g. dine (or navajo), pawnee, inca, maya, mexica, polynesie.
westernNoWestern constellation or asterism to compare across nations, e.g. orion, pleiades.

Output Schema

NameRequiredDescription
slugNo
ethicsNo
objectsNo
citationsYes
n_nationsNo
provenanceYes

TDQS

A4.6/5.0
Behavior4/5

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

Adds context beyond the annotations: 'local curated data, no network call' reinforces openWorldHint=false, and 'attested versus interpreted or kept private' discloses data-provenance and privacy semantics the agent cannot infer from structured fields. It stops short of describing result volume or pagination, but with an output schema present that is a minor gap.

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?

Front-loaded with the resource and content, then filtering, then sibling routing — no filler sentences. The semicolon-chained second sentence is dense and slightly run-on, but every clause carries information.

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 8 optional parameters, full schema coverage, annotations, and an output schema, the description supplies exactly the missing layer: what the dataset contains, what the filters mean, and which sibling to use instead. Nothing needed to call it correctly is absent.

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 coverage is 100%, so the baseline is 3; the description goes further by naming the filtering intents (nation, western constellation for cross-cultural comparison, theme, free text) and clarifying that lat answers 'which objects never rise there'. That adds interpretive meaning beyond the field descriptions, especially for lat and western.

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?

States a specific verb and resource ('Query Ciel des peuples') and enumerates the content returned: asterisms, coordinates, sources, and attestation status across 9 named nations. It explicitly contrasts itself with tonight_sky, so an agent can distinguish it from siblings without opening either schema.

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?

Gives explicit when-to-use ('cultural astronomy') and when-not ('for what is in the sky tonight use tonight_sky'), plus the four filtering axes and the special purpose of lat. The routing decision is fully determined.

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

hatch_statsHatch archive statisticsA
Read-onlyIdempotent
Inspect

Return aggregate statistics of the Hatch UFO archive (18,116 cases, 1900-2002): cases by decade and top countries. Use it for the big picture of historical reports; for cases near a place use nearby_cases. Archive data, not 2026 sightings; live read of the Vigi-Sky API.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
nNo
archiveNo
citationsYes
provenanceYes
top_countriesNo
by_decade_1900_2002No

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and openWorld, so the safety profile is covered. The description still adds meaningful context beyond them: the data provenance (archival 1900-2002 corpus, not live 2026 sightings) and that it is a live read of the Vigi-Sky API, which implies availability/latency dependence. It stops short of stating rate limits or failure behavior, so not a 5.

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?

Three short clauses, front-loaded with what is returned and its scope, followed by the routing hint and the data-provenance caveat. Every sentence carries information an agent needs; nothing is repeated from the schema or annotations.

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?

An output schema exists, so return shape needn't be described, and the description already names the two aggregate dimensions (by decade, top countries). Combined with the corpus size, date range, provenance caveat and sibling routing, nothing material is missing for a zero-parameter read tool.

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 tool takes no parameters, so the baseline is 4 and there is nothing for the description to disambiguate. It does not, and need not, explain inputs.

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?

States a specific verb and resource plus exact scope: aggregate statistics of the Hatch UFO archive, 18,116 cases from 1900-2002, broken down by decade and top countries. It explicitly separates itself from the sibling nearby_cases, so an agent can choose between the two without opening either schema.

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?

"Use it for the big picture of historical reports; for cases near a place use nearby_cases" gives an explicit when-to-use plus the named alternative and its selection condition. "Archive data, not 2026 sightings" adds a clear exclusion so the agent does not mistake it for current sighting data.

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

hawking_black_holeBlack hole calculator (Hawking)A
Read-onlyIdempotent
Inspect

Compute a black hole of any mass: event-horizon radius, Hawking temperature, entropy and evaporation time. Use it for physics questions about black holes; give exactly one of mass_kg, mass_solar or preset. Exact formulas, computed locally, no network call.

NameRequiredDescriptionDefault
presetNoKnown object: asteroid, moon, earth, sun, cygnus-x-1, sagittarius-a, m87.
mass_kgNoMass in kilograms (1e3 to 1e45).
mass_solarNoMass in solar masses (1e-25 to 1e12).

Output Schema

NameRequiredDescription
citationsYes
provenanceYes
horizon_radius_mNo
hawking_temperature_kNo
evaporation_time_yearsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world; the description reinforces the last point with 'computed locally, no network call' and 'exact formulas', which sets the expectation of deterministic, precise numeric output. It does not describe error behavior when zero or multiple mass inputs are supplied, which is the one genuinely useful disclosure missing.

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?

Two sentences: outputs first, then usage and the one-of constraint. Zero filler and nothing important is buried.

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 an output schema present, the description need not explain return values, and it already names the four computed quantities at a summary level. Combined with full schema coverage and annotation-backed safety profile, an agent has everything needed to call it correctly.

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 coverage is 100%, so the baseline is 3, but the description adds a real constraint the schema does not express: the schema marks nothing as required, yet the tool needs exactly one mass input. That one-of rule is genuinely new information for correct invocation.

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?

States a specific verb ('compute') and resource ('black hole of any mass') and enumerates exactly what is returned: event-horizon radius, Hawking temperature, entropy, evaporation time. It is clearly distinguishable from astronomy siblings like asteroid_impact or drake_equation.

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?

'Use it for physics questions about black holes' gives clear usage context, and the selection rule ('give exactly one of mass_kg, mass_solar or preset') covers the main invocation ambiguity. No explicit when-not or named alternative, but no sibling plausibly competes for this task, so the gap is minor.

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

identifyMatch a precise sighting to a satelliteA
Read-onlyIdempotent
Inspect

Check whether a precisely measured point in the sky (azimuth, elevation and exact time) matches one of about 160 bright satellites and rocket bodies within 2 degrees, also listing planets, the Moon and bright stars within 5 degrees. Use it when the witness measured the direction (compass, phone app); for a vague memory ('a light last night towards the west') use what_did_i_see, for a fixed star or planet use which_star. Returns insufficient_data when orbital elements are older than 72 hours. A match means compatible with the observation, not proven; the tool never says 'UFO detected'.

NameRequiredDescriptionDefault
azYesDirection in degrees from true north, clockwise: 0 = north, 90 = east, 180 = south, 270 = west.
elYesHeight above the horizon in degrees: 0 = horizon, 90 = straight overhead.
latYesObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.
timeYesMoment of the observation, ISO-8601 with a time zone, e.g. 2026-11-01T19:30:00Z.

Output Schema

NameRequiredDescription
answerNo
matchesNo
verdictNo
citationsYes
best_matchNo
provenanceYes
separation_degNo
rejected_matchesNo
natural_objects_within_5degNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context beyond them: the insufficient_data failure mode when orbital elements exceed 72 hours, the epistemic caveat that a match is 'compatible with the observation, not proven', and the explicit note that it never claims 'UFO detected'. These are non-obvious traits an agent needs.

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?

Three sentences, front-loaded with the core matching behavior, then usage routing, then caveats. No filler; every clause carries information an agent would otherwise have to guess.

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?

Output schema exists so return values needn't be explained, and the description still covers the key interpretive point (match = compatible, not proof) and the degraded-data failure case. Nothing essential for correct invocation is missing.

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 coverage is 100%, so az, el, lat, lon/lng, time and lang are all documented in the schema itself. The description restates 'azimuth, elevation and exact time' but adds no format or constraint detail beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource ('check whether a precisely measured point in the sky ... matches one of about 160 bright satellites and rocket bodies') with concrete scope (2 degrees for satellites, 5 degrees for planets/Moon/stars). This is clearly distinguishable from which_star and what_did_i_see, which are named.

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 says when to use it ('when the witness measured the direction (compass, phone app)') and routes two alternatives: what_did_i_see for vague memory, which_star for a fixed star or planet. Both the positive condition and the exclusions are stated.

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

iss_city_passesISS passes over a cityA
Read-onlyIdempotent
Inspect

Give the next naked-eye passes of the ISS (and Tiangong) over one of 41 French, Belgian, Swiss, UK and Irish cities, with local times, directions and a calendar feed whose alarm rings 10 minutes before each pass. Use it when the user names a city or wants an alert; for any other coordinates use iss_passes. Passes are precomputed every few hours by Vigi-Sky; with lat/lon the nearest covered city is used.

NameRequiredDescriptionDefault
latNoObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
cityNoCity name, e.g. Lyon, Bruxelles, Genève, London, Dublin. Omit it to use lat/lon instead.
langNoLanguage of the text fields: fr (default) or en.

Output Schema

NameRequiredDescription
cityNo
pageNo
passesNo
availableNo
citationsYes
provenanceYes
calendar_icsNo

TDQS

A4.7/5.0
Behavior4/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing data freshness (precomputed every few hours by Vigi-Sky), the degraded-precision path for lat/lon, and the side artifact produced (calendar feed with a 10-minute alarm). Missing only a note on latency/staleness bounds for the precomputed passes, which keeps it from a 5.

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?

Three sentences, each carrying distinct load: capability, routing rule, and data provenance. The A-to-B contrast with iss_passes is placed early where it matters most for routing.

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?

Output schema exists, so return values need no explanation; annotations cover the safety profile. With zero required parameters, the remaining risk — the agent assuming worldwide coverage or fresh computation — is exactly what the description preempts.

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 coverage is 100%, so the baseline is 3; the description earns above that by adding meaning the schema cannot express — that lat/lon is a fallback snapping to the nearest covered city, and that city must be one of a bounded, enumerated set. It does not mention the lang parameter, but the schema already handles it.

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?

States a specific verb and resource ('Give the next naked-eye passes of the ISS (and Tiangong)') plus a precise scope (41 cities across five countries). It explicitly contrasts itself with the sibling iss_passes, so an agent can route without opening either schema.

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?

Gives explicit selection criteria: use when the user names a city or wants an alert; use iss_passes for other coordinates. It also covers the in-between case (arbitrary lat/lon snaps to the nearest covered city), eliminating the main ambiguity an agent would face.

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

iss_passesSatellite passes over coordinatesA
Read-onlyIdempotent
Inspect

List the next passes of the ISS and other bright satellites over any latitude/longitude, computed with SGP4 from current orbital elements, ISS first. By default only passes visible to the naked eye (dark sky, satellite lit by the Sun). Use it for arbitrary coordinates; for a named European city with a calendar feed use iss_city_passes, to explain something already seen use what_did_i_see. Orbital elements come from the Vigi-Sky API (cached 10 minutes).

NameRequiredDescriptionDefault
latYesObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.
limitNoMaximum number of passes to return (1-30, default 3).
night_onlyNotrue (default): only passes in a dark sky with the satellite sunlit. false: include daylight passes.
include_tleNoAlso return the two-line orbital elements used for the calculation (default false).

Output Schema

NameRequiredDescription
passesNo
citationsYes
night_onlyNo
provenanceYes
n_potentially_visibleNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description adds real context on top: the default filters to naked-eye-visible passes (dark sky, satellite sunlit), ISS is ordered first, elements are cached 10 minutes from the Vigi-Sky API. It stops short of covering edge behavior such as an empty result when no pass qualifies.

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?

Four sentences, front-loaded with the capability and routing before implementation detail. Slight redundancy between 'computed with SGP4 from current orbital elements' and the closing 'Orbital elements come from the Vigi-Sky API (cached 10 minutes)' keeps it from a 5.

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 an output schema present, return values need no explanation, and all seven parameters are fully documented. The description covers what it does, defaults, data provenance and freshness, and sibling alternatives — nothing an agent needs in order to call it is missing.

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 description coverage is 100% and each parameter is already documented including defaults and aliases. The description only reinforces the night_only default ('by default only passes visible to the naked eye') and result ordering, adding no syntax or format detail beyond the schema. Baseline 3 applies.

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?

States a specific verb and resource ('List the next passes of the ISS and other bright satellites') plus the required inputs (latitude/longitude) and the computation method (SGP4). It explicitly distinguishes itself from the two nearest siblings, so an agent can pick it without opening a schema.

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?

Gives an explicit use case ('arbitrary coordinates') and names both alternatives with the conditions that select them: iss_city_passes for a named European city with a calendar feed, what_did_i_see for explaining an already-seen object. Exclusion and routing are unambiguous.

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

moonMoon phaseA
Read-onlyIdempotent
Inspect

Return the Moon's phase and illuminated percentage at a time (default now), the next full and new Moon, and what it means for observing faint objects. Use it for Moon questions; for an overall observing score use observation_conditions. Computed locally (Meeus), within about 0.5 hour of JPL ephemerides; no network call.

NameRequiredDescriptionDefault
langNoLanguage of the text fields: fr (default) or en.
timeNoMoment to compute, ISO-8601 (default now). Years 1900-2200.

Output Schema

NameRequiredDescription
phaseNo
waxingNo
citationsYes
provenanceYes
illumination_pctNo
next_full_moon_utcNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish read-only, closed-world, idempotent behavior, so the bar is lower. The description still adds genuinely new context: computed locally via Meeus, accurate to about 0.5 hour of JPL ephemerides, and no network call — useful for judging trustworthiness and latency instead of repeating safety hints.

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?

Three tight clauses: what it returns, when to use it versus the sibling, and how it is computed. Capability and routing come first, with provenance last — no filler.

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?

With an output schema present, the description needn't explain return shape, and it covers scope, alternative routing, and computation fidelity. Only minor gaps remain, such as whether the "what it means for observing faint objects" narrative text is localized by `lang`.

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 coverage is 100%, with both `time` (ISO-8601, default now, years 1900-2200) and `lang` (fr/en, fr default) fully documented. The description only restates the "default now" behavior and adds nothing about the language switch or accepted date range, so baseline 3 applies.

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?

Uses a specific verb and resource ("Return the Moon's phase and illuminated percentage") and enumerates the extra outputs — next full/new Moon and its impact on observing faint objects. This is clearly distinct from siblings like solar, sky_events or observation_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 the trigger ("Use it for Moon questions") and routes the agent elsewhere when the question is broader: "for an overall observing score use observation_conditions." The named alternative makes the boundary unambiguous.

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

nasa_apodNASA Astronomy Picture of the DayA
Read-onlyIdempotent
Inspect

Return today's NASA Astronomy Picture of the Day (today only, no past dates): title, date, image URL, explanation and credit. Use it to share today's picture; for the Sun's activity use solar, for asteroids near Earth use neo_watch. Says available=false instead of inventing a picture when NASA has not answered. Live NASA API through Vigi-Sky.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
apodNo
citationsYes
provenanceYes

TDQS

A4.7/5.0
Behavior4/5

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

Goes beyond the annotations (readOnly, openWorld, idempotent) by disclosing the failure mode: it returns available=false rather than fabricating a picture when NASA hasn't answered, which tells the agent how to handle an empty response. It also notes the live-API dependency and the fixed one-per-day cadence, though it says nothing about latency, caching, or rate limits.

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?

Three tight sentences ordered by importance: what it returns, scope, routing to alternatives, then the failure behavior. No filler and nothing repeated from the title beyond what's needed for field enumeration.

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?

For a zero-parameter, read-only lookup with an output schema and full annotation coverage, the description supplies everything else an agent needs: scope, sibling routing, and the degraded-response contract. Nothing material is missing.

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 tool takes zero parameters, so the baseline is 4. The description still adds value by pre-empting the obvious wrong assumption — that a date could be supplied — with "today only, no past dates."

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?

States a specific verb and resource ("Return today's NASA Astronomy Picture of the Day") and immediately bounds scope with "today only, no past dates," plus enumerates the returned fields. An agent can distinguish it from solar or neo_watch without opening the schema.

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?

Gives an affirmative use case ("Use it to share today's picture") and explicitly routes two adjacent needs to named siblings: "for the Sun's activity use solar, for asteroids near Earth use neo_watch." The today-only constraint also acts as an implicit when-not rule for historical queries.

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

nearby_casesHistorical UFO cases near a placeA
Read-onlyIdempotent
Inspect

List historical UFO/UAP reports from the Hatch UDB archive (1900-2002, compiled by Larry Hatch) near a point, optionally filtered by country or text. Use it for the history of a region; it is not a live feed of recent sightings (use sky_events) and geocoding is approximate. Read-only query of the Vigi-Sky API; default radius 50 km, 200 km when filtering by country or text.

NameRequiredDescriptionDefault
qNoOptional text filter on the case summary, e.g. 'cigar' or 'Valensole'.
latYesObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.
countryNoOptional country filter as written in the archive, e.g. FRANCE, USA.
radius_kmNoSearch radius in kilometres (default 50, or 200 with country/q; maximum 20000).

Output Schema

NameRequiredDescription
casesNo
queryNo
archiveNo
returnedNo
citationsYes
provenanceYes
not_vigisky_liveNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuine context beyond that: the archive's provenance and date range, approximate geocoding, and the non-obvious radius defaults (50 km, 200 km when filtering). It doesn't mention pagination or result limits, which keeps it short of a 5.

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?

Three compact sentences with the core purpose front-loaded and the exclusion plus radius caveat trailing. 'Read-only query of the Vigi-Sky API' slightly duplicates the readOnlyHint annotation, a minor redundancy in an otherwise tight description.

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 a full output schema, rich annotations, and 100% parameter coverage, the description only needs to supply scope, alternative routing, and data-quality caveats — and it does all three. Nothing required to call this tool correctly is missing.

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 description coverage is 100%, so the schema already documents lat/lng/lon aliasing, the lang enum, country format, and the radius_km default logic. The description restates the default-radius behaviour rather than adding new semantics, so the baseline 3 is appropriate.

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?

States a specific verb and resource — 'List historical UFO/UAP reports from the Hatch UDB archive (1900-2002)' — plus the spatial scoping ('near a point') and optional filters. It is immediately distinguishable from sibling tools like sky_events and hatch_stats.

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 routes the agent: 'Use it for the history of a region' and 'it is not a live feed of recent sightings (use sky_events)'. It also warns that geocoding is approximate, which is a real usage caveat an agent needs before trusting radius results.

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

neo_watchAsteroids passing Earth todayA
Read-onlyIdempotent
Inspect

List today's near-Earth asteroid close approaches from NASA NeoWs (size, miss distance, speed, hazard flag). Use it for 'which asteroids pass near Earth today'; to simulate an impact use asteroid_impact. Astronomy, not UAP; live NASA data through Vigi-Sky.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
neoNo
noteNo
citationsYes
provenanceYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description's added value is provenance: live NASA NeoWs data via Vigi-Sky, and the fact that results are scoped to 'today'. It does not mention behavior when no approaches occur or any rate/latency characteristics, which keeps it below a 5.

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?

Three short sentences, front-loaded with the verb and scope, then usage/routing, then domain disambiguation. The parenthetical field list is mildly redundant with the output schema but is short enough to earn its place as a preview.

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?

A zero-parameter read tool with a full output schema and comprehensive annotations needs only scope, source, and routing guidance — all present. Nothing an agent needs in order to call it correctly is missing.

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 tool takes zero parameters, so there is no parameter semantics to explain and the baseline applies. The description correctly implies there is nothing to supply, matching the empty 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?

Specific verb ('List') plus a precisely scoped resource ('today's near-Earth asteroid close approaches') and named data source (NASA NeoWs), with the returned fields enumerated. It also pre-emptively separates itself from the sibling asteroid_impact, so an agent can route without opening either schema.

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?

Gives an explicit trigger phrase ('which asteroids pass near Earth today') and names the alternative tool with the condition that selects it ('to simulate an impact use asteroid_impact'). It further excludes an adjacent domain ('Astronomy, not UAP'), steering the agent away from the sighting/identify siblings.

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

observation_conditionsObserving conditions scoreA
Read-onlyIdempotent
Inspect

Return a score of how good the sky is for observing at a latitude right now (night, Moon, quiet Sun). Use it to decide whether to go out; it is not a probability of seeing a UFO. For the Moon alone use moon, for aurora use aurora. Live Vigi-Sky API; clouds are not included.

NameRequiredDescriptionDefault
latYesObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.

Output Schema

NameRequiredDescription
citationsYes
provenanceYes
interpretationNo
not_ufo_probabilityNo
observation_conditions_scoreNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, openWorld), yet the description adds real context: the data source is the live Vigi-Sky API and clouds are excluded from the score. The exclusion is the key behavioral caveat an agent needs. It stops short of describing latency, error behavior, or how the score is scaled, which keeps it from a 5.

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?

Front-loaded with purpose and decision guidance, then alternatives, then caveats, in four short clauses. The UFO remark is slightly jokey but does disambiguation work against the sighting-report siblings, so it is not pure waste. A touch of personality costs it the top score.

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?

An output schema exists, so return-value detail is unnecessary. With full parameter coverage in the schema, the description supplies the remaining essentials: what drives the score, the external API source, the cloud exclusion, and which siblings to prefer.

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 description coverage is 100%, including the lat/lng/lon alias rule and enum values for lang, so the schema does the heavy lifting. The description only implies the latitude input ('at a latitude right now') and adds nothing about the optional longitude or language parameters. Baseline 3 applies.

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?

States a specific verb and resource ('return a score of how good the sky is for observing') plus the temporal scope ('right now') and the scoring inputs (night, Moon, quiet Sun). It also names the sibling tools it is not (moon, aurora), so an agent can separate it from nearby tools without opening any schema.

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?

Gives an explicit decision context ('use it to decide whether to go out') and routes to alternatives by condition: 'For the Moon alone use moon, for aurora use aurora.' It also sets a negative expectation ('not a probability of seeing a UFO'), steering agents away from sighting-report tools.

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

sighting_report_limitsSighting report counters and limitsA
Read-onlyIdempotent
Inspect

Return the number of sighting-report drafts by status and the limits that apply (per client and overall), with no personal data. Use it when draft_sighting_report or submit_sighting_report refused because of a limit.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
plafondsNo
citationsYes
compteursNo
provenanceYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, closed-world, non-destructive), so the description's job is to add context. It adds two useful traits: the response carries no personal data, and the counters break down by status alongside per-client and overall limits — behavior an agent would not infer from the annotations alone.

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?

Two sentences, zero filler. The output shape is front-loaded and the usage trigger follows immediately, so an agent scanning the first clause knows what it gets.

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?

For a zero-parameter, read-only counter tool with an output schema already present, nothing is missing: purpose, scope exclusion, and the failure condition that motivates a call are all stated. Return-value details are correctly left to the output schema.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description correctly does not waste words describing absent inputs.

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?

States a specific verb+resource ('return the number of sighting-report drafts by status and the limits that apply') with grouping (per client and overall) and an explicit exclusion ('no personal data'). This is unambiguous and clearly distinct from the sibling draft_sighting_report and submit_sighting_report, which mutate state.

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?

Gives an explicit trigger for use — 'when draft_sighting_report or submit_sighting_report refused because of a limit' — naming the exact sibling tools that route here. It does not state when not to call it, but the trigger is narrow enough that misuse is unlikely.

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

sky_eventsRecent and upcoming sky eventsA
Read-onlyIdempotent
Inspect

List Vigi-Sky's sky events: predicted bright ISS passes and Starlink trains for the next 48 hours, and clusters of witness reports with the explanation tested against them (compatible / contradicted / untestable / under review). Use it for 'what happened or will happen in the sky'; for one city's passes use iss_city_passes, for one past sighting use what_did_i_see. Public data only, no personal information.

NameRequiredDescriptionDefault
kindNoprevu = predicted passes only, signale = reported lights only; omit for both.
langNoLanguage of the text fields: fr (default) or en.
limitNoMaximum number of events (1-30, default 10).

Output Schema

NameRequiredDescription
eventsNo
availableNo
citationsYes
provenanceYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, and the description adds real context beyond them: a 48-hour prediction horizon, the verdict taxonomy (compatible / contradicted / untestable / under review), and a privacy guarantee ('public data only, no personal information'). It stops short of describing result volume or ordering, but the output schema covers return shape.

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?

Two dense sentences followed by a short privacy clause; the scope and time window are front-loaded and the sibling routing follows immediately. Nothing is repeated from the title and no sentence is filler.

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?

For a zero-required-parameter list tool with a full output schema and complete annotations, the description supplies everything an agent needs to pick it: scope, time window, content taxonomy, privacy posture, and explicit alternatives. Return values are correctly left to the output schema.

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 coverage is 100% with clear enum descriptions for kind and lang, so the schema does the heavy lifting. The description's framing of the two event families implies what 'prevu' vs 'signale' return, but it adds no syntax, defaults, or guidance for lang/limit — the baseline 3 applies.

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?

States a specific verb and resource ('List Vigi-Sky's sky events') plus the two concrete content types — predicted ISS/Starlink passes for the next 48 hours and clustered witness reports with verdict classifications. It immediately distinguishes itself from the adjacent pass-lookup and sighting-identification siblings.

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?

Gives an explicit selection rule ('Use it for what happened or will happen in the sky') and names both alternatives with the condition that routes to each: iss_city_passes for one city's passes, what_did_i_see for one past sighting. No inference required.

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

solarSolar activity and CMEsA
Read-onlyIdempotent
Inspect

Return recent coronal mass ejections (NASA DONKI) and the current Kp index. Use it to explain an aurora alert or space weather; for 'can I see the aurora from here' use aurora, which applies the latitude threshold. Live data through the Vigi-Sky API, cached 5 minutes; degrades to an explicit 'unavailable' when NASA does not answer.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
cmeNo
aurora_kpNo
citationsYes
provenanceYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare read-only, open-world, idempotent, non-destructive behavior. The description adds useful operational context beyond annotations: live data via Vigi-Sky API, 5-minute caching, and explicit 'unavailable' degradation when NASA does not answer.

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?

Three sentences, each serving a distinct purpose: what it returns, when to use it versus a sibling, and how it behaves under caching/failure. Front-loaded and zero waste.

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 an output schema and full annotations present, the description provides the remaining context an agent needs: data source, cache duration, and failure mode. Nothing essential for selecting or invoking this no-argument tool is missing.

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?

There are zero parameters, so the baseline is 4. The description does not need to explain parameter semantics and appropriately focuses on purpose and behavior instead.

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?

States a specific verb and resources: returns recent CMEs and current Kp index. It clearly distinguishes this tool from the aurora sibling by explaining that aurora applies the latitude threshold.

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?

Gives explicit use cases: explaining an aurora alert or space weather. It also names the alternative tool and the exact condition for choosing it: 'can I see the aurora from here' should use aurora.

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

statusVigi-Sky service status and countsA
Read-onlyIdempotent
Inspect

Return the health of the Vigi-Sky API, the size of the Hatch archive and the number of public observations. Use it before quoting live counts or when another tool returned an error; for identity and method use doctrine. Live, cached 30 seconds to 2 minutes.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
citationsYes
provenanceYes
mcp_versionNo
availabilityNo
public_consented_dossiersNo

TDQS

A4.2/5.0
Behavior3/5

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

The annotations already declare read-only, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description's genuinely additive detail is the caching window ('cached 30 seconds to 2 minutes'), which tells the agent figures may be stale — useful, but no mention of which values live vs. cached, rate limits, or error behavior.

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?

Two sentences, front-loaded with what is returned, then when to use it. No filler, and the caching note is appended compactly rather than as a separate paragraph.

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?

A zero-argument status tool with an output schema, so return-shape explanation is unnecessary, and the freshness caveat plus error-recovery guidance covers what an agent needs. Nothing required for correct invocation is missing.

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 tool takes no parameters, so the baseline is 4; there is nothing for the description to disambiguate. The enumeration of what comes back is helpful orientation even though the output schema already defines it.

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?

States a specific verb ('Return') and enumerates the exact resources returned: API health, Hatch archive size, public observation count. It is clearly distinct from most siblings, though it never distinguishes itself from hatch_stats, which likely overlaps on archive figures.

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?

Gives two concrete triggering conditions ('before quoting live counts' and 'when another tool returned an error') and routes a different need (identity and method) to the named sibling doctrine. An agent knows both when to call this and where to go instead.

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

submit_sighting_reportSubmit a drafted sighting report (step 2 of 2)AInspect

Step 2 of 2: send a draft prepared by draft_sighting_report to the Vigi-Sky Witness station and notify the team. Call it only after showing the summary and getting the witness's explicit agreement in the conversation. Publishes first name (or 'Anonyme'), town, date, description and position rounded to about 1 km; the email is never published. One submission per draft; at most 3 per client per day and 30 per day overall.

NameRequiredDescriptionDefault
jetonYesSecret token returned by draft_sighting_report.
action_idYesDraft id returned by draft_sighting_report.

Output Schema

NameRequiredDescription
erreurNo
statusNo
citationsYes
provenanceYes
observation_idNo

TDQS

A4.5/5.0
Behavior4/5

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

Goes well beyond annotations by disclosing rate limits (3 per client per day, 30 overall), the one-submission-per-draft rule, and exactly which fields get published plus the privacy guarantee that email is never published. Missing only what an error or a rejected submission returns, though the output schema covers return shape.

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?

Front-loaded with the step label and action, then consent precondition, then publication/limit facts. Three dense sentences with no filler; each clause carries operational meaning.

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?

Given an output schema exists, the description need not explain returns, and it fills the remaining gaps: consent workflow, draft provenance, published vs. private fields, and quota limits. That is everything an agent needs before invoking a non-idempotent, open-world publish action.

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 coverage is 100% and both parameters are documented there as items returned by draft_sighting_report. The description mentions the token/draft dependency only indirectly ("draft prepared by draft_sighting_report"), so it adds little beyond the schema — baseline 3 applies.

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?

States a specific verb (send/submit a draft) and resource (a drafted sighting report to the Vigi-Sky Witness station), and positions itself explicitly as "step 2 of 2" relative to draft_sighting_report. An agent can immediately separate this from drafting or cancelling siblings.

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?

Explicit precondition: call only after showing the summary and obtaining the witness's explicit agreement, and only for a draft produced by draft_sighting_report. The presence of sibling tools like cancel_sighting_report and sighting_report_limits is implicitly handled by naming the draft dependency and the limits inline.

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

tonight_skyTonight's sky summaryA
Read-onlyIdempotent
Inspect

One-call summary of tonight at a place: aurora chances (Kp), the next naked-eye satellite pass and cultural asterisms from Ciel des peuples. Use it for an overview; for details call aurora, iss_passes or first_skies directly, and for a score of observing conditions use observation_conditions. Combines live Vigi-Sky API data; by default ignores daylight passes. Not a UFO forecast.

NameRequiredDescriptionDefault
latYesObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.
night_onlyNotrue (default): only passes in a dark sky. false: include daylight ISS passes.

Output Schema

NameRequiredDescription
citationsYes
next_passNo
night_onlyNo
provenanceYes
not_a_ufo_forecastNo
observer_conditionNo
observer_sun_altitudeNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, open-world, non-destructive, so the safety bar is low; the description adds that results combine live Vigi-Sky API data and that daylight passes are excluded by default, plus a scope boundary ('Not a UFO forecast'). Slight redundancy with the night_only default documented in the schema keeps it from a 5, and it doesn't mention latency or data freshness.

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?

Three compact sentences, front-loaded with what it returns, followed by routing guidance, then a scope caveat. Every clause earns its place, including the closing 'Not a UFO forecast' which steers agents away from the sighting-report siblings.

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?

An output schema exists, so return values needn't be spelled out, and the description covers content, data source, defaults, and alternative tools. For an aggregate read-only overview tool, nothing an agent needs in order to call it correctly is missing.

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 description coverage is 100%, including the lon/lng alias note and the night_only default, so the schema carries parameter meaning. The description only restates the daylight-pass default and implies a location ('at a place') without adding format, alias, or fallback guidance beyond the schema — baseline 3.

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 names a specific verb and resource ('One-call summary of tonight at a place') and enumerates the exact contents returned: aurora Kp chances, next naked-eye satellite pass, cultural asterisms. This makes it immediately distinguishable from siblings like aurora, iss_passes, or observation_conditions, which each cover only one slice.

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?

It states the selection condition explicitly ('Use it for an overview') and names three alternatives for detail (aurora, iss_passes, first_skies) plus a fourth for a different need (observation_conditions for observing scores). An agent has a complete routing decision without inference.

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

triangulateHeight of an object seen by several witnessesA
Read-onlyIdempotent
Inspect

Estimate the height and distance of one object seen at the same moment by 2 to 6 witnesses, from each witness's position and line of sight, with a height range covering typical compass errors. Use it only when several people measured the same object at the same time; for a single witness use identify or what_did_i_see. Local geometry, no network call; the result is a candidate, never a proof.

NameRequiredDescriptionDefault
sightingsYes2 to 6 sightings, each {lat, lon, az, el}: witness position and measured direction of the object.

Output Schema

NameRequiredDescription
statusNo
qualityNo
height_mNo
citationsYes
provenanceYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive and closed-world, but the description still adds real context: the computation is local geometry with no network call, the range accounts for typical compass errors, and the output is explicitly "a candidate, never a proof." That uncertainty framing is the kind of disclosure annotations cannot carry; only the error/edge-case behavior for bad sightings is left unstated.

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?

Two dense sentences: capability and witness constraint first, routing to alternatives second, caveats last. No filler, no restatement of the title.

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 an output schema present and annotations carrying the safety profile, the description supplies exactly the missing pieces: when to call it, the witness-count requirement, the local-computation fact, and the epistemic caveat on results.

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 coverage is 100%, so the baseline is 3, but the description adds conceptual meaning by mapping the parameters to "each witness's position and line of sight," clarifying that lat/lon are standpoints and az/el are measurements, and it explains why 2-6 items (compass error tolerance).

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?

States a specific verb and output ("Estimate the height and distance of one object") plus the hard constraint of 2 to 6 witnesses, then names the sibling tools (identify, what_did_i_see) it is not. An agent can separate it from the other sighting-related tools without opening any schema.

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?

Gives an explicit inclusion rule ("only when several people measured the same object at the same time") and an explicit exclusion routing to alternatives for the single-witness case. The minimum-witness condition is stated twice, so there is nothing left to infer.

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

what_did_i_seeExplain a light seen in the skyA
Read-onlyIdempotent
Inspect

Explain a light someone saw, even days later: compares place and time with the ISS, Tiangong, about 160 bright satellites, planets, the Moon and bright stars, and ranks the compatible candidates. Use it for an imprecise memory; with a measured azimuth and elevation use identify, for a steady point use which_star. Window ±12 minutes, up to 10 days back and 2 days ahead; aircraft, drones, lanterns and meteors are not modelled. A match means compatible with the observation, not proven; the tool never says 'UFO detected'.

NameRequiredDescriptionDefault
azNoOptional rough direction in degrees from north (90 = east). Improves the ranking.
latYesObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.
timeYesWhen it was seen, ISO-8601 with a time zone. Up to 10 days in the past or 2 days ahead.
movingNoOptional: true if it moved across the sky, false if it stayed still. Excludes the other family of objects.

Output Schema

NameRequiredDescription
bestNo
othersNo
verdictNo
citationsYes
provenanceYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, it discloses the ±12 minute matching window, the temporal limits, the excluded object families, and the crucial epistemic caveat that a match means 'compatible with the observation, not proven' and that the tool never asserts 'UFO detected'. That caveat directly shapes how an agent should relay results.

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?

Purpose is front-loaded in the opening clause, followed by routing, scope limits, and the caveat in descending priority. It is dense but every clause carries distinct information — no restatement of the name or title.

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?

For a 7-parameter, open-world candidate-ranking tool with an output schema already covering return values, the description supplies everything an agent needs: what it compares, when to prefer it, its temporal window, its blind spots, and how to interpret a match.

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 description coverage is 100%, so parameters like lat/lng/time/az/moving are already fully documented, establishing a baseline of 3. The description adds only mild framing — that az/elevation precision is what separates this tool from identify — and does not add format or alias guidance beyond the schema (e.g. lon/lng aliasing is schema-only).

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?

States a specific verb and resource ('Explain a light someone saw') and immediately enumerates the comparison set — ISS, Tiangong, ~160 bright satellites, planets, Moon, bright stars — plus the ranking behavior. It explicitly names the siblings it is not (identify, which_star), so an agent can route without opening any schema.

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?

Gives an explicit selection rule: 'Use it for an imprecise memory; with a measured azimuth and elevation use identify, for a steady point use which_star.' It also bounds the applicable regime (up to 10 days back, 2 days ahead) and lists what is out of scope (aircraft, drones, lanterns, meteors).

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

which_starName a star or planetA
Read-onlyIdempotent
Inspect

Name the bright star, planet or Moon closest to a direction (azimuth, elevation) at a place and time, within 15 degrees. Use it for a steady point of light; for something that moved use what_did_i_see, for a precise satellite match use identify. Bright objects only (about magnitude 1.5 or brighter); refraction near the horizon is not modelled.

NameRequiredDescriptionDefault
azYesDirection in degrees from true north, clockwise: 0 = north, 90 = east, 180 = south, 270 = west.
elYesHeight above the horizon in degrees: 0 = horizon, 90 = straight overhead.
latYesObserver latitude in decimal degrees, WGS84 (north positive).
lngNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
lonNoObserver longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one.
langNoLanguage of the text fields: fr (default) or en.
timeNoMoment of the observation, ISO-8601 (default now).

Output Schema

NameRequiredDescription
bestNo
othersNo
citationsYes
provenanceYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare this is a read-only, idempotent, non-destructive, open-world lookup. The description adds meaningful behavioral limits beyond the schema: the 15-degree match radius, the brightness threshold, and that refraction near the horizon is not modelled.

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 front-loaded with the core action and scope, then immediately gives alternatives and limitations. Every sentence carries useful selection or behavior information with no filler.

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 an output schema available and rich annotations, the description does not need to explain return values or safety. It covers the key operational constraints: 15-degree matching, bright-object limitation, and unmodelled horizon refraction.

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 description coverage is 100%, so azimuth, elevation, latitude, longitude aliases, language, and time are already well documented in the input schema. The description mentions direction and place/time but adds no parameter-level detail beyond the 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 states a specific verb ("Name") and resource ("bright star, planet or Moon") plus scope (closest to a direction, within 15 degrees). It clearly distinguishes this tool from siblings by naming what_did_i_see for moved objects and identify for precise satellite matches.

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?

It explicitly says when to use this tool (steady point of light) and when to use alternatives (what_did_i_see for movement, identify for precise satellite matching). It also gives a key exclusion: bright objects only, about magnitude 1.5 or brighter.

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.

  1. 38 tool updates
    • Removedannuler_action
    • Changedasteroid_impact6 fields changed
      • addedInput schema / properties / angle_deg / description
        Added value: +"Entry angle from the horizontal in degrees (5-90, default 45)."
      • addedInput schema / properties / density_kg_m3 / description
        Added value: +"Density in kg/m³: 1500 cometary ice, 3000 stony rock (default), 8000 iron."
      • addedInput schema / properties / diameter_m / description
        Added value: +"Asteroid diameter in metres (1-30000). Required unless a preset is given."
      • addedInput schema / properties / preset / description
        Added value: +"Known event that fills the parameters: tcheliabinsk (2013), toungouska (1908), apophis, chicxulub."
      • addedInput schema / properties / velocity_km_s / description
        Added value: +"Entry speed in km/s (11-72, default 20)."
      • addedOutput schema / description
        Added value: +"Returns regime, energy_mt_tnt, hiroshima_equivalent, burst_altitude_km or crater_diameter_km, earthquake_magnitude, zones_radius_km, at_distance, average_interval_years."
    • Changedaurora5 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • addedOutput schema / description
        Added value: +"Returns aurora {kp_current, kp_needed, visible_now, user_latitude}, citations, provenance."
    • Addedcancel_sighting_report
    • Changedcapabilities1 field changed
      • addedOutput schema / description
        Added value: +"Returns this_server {n_tools, tools}, local_server {workflows, install}."
    • Changedcite4 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • addedInput schema / properties / lang / enum
        Added value: +[
        +  "fr",
        +  "en"
        +]
      • addedInput schema / properties / query / description
        Added value: +"The user's question or topic, in French or English, e.g. 'aurore boréale en France'."
      • addedOutput schema / description
        Added value: +"Returns best {url, title}, alternatives [...], citations, provenance."
    • Removedconfirmer_action
    • Changeddoctrine3 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • addedInput schema / properties / lang / enum
        Added value: +[
        +  "fr",
        +  "en"
        +]
      • addedOutput schema / description
        Added value: +"Returns entity, book, summary (in lang), public_consented_dossiers, citations, provenance."
    • Addeddraft_sighting_report
    • Changeddrake_equation10 fields changed
      • addedInput schema / properties / L / description
        Added value: +"Years a civilisation stays detectable (0-1e10)."
      • addedInput schema / properties / R / description
        Added value: +"Star formation rate in the Milky Way, stars per year (0-1000)."
      • addedInput schema / properties / fc / description
        Added value: +"Fraction of those that emit detectable signals (0-1)."
      • addedInput schema / properties / fi / description
        Added value: +"Fraction of those where intelligence appears (0-1)."
      • addedInput schema / properties / fl / description
        Added value: +"Fraction of those where life appears (0-1)."
      • addedInput schema / properties / fp / description
        Added value: +"Fraction of stars with planets (0-1)."
      • addedInput schema / properties / ne / description
        Added value: +"Habitable planets per star with planets (0-100)."
      • addedInput schema / properties / preset / description
        Added value: +"Set of factors: pessimiste, gb-bas, gb-haut (Green Bank 1961 low/high), optimiste."
      • addedInput schema / properties / preset / enum
        Added value: +[
        +  "pessimiste",
        +  "gb-bas",
        +  "gb-haut",
        +  "optimiste"
        +]
      • addedOutput schema / description
        Added value: +"Returns N_civilisations_detectable_in_milky_way, inputs, presets, reading, uncertainty_matters."
    • Changedeclipse_20276 fields changed
      • changedInput schema / properties / city / description
        Previous value: -"City name, e.g. Louxor, Cadix, Paris"New value: +"City name, e.g. Louxor, Cadix, Tanger, Paris. Omit it to use lat/lon."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84 (lon or lng)."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84 (lon or lng)."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • addedOutput schema / description
        Added value: +"Returns place, country, type_here (totale | partielle | aucune), magnitude, obscuration_pct, first_contact, totality_start, maximum, totality_end, last_contact, totality_s, sun_at_maximum, visible_verdict, safety."
    • Changedfirst_skies9 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Optional observer latitude, to flag objects that never rise there."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • addedInput schema / properties / nation / description
        Added value: +"Nation slug or name, e.g. dine (or navajo), pawnee, inca, maya, mexica, polynesie."
      • addedInput schema / properties / q / description
        Added value: +"Free-text search over names and captions, e.g. 'pléiades', 'vénus'."
      • addedInput schema / properties / theme / description
        Added value: +"Restrict to one use of the sky."
      • addedInput schema / properties / western / description
        Added value: +"Western constellation or asterism to compare across nations, e.g. orion, pleiades."
      • addedOutput schema / description
        Added value: +"Returns n_nations or nation detail {slug, objects, sections, ethics}, or search hits."
    • Removedhatch_search
    • Changedhatch_stats1 field changed
      • addedOutput schema / description
        Added value: +"Returns archive, n, by_decade_1900_2002, top_countries, citations, provenance."
    • Changedhawking_black_hole4 fields changed
      • addedInput schema / properties / mass_kg / description
        Added value: +"Mass in kilograms (1e3 to 1e45)."
      • addedInput schema / properties / mass_solar / description
        Added value: +"Mass in solar masses (1e-25 to 1e12)."
      • addedInput schema / properties / preset / description
        Added value: +"Known object: asteroid, moon, earth, sun, cygnus-x-1, sagittarius-a, m87."
      • addedOutput schema / description
        Added value: +"Returns mass_kg, mass_solar, horizon_radius_m, hawking_temperature_k, entropy_over_kb, radiated_power_w, evaporation_time_years, evaporating_today."
    • Removedhypothesis_rank
    • Changedidentify8 fields changed
      • addedInput schema / properties / az / description
        Added value: +"Direction in degrees from true north, clockwise: 0 = north, 90 = east, 180 = south, 270 = west."
      • addedInput schema / properties / el / description
        Added value: +"Height above the horizon in degrees: 0 = horizon, 90 = straight overhead."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / time / description
        Previous value: -"ISO-8601, e.g. 2026-08-14T21:30:00Z"New value: +"Moment of the observation, ISO-8601 with a time zone, e.g. 2026-11-01T19:30:00Z."
      • addedOutput schema / description
        Added value: +"Returns verdict (compatible | no_catalog_match | insufficient_data), answer, best_match, matches, natural_objects_within_5deg, rejected_matches, separation_deg."
    • Changediss_city_passes6 fields changed
      • changedInput schema / properties / city / description
        Previous value: -"City name, e.g. Lyon, Bruxelles, London"New value: +"City name, e.g. Lyon, Bruxelles, Genève, London, Dublin. Omit it to use lat/lon instead."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84 (lon or lng)."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84 (lon or lng)."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • addedOutput schema / description
        Added value: +"Returns city, passes [{when, start, end, max_el, from, highest, to, duration_min}], page, calendar_ics, available."
    • Changediss_passes8 fields changed
      • addedInput schema / properties / include_tle / description
        Added value: +"Also return the two-line orbital elements used for the calculation (default false)."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of passes to return (1-30, default 3)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • addedInput schema / properties / night_only / description
        Added value: +"true (default): only passes in a dark sky with the satellite sunlit. false: include daylight passes."
      • addedOutput schema / description
        Added value: +"Returns passes [{name, start, max_el, az_start, az_max, az_end, end, potentially_visible}], night_only, citations, provenance."
    • Changedmoon3 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / time / description
        Previous value: -"ISO-8601 (default now)"New value: +"Moment to compute, ISO-8601 (default now). Years 1900-2200."
      • addedOutput schema / description
        Added value: +"Returns time_utc, phase (phase_fr, phase_en), illumination_pct, waxing, elongation_deg, next_full_moon_utc, next_new_moon_utc, observing advice."
    • Changednasa_apod1 field changed
      • addedOutput schema / description
        Added value: +"Returns apod {title, date, url, explanation, copyright, photographer, available}."
    • Changednearby_cases8 fields changed
      • addedInput schema / properties / country
        Added value: +{
        +  "description": "Optional country filter as written in the archive, e.g. FRANCE, USA.",
        +  "type": "string"
        +}
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • addedInput schema / properties / q
        Added value: +{
        +  "description": "Optional text filter on the case summary, e.g. 'cigar' or 'Valensole'.",
        +  "type": "string"
        +}
      • addedInput schema / properties / radius_km / description
        Added value: +"Search radius in kilometres (default 50, or 200 with country/q; maximum 20000)."
      • addedOutput schema / description
        Added value: +"Returns archive, query, returned, cases [...], not_vigisky_live (always true)."
    • Changedneo_watch1 field changed
      • addedOutput schema / description
        Added value: +"Returns neo {...}, note, citations, provenance."
    • Removednights_network
    • Removedobject_lookup
    • Changedobservation_conditions5 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • addedOutput schema / description
        Added value: +"Returns observation_conditions_score (or null when unavailable), interpretation, not_ufo_probability (always true)."
    • Removedproposer_signalement
    • Addedsighting_report_limits
    • Changedsky_events4 fields changed
      • changedInput schema / properties / kind / description
        Previous value: -"prevu = predicted pass, signale = reported lights"New value: +"prevu = predicted passes only, signale = reported lights only; omit for both."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of events (1-30, default 10)."
      • addedOutput schema / description
        Added value: +"Returns events [{id, kind, t_start, verdict, url, ...}], available."
    • Changedsolar1 field changed
      • addedOutput schema / description
        Added value: +"Returns cme {...}, aurora_kp {...}, citations, provenance."
    • Removedstarlink_trains
    • Changedstatus1 field changed
      • addedOutput schema / description
        Added value: +"Returns availability, mcp_version, public_consented_dossiers, counts, citations, provenance."
    • Removedstatut_actions
    • Addedsubmit_sighting_report
    • Changedtonight_sky6 fields changed
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84. lon and lng are aliases — provide either."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • addedInput schema / properties / night_only / description
        Added value: +"true (default): only passes in a dark sky. false: include daylight ISS passes."
      • addedOutput schema / description
        Added value: +"Returns observer_sun_altitude, observer_condition, next_pass, aurora, asterisms, not_a_ufo_forecast."
    • Changedtriangulate2 fields changed
      • addedInput schema / properties / sightings / description
        Added value: +"2 to 6 sightings, each {lat, lon, az, el}: witness position and measured direction of the object."
      • addedOutput schema / description
        Added value: +"Returns status (candidate | baseline_too_short | no_intersection), height_m, height_range_m_if_sightings_off_by_2deg, distance_from_witnesses_m, quality, interpretation."
    • Changedwhat_did_i_see8 fields changed
      • changedInput schema / properties / az / description
        Previous value: -"Direction, degrees from north (90 = east)"New value: +"Optional rough direction in degrees from north (90 = east). Improves the ranking."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84 (lon or lng)."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84 (lon or lng)."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / moving / description
        Previous value: -"Was it moving across the sky?"New value: +"Optional: true if it moved across the sky, false if it stayed still. Excludes the other family of objects."
      • changedInput schema / properties / time / description
        Previous value: -"ISO-8601 with time zone, e.g. 2026-11-01T21:30:00+01:00 (default: now). Last 10 days to next 2 days."New value: +"When it was seen, ISO-8601 with a time zone. Up to 10 days in the past or 2 days ahead."
      • addedOutput schema / description
        Added value: +"Returns verdict (compatible | nothing_bright_known | unavailable), best, others, asked."
    • Changedwhich_star8 fields changed
      • addedInput schema / properties / az / description
        Added value: +"Direction in degrees from true north, clockwise: 0 = north, 90 = east, 180 = south, 270 = west."
      • addedInput schema / properties / el / description
        Added value: +"Height above the horizon in degrees: 0 = horizon, 90 = straight overhead."
      • addedInput schema / properties / lang / description
        Added value: +"Language of the text fields: fr (default) or en."
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude WGS84"New value: +"Observer latitude in decimal degrees, WGS84 (north positive)."
      • changedInput schema / properties / lng / description
        Previous value: -"Longitude WGS84 (lon or lng)."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / lon / description
        Previous value: -"Longitude WGS84 (lon or lng)."New value: +"Observer longitude in decimal degrees, WGS84 (east positive). lon and lng are aliases: give one."
      • changedInput schema / properties / time / description
        Previous value: -"ISO-8601 with time zone, e.g. 2026-11-01T21:30:00+01:00 (default: now). Last 10 days to next 2 days."New value: +"Moment of the observation, ISO-8601 (default now)."
      • addedOutput schema / description
        Added value: +"Returns best {name, kind, az, el, separation_deg}, others [...], asked, note."
  2. 17 tool updates
    • Changedannuler_action6 fields changed
      • addedInput schema / properties / action_id / minimum
        Added value: +1
      • addedInput schema / properties / jeton
        Added value: +{
        +  "description": "Jeton secret rendu par proposer_signalement.",
        +  "maxLength": 64,
        +  "minLength": 16,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "action_id"
        -]New value: +[
        +  "action_id",
        +  "jeton"
        +]
      • addedOutput schema / additionalProperties
        Added value: +true
      • addedOutput schema / properties
        Added value: +{
        +  "citations": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "erreur": {
        +    "type": "string"
        +  },
        +  "provenance": {
        +    "properties": {
        +      "algorithm": {
        +        "type": "string"
        +      },
        +      "computed_at": {
        +        "type": "string"
        +      },
        +      "limitations": {
        +        "type": "string"
        +      },
        +      "never": {
        +        "type": "string"
        +      },
        +      "source": {
        +        "type": "string"
        +      },
        +      "source_updated_at": {}
        +    },
        +    "type": "object"
        +  },
        +  "status": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Addedasteroid_impact
    • Changedconfirmer_action6 fields changed
      • addedInput schema / properties / action_id / minimum
        Added value: +1
      • addedInput schema / properties / jeton
        Added value: +{
        +  "description": "Jeton secret rendu par proposer_signalement.",
        +  "maxLength": 64,
        +  "minLength": 16,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "action_id"
        -]New value: +[
        +  "action_id",
        +  "jeton"
        +]
      • addedOutput schema / additionalProperties
        Added value: +true
      • addedOutput schema / properties
        Added value: +{
        +  "citations": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "erreur": {
        +    "type": "string"
        +  },
        +  "observation_id": {
        +    "type": "integer"
        +  },
        +  "provenance": {
        +    "properties": {
        +      "algorithm": {
        +        "type": "string"
        +      },
        +      "computed_at": {
        +        "type": "string"
        +      },
        +      "limitations": {
        +        "type": "string"
        +      },
        +      "never": {
        +        "type": "string"
        +      },
        +      "source": {
        +        "type": "string"
        +      },
        +      "source_updated_at": {}
        +    },
        +    "type": "object"
        +  },
        +  "status": {
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Addeddrake_equation
    • Addedeclipse_2027
    • Addedhawking_black_hole
    • Changedidentify3 fields changed
      • addedOutput schema / properties / answer
        Added value: +{
        +  "enum": [
        +    "satellite",
        +    "natural_object",
        +    "nothing_known",
        +    "unknown_catalog_stale"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / natural_objects_within_5deg
        Added value: +{
        +  "type": "array"
        +}
      • addedOutput schema / properties / rejected_matches
        Added value: +{
        +  "type": "array"
        +}
    • Addediss_city_passes
    • Changediss_passes1 field changed
      • changedInput schema / properties / night_only / default
        Previous value: -falseNew value: +true
    • Addedmoon
    • Changednasa_apod2 fields changed
      • addedOutput schema / properties / apod / properties / available
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / apod / properties / date / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
    • Changedproposer_signalement10 fields changed
      • addedInput schema / properties / az
        Added value: +{
        +  "description": "Direction visee, degres depuis le nord (90 = est).",
        +  "maximum": 360,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • changedInput schema / properties / date_heure / description
        Previous value: -"Date/heure ISO approximative."New value: +"Date/heure ISO, avec fuseau si possible (2026-11-01T21:30:00+01:00)."
      • addedInput schema / properties / description / maxLength
        Added value: +2000
      • addedInput schema / properties / description / minLength
        Added value: +10
      • addedInput schema / properties / el
        Added value: +{
        +  "description": "Hauteur au-dessus de l'horizon, degres.",
        +  "maximum": 90,
        +  "minimum": -10,
        +  "type": "number"
        +}
      • addedInput schema / properties / prenom / maxLength
        Added value: +80
      • addedInput schema / properties / ville
        Added value: +{
        +  "maxLength": 80,
        +  "type": "string"
        +}
      • addedOutput schema / additionalProperties
        Added value: +true
      • addedOutput schema / properties
        Added value: +{
        +  "action_id": {
        +    "type": "integer"
        +  },
        +  "citations": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "etape_suivante": {
        +    "type": "string"
        +  },
        +  "explication_immediate": {},
        +  "jeton": {
        +    "type": "string"
        +  },
        +  "provenance": {
        +    "properties": {
        +      "algorithm": {
        +        "type": "string"
        +      },
        +      "computed_at": {
        +        "type": "string"
        +      },
        +      "limitations": {
        +        "type": "string"
        +      },
        +      "never": {
        +        "type": "string"
        +      },
        +      "source": {
        +        "type": "string"
        +      },
        +      "source_updated_at": {}
        +    },
        +    "type": "object"
        +  },
        +  "resume_a_montrer_au_temoin": {
        +    "type": "object"
        +  },
        +  "status": {
        +    "enum": [
        +      "pending",
        +      "elicitation_requise",
        +      "limite_atteinte"
        +    ],
        +    "type": "string"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Addedsky_events
    • Changedstatut_actions3 fields changed
      • addedOutput schema / additionalProperties
        Added value: +true
      • addedOutput schema / properties
        Added value: +{
        +  "citations": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "compteurs": {
        +    "type": "object"
        +  },
        +  "plafonds": {
        +    "type": "object"
        +  },
        +  "provenance": {
        +    "properties": {
        +      "algorithm": {
        +        "type": "string"
        +      },
        +      "computed_at": {
        +        "type": "string"
        +      },
        +      "limitations": {
        +        "type": "string"
        +      },
        +      "never": {
        +        "type": "string"
        +      },
        +      "source": {
        +        "type": "string"
        +      },
        +      "source_updated_at": {}
        +    },
        +    "type": "object"
        +  }
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Addedtriangulate
    • Addedwhat_did_i_see
    • Addedwhich_star
  3. 4 tool updates
    • Addedannuler_action
    • Addedconfirmer_action
    • Addedproposer_signalement
    • Addedstatut_actions
  4. 20 tool updates
    • Changedaurora1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedcapabilities5 fields changed
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / local_server
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / this_server
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedcite7 fields changed
      • addedOutput schema / properties / alternatives
        Added value: +{
        +  "type": "array"
        +}
      • addedOutput schema / properties / best
        Added value: +{
        +  "type": "object"
        +}
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / lang
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / query
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changeddoctrine6 fields changed
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / entity
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / public_consented_dossiers
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / summary
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedfirst_skies1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedhatch_search12 fields changed
      • addedInput schema / anyOf
        Added value: +[
        +  {
        +    "required": [
        +      "lon"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "lng"
        +    ]
        +  }
        +]
      • addedInput schema / properties / lon / maximum
        Added value: +180
      • addedInput schema / properties / lon / minimum
        Added value: +-180
      • addedInput schema / properties / radius_km / maximum
        Added value: +20000
      • changedInput schema / required
        Previous value: -[
        -  "lat",
        -  "lon"
        -]New value: +[
        +  "lat"
        +]
      • addedOutput schema / properties / cases
        Added value: +{
        +  "type": "array"
        +}
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / filter
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / limit
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / n
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedhatch_stats7 fields changed
      • addedOutput schema / properties / archive
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / by_decade_1900_2002
        Added value: +{
        +  "type": "object"
        +}
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / n
        Added value: +{
        +  "type": [
        +    "integer",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / top_countries
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedhypothesis_rank1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedidentify1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changediss_passes1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changednasa_apod1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changednearby_cases8 fields changed
      • addedOutput schema / properties / archive
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / cases
        Added value: +{
        +  "type": "array"
        +}
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / not_vigisky_live
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / query
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / returned
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedneo_watch5 fields changed
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / neo
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / note
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changednights_network6 fields changed
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / honest
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / live
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / page
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedobject_lookup8 fields changed
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / first_skies
        Added value: +{
        +  "type": "array"
        +}
      • addedOutput schema / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / known
        Added value: +{
        +  "type": "array"
        +}
      • addedOutput schema / properties / object
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / unknown
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedobservation_conditions6 fields changed
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / interpretation
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / not_ufo_probability
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / observation_conditions_score
        Added value: +{
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedsolar5 fields changed
      • addedOutput schema / properties / aurora_kp
        Added value: +{
        +  "type": "object"
        +}
      • addedOutput schema / properties / cme
        Added value: +{
        +  "type": "object"
        +}
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedstarlink_trains5 fields changed
      • removedOutput schema / properties / doctrine
        Removed value: -{
        -  "type": "string"
        -}
      • addedOutput schema / properties / how_to_see
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / provenance / properties / never
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / trains
        Added value: +{
        +  "type": "array"
        +}
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedstatus1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
    • Changedtonight_sky1 field changed
      • addedOutput schema / required
        Added value: +[
        +  "citations",
        +  "provenance"
        +]
  5. 20 tool updates
    • First observedaurora
    • First observedcapabilities
    • First observedcite
    • First observeddoctrine
    • First observedfirst_skies
    • First observedhatch_search
    • First observedhatch_stats
    • First observedhypothesis_rank
    • First observedidentify
    • First observediss_passes
    • First observednasa_apod
    • First observednearby_cases
    • First observedneo_watch
    • First observednights_network
    • First observedobject_lookup
    • First observedobservation_conditions
    • First observedsolar
    • First observedstarlink_trains
    • First observedstatus
    • First observedtonight_sky

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Accurate astronomical catalog data and observing session planner for LLM assistants. Stops hallucinated magnitudes, coordinates, and visibility.
    3
    309 npm
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to perform read-only checks of sky positions against public astronomy archives, returning compact JSON verdicts and evidence for known transients, variables, TESS objects, asteroids, and other objects, plus observation planning and image links.
    14
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Gives AI assistants read-only access to public astronomy archives (TNS, SIMBAD, VSX, Gaia, TESS, ZTF, Rubin and others) so a sky position or object can be checked in seconds for whether it is already known. It returns compact JSON verdicts with evidence, failed sources, image links, and tonight's observable unclassified transients.
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides astronomical data including ISS tracking, moon phases, NASA APOD, near-Earth objects, exoplanets, space weather, and upcoming celestial events without requiring an API key.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources