GraceDB
PYPI · GRACEDB-MCP · 2 COMPONENTS
LIGO/Virgo/KAGRA gravitational-wave alerts (GraceDB), open data (GWOSC) and GCN follow-up.
Available components
Last scanned (20 hours ago)
Scores higher than 84% of PyPI servers
Category Health and Science
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 2 of 42 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to izabelamaria24/gracedb-mcp). View diagnostics → Pass
- Clear OSI-approved license (GPL-3.0-or-later).Pass
- Actively maintained (last published 1 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 3368 tokens (~224/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
- Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Nov 26 +16
- Malware scan: unverified → pass ▲ security
- 2 Nov 26 −13
- Malware scan: pass → unverified ▼ security
- Schema quality: 199 → 224 ▼ functional
- First check of Schema quality: 100 functional
- Package version: 0.3.0 → 0.4.0 functional
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 30 Oct 26 +2
- Malware scan: unverified → pass ▲ security
- Stability: unverified → 0.13 ▲ functional
- Package version: 0.2.0 → 0.3.0 functional
- Package version: 0.2.0 → 0.2.2 functional
- Package version: 0.2.0 → 0.2.1 functional
- 26 Oct 26 61
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed pypi/gracedb-mcp@0.4.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | izabelamaria24/gracedb-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/izabelamaria24/gracedb-mcp/.github/workflows/release.yml@refs/tags/v0.4.0 |
| Rekor log index | 3638537571 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:6ca009433fe5b3a06c90cd42dae3254957dc8674042dd05f83ae739dbef533f9 |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 42 packages
| Packages resolved | 42 |
|---|---|
| Stale | 1 |
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
analyze_skymap ~302
Analyse a gravitational-wave sky map: how big the localisation is, how far away, and how likely given sky positions or telescope fields are to contain the source. Args: graceid: Superevent id, e.g. ``S230518h``. filename: Sky map to use, e.g. ``bayestar.multiorder.fits``. Defaults to the most recently uploaded one; later maps (Bilby, publication maps) are usually more accurate than the rapid BAYESTAR map. positions: Up to 100 sky positions (e.g. candidate host galaxies or optical transients) to check. fields: Up to 20 circular telescope fields; returns the probability inside each. Returns: 50% and 90% credible areas (deg^2), the overall distance estimate (Mpc), the most probable position, and the other available sky maps. For each position: the credible level (smallest credible region containing it; below 0.9 means inside the 90% region), probability density per deg^2 and, inside the 99% region, the distance along that line of sight (compare it with a galaxy's distance before calling it a likely host). For each field: the enclosed probability.
| Name | Type | Req | Description |
|---|---|---|---|
| fields | – | – | – |
| filename | – | – | – |
| graceid | string | yes | – |
| positions | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
audit_alerts ~229
Audit the public alerts of a period: how many, how many retracted, how fast, and by whom. Counts all superevents created in the period, the significant public alerts (label GCN_PRELIM_SENT) and the alerts sent only as low-significance (LOW_SIGNIF_PRELIM_SENT, O4 onwards). Breaks the significant alerts down by detector network, pipeline and search, and lists every retracted superevent (ADVNO) with the hours from creation to retraction. GraceDB does not record why an alert was retracted: read the LVK retraction circular (``search_gcn_circulars``). Args: start: Start of the period (ISO-8601 date or time, UTC); matched against superevent creation time. end: End of the period, inclusive. category: ``Production`` (real alerts), ``MDC`` (simulated) or ``Test``.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| end | string | yes | – |
| start | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
check_data_availability ~255
Check which detectors have public GWOSC strain data for a time span. Call this before ``download_strain_data``. Public strain exists only for released observing runs, and detectors are often offline, so coverage is frequently partial. Args: gps_start: Start of the span in GPS seconds. Use together with ``gps_end``. gps_end: End of the span in GPS seconds, at most 7 days after ``gps_start``. event: Instead of a span, a GraceDB superevent id (``S190814bv``) or a catalogue name (``GW150914``); checks ``window`` seconds centred on it. window: Span in seconds around ``event``. detectors: Detectors to check. Defaults to H1, L1, V1 and K1. Returns: For each detector, the public data segments and the fraction of the span they cover. ``available`` lists detectors with complete coverage, also counting the short files GWOSC publishes around catalogue events.
| Name | Type | Req | Description |
|---|---|---|---|
| detectors | – | – | – |
| event | – | – | – |
| gps_end | – | – | – |
| gps_start | – | – | – |
| window | number | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
check_data_quality ~322
Data-quality flags for each detector over a span, from GWOSC. Flags say whether data passes each search's vetoes: CBC (compact binaries), BURST, CW (continuous waves) and STOCH (stochastic background), at categories CAT1 (most basic checks) to CAT3 (strictest). ``NO_<search>_HW_INJ`` flags mark time free of hardware injections, simulated signals physically added to the detector. CW injections are weak, long-lasting signals present for much of each run; they matter for continuous-wave searches, not for transients such as compact-binary mergers. Args: gps_start: Start of the span in GPS seconds. Use together with ``gps_end``. gps_end: End of the span in GPS seconds, at most 7 days after ``gps_start``. event: Instead of a span, a GraceDB superevent id or catalogue name; checks ``window`` seconds centred on it. window: Span in seconds around ``event``. detectors: Detectors to check. Defaults to H1, L1, V1 and K1. Returns: Per detector: ``data_coverage`` (fraction of the span with public data), ``failed`` (flags vetoing part of the time that has data), hardware injections in that time, and every flag's coverage.
| Name | Type | Req | Description |
|---|---|---|---|
| detectors | – | – | – |
| event | – | – | – |
| gps_end | – | – | – |
| gps_start | – | – | – |
| window | number | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
download_event_files ~164
Download GraceDB artifacts (skymaps, p_astro, PE results, logs) for an event. These are the files GraceDB actually hosts. This is NOT raw strain data (use ``download_strain_data`` for that). Args: graceid: The superevent id, e.g. ``S230518h``. filenames: Specific filenames to download. If omitted, downloads every file attached to the superevent. Returns: A dict mapping each requested filename to the local path it was saved to, and ``resources`` mapping it to a ``gracedb://`` URI readable over MCP (files over 50 MB are local only).
| Name | Type | Req | Description |
|---|---|---|---|
| filenames | – | – | – |
| graceid | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
download_strain_data ~403
Download public strain time series around an event from GWOSC. IMPORTANT: GraceDB does not host raw strain. This tool reads the event GPS time (``t_0``) from GraceDB, then fetches open strain from GWOSC. It only succeeds for events whose data has been publicly released (past observing runs); fresh low-latency alerts will not have public strain yet. Requires the optional ``gwpy`` dependency (``pip install gracedb-mcp[strain]``). Args: graceid: The superevent id, e.g. ``S190814bv``. When ``gps_time`` is given this is only used as the output folder name (e.g. ``GW150914``). detectors: Detector prefixes to fetch, e.g. ``["H1", "L1", "V1"]``. Defaults to H1 and L1. duration: Length of the segment in seconds, centred on ``t_0``. Up to 30 s fits the short file GWOSC publishes around catalogue events (the event is not exactly centred in it); longer windows read ~100 MB hour-long files. sample_rate: Target sample rate in Hz (4096 or 16384 typically). gps_time: Centre time in GPS seconds. Skips the GraceDB lookup, which is needed for O1 events such as GW150914 (``1126259462.4``) that predate GraceDB superevents. Returns: A dict mapping each detector to the saved ``.hdf5`` strain file path, and ``resources`` mapping it to a ``gracedb://`` URI readable over MCP.
| Name | Type | Req | Description |
|---|---|---|---|
| detectors | – | – | – |
| duration | number | – | – |
| gps_time | – | – | – |
| graceid | string | yes | – |
| sample_rate | integer | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_catalog_event ~134
Source parameters for one published event, with 90% credible intervals. Args: name: A catalogue name such as ``GW150914`` or ``GW200129_065458``, or a GraceDB superevent id such as ``S190814bv`` (matched by GPS time). Returns: Masses, distance, redshift, spin, SNR, FAR and p_astro as ``{value, interval_90}``, plus the GraceDB id, available strain files, parameter-estimation sets and the GWOSC event page.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_event_labels ~107
GraceDB labels on a superevent, in the order they were applied, with meanings. Labels record the event's history: data-quality checks (DQOK, DQV), human review (ADVOK, ADVNO = retracted), injections (INJ), and which products are ready (SKYMAP_READY, PE_READY). Args: graceid: The superevent id, e.g. ``S190814bv``.
| Name | Type | Req | Description |
|---|---|---|---|
| graceid | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_event_metadata ~139
Fetch the full record and source classification for one superevent. Args: graceid: The superevent id, e.g. ``S230518h``. Returns: A dict with the raw superevent record, the available file list, the parsed source-classification probabilities (BBH / BNS / NSBH / Terrestrial) when a p_astro file has been published, and ``pipelines``: each search pipeline's best candidate (O4 onwards), so you can see which pipelines found the signal and how significant each one rated it.
| Name | Type | Req | Description |
|---|---|---|---|
| graceid | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
get_gcn_circular ~56
Full text of one GCN Circular, with its links (GCN page, ADS for citation). Args: circular_id: The circular number, e.g. ``33813``.
| Name | Type | Req | Description |
|---|---|---|---|
| circular_id | integer | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
list_observing_runs ~96
Observing runs whose data GWOSC has publicly released, oldest first. Args: gps: Optional GPS time; the answer says which released run covers it, or that it falls outside every released run (detectors off, or data not public yet). Returns: Each run's name, GPS and UTC span, detectors and dataset DOI (cite it when using the data).
| Name | Type | Req | Description |
|---|---|---|---|
| gps | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_catalog_events ~327
Search published gravitational-wave events in the GWOSC catalogues. Unlike GraceDB alerts, catalogue events are vetted detections with estimated source parameters. Each event appears once, in its newest version. Args: catalog: Restrict to one catalogue, e.g. ``GWTC-1-confident``, ``GWTC-2.1-confident``, ``GWTC-3-confident``, ``GWTC-4.0``. Omit for all. gps_start: Earliest event GPS time. Optional. gps_end: Latest event GPS time. Optional. min_snr: Minimum network matched-filter SNR (louder signals are clearer). min_p_astro: Minimum probability of astrophysical origin, 0-1. min_total_mass: Minimum total source-frame mass in solar masses. max_total_mass: Maximum total source-frame mass in solar masses. max_distance_mpc: Maximum luminosity distance in megaparsecs. max_results: Maximum number of events to return (newest first). Returns: ``count`` of all matches and up to ``max_results`` event summaries with masses, distance, redshift, spin (chi_eff), SNR, FAR and p_astro.
| Name | Type | Req | Description |
|---|---|---|---|
| catalog | – | – | – |
| gps_end | – | – | – |
| gps_start | – | – | – |
| max_distance_mpc | – | – | – |
| max_results | integer | – | – |
| max_total_mass | – | – | – |
| min_p_astro | – | – | – |
| min_snr | – | – | – |
| min_total_mass | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_gcn_circulars ~481
Search NASA GCN Circulars: rapid reports from telescopes, satellites and neutrino detectors about transients, including follow-up of gravitational-wave alerts. Reports name gravitational-wave events by their GraceDB id (``S230518h``), so a catalogue name such as ``GW190814`` is also searched as ``S190814bv``. Args: event: An event name: GraceDB id (``S230518h``), GW name (``GW170817``), GRB (``GRB 230518A``), IceCube alert (``IceCube-261020A``), etc. Matches circulars with the name in their subject, i.e. reports about the event. query: Free search in Lucene syntax over ``subject``, ``body`` and ``submitter``, e.g. ``subject:"Fermi" AND body:"upper limit"``. Combined with ``event`` using AND when both are given. Use ``body:"S230518h"`` to also find circulars that only mention an event in passing. start_date: Only circulars submitted on or after this date (``YYYY-MM-DD``). end_date: Only circulars submitted on or before this date (``YYYY-MM-DD``). sort: ``newest`` (default) or ``relevance`` (best for well-studied events with hundreds of circulars, such as GW170817). page: Page of results, for more than ``max_results`` matches. include_bodies: Include each circular's full text (about 1-3 kB each). max_results: Circulars per page, at most 50. Returns: ``total`` matching circulars and one page of them with id, subject, event, submission time, links (GCN page, ADS for citation), and optionally the text; plus ``archive_url`` to see the same search on the GCN website.
| Name | Type | Req | Description |
|---|---|---|---|
| end_date | – | – | – |
| event | – | – | – |
| include_bodies | boolean | – | – |
| max_results | integer | – | – |
| page | integer | – | – |
| query | – | – | – |
| sort | string | – | – |
| start_date | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
search_superevents ~286
Search GraceDB superevents, newest first. Args: start: Inclusive lower bound on creation time (ISO-8601, e.g. ``2023-05-01`` or ``2023-05-01T00:00:00``). Optional. end: Inclusive upper bound on creation time (same format). Optional. max_far: Maximum false-alarm rate in Hz. Lower = more significant. A common "confident detection" threshold is ``3.2e-8`` (~1 per year). Optional. min_confidence: Minimum astrophysical probability in [0, 1], computed as ``1 - P(Terrestrial)`` from each event's p_astro file. Applied as a post-filter (requires extra fetches per event). Optional. category: ``Production`` (real alerts), ``MDC`` (simulated signals injected continuously, useful for testing) or ``Test``. max_results: Maximum number of superevents to return. Returns: A dict with the resolved ``query`` string and a list of matching ``superevents``.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | – |
| end | – | – | – |
| max_far | – | – | – |
| max_results | integer | – | – |
| min_confidence | – | – | – |
| start | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
utc_to_gps ~67
Convert an ISO-8601 UTC timestamp to GPS seconds (handy for building queries). Args: iso_timestamp: e.g. ``2015-09-14T09:50:45`` (UTC assumed if no tz given).
| Name | Type | Req | Description |
|---|---|---|---|
| iso_timestamp | string | yes | – |
Structured output declared, but exposes no named fields.
No examples provided.
How do I install the GraceDB MCP server?
GraceDB runs locally as a PyPI package, launched with uvx gracedb-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · gracedb-mcp
claude mcp add izabelamaria24-gracedb-mcp -- uvx gracedb-mcp
What is the GraceDB MCP server?
GraceDB is an MCP server listed in the public MCP registry as io.github.izabelamaria24/gracedb-mcp. LIGO/Virgo/KAGRA gravitational-wave alerts (GraceDB), open data (GWOSC) and GCN follow-up. This page covers its PyPI package (gracedb-mcp).
Is the GraceDB MCP server safe to use?
GraceDB scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the GraceDB MCP server expose?
GraceDB exposes 15 tools: search_superevents, get_event_metadata, download_event_files, get_event_labels, audit_alerts, and 10 more. Their descriptions and schemas cost roughly 3,368 tokens of context every time the server is loaded.
Is the GraceDB MCP server still maintained?
GraceDB is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the GraceDB MCP server under?
GraceDB declares the GPL-3.0-or-later licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.