Discovery Guideο
Zyra includes a flexible discovery system to find datasets across multiple sources:
Packaged SOS catalog (offline, bundled)
Custom local catalogs (JSON)
Remote OGC endpoints: WMS (GetCapabilities) and OGC API - Records
Quick Start (CLI)ο
# SOS catalog (bundled profile)
zyra search "tsunami" --profile sos
# OGC WMS (remote only by default when remote is provided)
zyra search "Temperature" \
--ogc-wms "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities"
# OGC Records (pygeoapi demo)
zyra search "lake" \
--ogc-records "https://demo.pygeoapi.io/master/collections/lakes/items?limit=100"
# Include local results alongside remote
zyra search "Temperature" --profile sos \
--ogc-wms "https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?service=WMS&request=GetCapabilities" \
--include-local
Semantic Search (LLM)ο
Use the same LLM provider/model as the Wizard to turn natural language into a search plan:
zyra search --semantic "Find global sea surface temperature layers from NASA" --limit 10 --show-plan
βshow-plan prints both the raw plan (from the model) and the effective plan (after heuristics). The CLI then executes the plan and prints results.
Profilesο
Profiles bundle sources and scoring weights. Use --profile
with a bundled
name, or --profile-file
to load your own JSON. Bundled profiles live under
zyra.assets.profiles
:
sos
β packaged SOS cataloggibs
β NASA GIBS WMS capabilitiespygeoapi
β pygeoapi demo collections
See also: Search API and Profiles.
HTTP APIο
Endpoint: GET /v1/search
Parameters mirror the CLI flags (q
, limit
, profile
, catalog_file
,
ogc_wms
, ogc_records
, include_local
, remote_only
). Try the
interactive page at /examples
.
Offline Testingο
OGC sources accept local files to facilitate testing without network access.
# WMS capabilities (XML)
zyra search "temperature" --ogc-wms file:samples/ogc/sample_wms_capabilities.xml
# Records items (JSON)
zyra search "precip" --ogc-records file:samples/ogc/sample_records.json
API Referenceο
For module-level API docs, see:
Commands Endpoint and Capabilitiesο
Zyra exposes a rich commands index for tool discovery:
GET /commands
β JSON map of tools with metadata.GET /commands?format=list|summary
β list or summary views.GET /commands?format=grouped
β groups tools by domain (import/acquire, process/transform, visualize/render, export/disseminate/decimate, run).
Each command entry includes:
domain
: the semantic group (e.g.,visualize
).args_schema
: simple required/optional fields derived from Pydantic models (when available).example_args
: a brief example body for common tools.
Generate a static capabilities manifest for assistant workflows:
poetry run zyra generate-manifest -o src/zyra/wizard/zyra_capabilities.json
This file mirrors /commands
so assistants can ground suggestions without calling the API.