ashfordeou avatar

Kshana PNT-resilience simulator

ashfordeou/kshana

Connects Claude to the Kshana PNT-resilience simulator, a validated engine for positioning, navigation, and timing scenarios. You get orbital propagation (SGP4 passing all 666 AIAA test vectors), inertial navigation, GNSS/INS fusion (loose, tight, UKF), and clock models including quantum sensor performance from published Allan coefficients. Run GNSS-outage scenarios from a prompt, compare quantum versus classical sensor drift, get reproducible JSON results scored against operational figures of merit. Useful when you're prototyping resilient-nav concepts, exploring alternate-PNT architectures, or need a conversational interface to orbit geometry and sensor fusion without writing scenario boilerplate. The underlying engine is Apache 2.0, professionally maintained, with ~97% test coverage and a brutally honest claims-versus-reality ledger.

GitHub stars
9
tools
35
transport
STDIO
env vars
2
last updated
Nov 12, 2026

Tools

35 tools

Public tool metadata for what this MCP can expose to an agent.

run_scenarioRun a scenario from a TOML (Tom's Obvious, Minimal Language) definition

Run a scenario from a TOML (Tom's Obvious, Minimal Language) definition

No parameter schema in public metadata yet.

list_scenario_kindsThe 92 built-in scenario kinds with descriptions + required/optional fields — so the agent can construct a valid scenario

The 92 built-in scenario kinds with descriptions + required/optional fields — so the agent can construct a valid scenario

No parameter schema in public metadata yet.

validate_scenarioPre-flight check: parse the TOML and detect its kind, without running

Pre-flight check: parse the TOML and detect its kind, without running

No parameter schema in public metadata yet.

list_example_scenariosThe bundled reference scenarios as JSON

The bundled reference scenarios as JSON

No parameter schema in public metadata yet.

get_example_scenarioThe TOML text of one bundled reference scenario, byte for byte the file under `scenarios/`

The TOML text of one bundled reference scenario, byte for byte the file under `scenarios/`

No parameter schema in public metadata yet.

report_scenarioRun a scenario and return its report

Run a scenario and return its report

No parameter schema in public metadata yet.

animate_scenarioRun a scenario and return its time series as an animation

Run a scenario and return its time series as an animation

No parameter schema in public metadata yet.

sky_geometrySky geometry under an azimuth-dependent skyline: the visible and hidden satellites, DOP, the east-north-up covariance and the horizontal error ellipse; or a skyline preset with its provenance

Sky geometry under an azimuth-dependent skyline: the visible and hidden satellites, DOP, the east-north-up covariance and the horizontal error ellipse; or a skyline preset with its provenance

No parameter schema in public metadata yet.

list_export_formatsWhich interoperability formats apply to a scenario (`czml`, `kml`, `geojson`, `stk`, `sigmf`), the reason when one does not, and the specification each writer follows

Which interoperability formats apply to a scenario (`czml`, `kml`, `geojson`, `stk`, `sigmf`), the reason when one does not, and the specification each writer follows

No parameter schema in public metadata yet.

export_interopExport a scenario as CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, STK (Systems Tool Kit) ephemeris `.e`, or SigMF (Signal Metadata

Export a scenario as CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, STK (Systems Tool Kit) ephemeris `.e`, or SigMF (Signal Metadata

No parameter schema in public metadata yet.

import_routeWrite a GeoJSON `LineString` route into a scenario that flies a waypoint track (`terrain-nav`, `terrain-slam`, `gravity-map`, `combined-altpnt`) and return the new TOML

Write a GeoJSON `LineString` route into a scenario that flies a waypoint track (`terrain-nav`, `terrain-slam`, `gravity-map`, `combined-altpnt`) and return the new TOML

No parameter schema in public metadata yet.

export_sp3Export an `orbit` scenario's constellation as SP3-c (Standard Product 3, revision c) precise ephemeris

Export an `orbit` scenario's constellation as SP3-c (Standard Product 3, revision c) precise ephemeris

No parameter schema in public metadata yet.

export_ommExport an `orbit` scenario's elements as a CCSDS (Consultative Committee for Space Data Systems) 502.0-B-2 OMM (Orbit Mean-elements Message) catalogue

Export an `orbit` scenario's elements as a CCSDS (Consultative Committee for Space Data Systems) 502.0-B-2 OMM (Orbit Mean-elements Message) catalogue

No parameter schema in public metadata yet.

export_oemExport an `orbit` scenario's state series as CCSDS OEM (Orbit Ephemeris Message) 2.0 ephemeris — the TEME (true equator, mean equinox) position *and*

Export an `orbit` scenario's state series as CCSDS OEM (Orbit Ephemeris Message) 2.0 ephemeris — the TEME (true equator, mean equinox) position *and*

No parameter schema in public metadata yet.

export_table_csvRun a scenario and return its reproducibility table as CSV (comma-separated values) — the byte-stable table the CLI (command-line interface) writes as `<scenario>.table.csv`

Run a scenario and return its reproducibility table as CSV (comma-separated values) — the byte-stable table the CLI (command-line interface) writes as `<scenario>.table.csv`

No parameter schema in public metadata yet.

export_test_benchA scenario's vehicle motion and events for a laboratory GNSS simulator (`kshana bench-export`)

A scenario's vehicle motion and events for a laboratory GNSS simulator (`kshana bench-export`)

No parameter schema in public metadata yet.

assess_receiver_logAssess a real GNSS (global navigation satellite system) receiver log for trust

Assess a real GNSS (global navigation satellite system) receiver log for trust

No parameter schema in public metadata yet.

assess_vessel_streamScore a bounded NMEA 0183 excerpt (at most 2 MiB and 20,000 epochs

Score a bounded NMEA 0183 excerpt (at most 2 MiB and 20,000 epochs

No parameter schema in public metadata yet.

assess_vessel_logA vessel's NMEA 0183 log (at most 4 MiB) as a batch run, with the session TOML stating the vessel's limits

A vessel's NMEA 0183 log (at most 4 MiB) as a batch run, with the session TOML stating the vessel's limits

No parameter schema in public metadata yet.

create_evidence_packA signed evidence pack for a window of a vessel's log (`kshana receiver-trust evidence`)

A signed evidence pack for a window of a vessel's log (`kshana receiver-trust evidence`)

No parameter schema in public metadata yet.

attach_evidence_timestampBind an RFC 3161 timestamp token (base64 of the `.tsr` bytes) to a pack, in memory (`kshana evidence attach-timestamp`)

Bind an RFC 3161 timestamp token (base64 of the `.tsr` bytes) to a pack, in memory (`kshana evidence attach-timestamp`)

No parameter schema in public metadata yet.

verify_evidence_packVerify a pack (`kshana evidence verify`)

Verify a pack (`kshana evidence verify`)

No parameter schema in public metadata yet.

generate_training_nmeaSynthetic bridge NMEA 0183 for crew training from a `nmea-scenario` TOML (jamming, position drag-off, time spoof, replay delay) with the instructor log (`kshana-nmea-training/1`)

Synthetic bridge NMEA 0183 for crew training from a `nmea-scenario` TOML (jamming, position drag-off, time spoof, replay delay) with the instructor log (`kshana-nmea-training/1`)

No parameter schema in public metadata yet.

build_interference_mapA GNSS interference map from ADS-B or AIS position reports as CSV text (at most 4 MiB)

A GNSS interference map from ADS-B or AIS position reports as CSV text (at most 4 MiB)

No parameter schema in public metadata yet.

route_exposureThe share of a route's length in degraded, not-degraded, unassessed and not-observed cells of one or more interference maps, optionally within a date range

The share of a route's length in degraded, not-degraded, unassessed and not-observed cells of one or more interference maps, optionally within a date range

No parameter schema in public metadata yet.

trust_telemetryA trust stream (JSON lines) or `receiver-trust` result rendered as Prometheus text, CEF or LEEF syslog lines or an OTLP JSON payload, with the `kshana trust-telemetry` encoders

A trust stream (JSON lines) or `receiver-trust` result rendered as Prometheus text, CEF or LEEF syslog lines or an OTLP JSON payload, with the `kshana trust-telemetry` encoders

No parameter schema in public metadata yet.

jammertest_importRead the published Jammertest test catalogue and transmission plan (NPRA/jammertest-plan, MIT) as scheduled truth (`kshana jammertest import`): one test area's slots become receiver-trust events with the catalogue id and year in each label. Planned slots, not recorded on-air t...

Read the published Jammertest test catalogue and transmission plan (NPRA/jammertest-plan, MIT) as scheduled truth (`kshana jammertest import`): one test area's slots become receiver-trust events with the catalogue id and year in each label. Planned slots, not recorded on-air t...

No parameter schema in public metadata yet.

jammertest_scoreScore a receiver log against that schedule (`kshana jammertest score`): per test the detection latency, missed alarms and time to recover, and the false alarms outside every slot. Text logs as `log`, binary (`ubx`, `sbf`) as `log_base64`. A signed pack needs a key: command lin...

Score a receiver log against that schedule (`kshana jammertest score`): per test the detection latency, missed alarms and time to recover, and the false alarms outside every slot. Text logs as `log`, binary (`ubx`, `sbf`) as `log_base64`. A signed pack needs a key: command lin...

No parameter schema in public metadata yet.

fit_imu_logAccelerometer and gyro parameters of the `hybrid` and `fusion` scenarios fitted from a stationary IMU log (CSV or EuRoC) by Allan deviation, with a ready-to-paste `[accel_classical]` table and the log's SHA-256 (`kshana imu-fit`). Text in, JSON out; MODELLED.

Accelerometer and gyro parameters of the `hybrid` and `fusion` scenarios fitted from a stationary IMU log (CSV or EuRoC) by Allan deviation, with a ready-to-paste `[accel_classical]` table and the log's SHA-256 (`kshana imu-fit`). Text in, JSON out; MODELLED.

No parameter schema in public metadata yet.

iq_signalsThe GNSS IQ layer's set-up

The GNSS IQ layer's set-up

No parameter schema in public metadata yet.

iq_infoDescribe one IQ (in-phase and quadrature) recording in the work directory without processing it

Describe one IQ (in-phase and quadrature) recording in the work directory without processing it

No parameter schema in public metadata yet.

iq_sceneGenerate a multi-satellite GNSS IQ scene into the work directory (`kshana iq scene`)

Generate a multi-satellite GNSS IQ scene into the work directory (`kshana iq scene`)

No parameter schema in public metadata yet.

iq_acquireFFT (fast Fourier transform) acquisition of one or more PRNs (pseudo-random noise codes) over a recording (`kshana iq acquire`), optionally behind front-end stages

FFT (fast Fourier transform) acquisition of one or more PRNs (pseudo-random noise codes) over a recording (`kshana iq acquire`), optionally behind front-end stages

No parameter schema in public metadata yet.

iq_trackAcquire, then track with the DLL/PLL/FLL (delay-, phase- and frequency-locked loop) bank (`kshana iq track`), with the loops from a `kshana.loop-desig

Acquire, then track with the DLL/PLL/FLL (delay-, phase- and frequency-locked loop) bank (`kshana iq track`), with the loops from a `kshana.loop-desig

No parameter schema in public metadata yet.

iq_frontendApply receiver front-end and in

Apply receiver front-end and in

No parameter schema in public metadata yet.

Sponsors

Configuration

KSHANA_MCP_IQ_DIR

Folder the GNSS IQ tools (iq_scene, iq_acquire, iq_track, iq_frontend, iq_info, iq_campaign, iq_campaign_status) may read and write; every IQ path argument is relative to it. Unset leaves the IQ file tools off; the other tools are unaffected. In a container, mount a volume and po

KSHANA_MCP_IQ_MAX_SAMPLESdefault: 50000000

Most complex samples one IQ call may generate or process (default 50000000).

Readme

Kshana: the mark, a compass reticle marking the precise instant, beside the wordmark kshana

Kshana · क्षण · the precise instant
An open-source simulator for PNT (positioning, navigation and timing) resilience.


View the full README on GitHub

Details

Repository
github.com/ashfordeou/kshana
Website
kshana.dev
Category
Mobile Development
Package
kshana-mcp
Transport
STDIO
Registry
MCP registry, active

More from ashfordeou

Related Mobile Development MCP servers

View all
1ethbak avatarIcon Composer Mcpethbak/icon-composer-mcpCLI and MCP server for creating Apple .icon bundles with Liquid Glass effects (iOS 26+)8stars
2geriy avatarcallgraphgeriy/callgraphAST call graph and code map for AI coding agents: PHP, JS, TS, Vue, Rust, Swift, Python, Go.7stars
3psychquant avatarChe Word Mcppsychquant/che-word-mcpSwift-native MCP server for Word (.docx) manipulation with 148 tools5stars
4agimaulana avatarGoogle Play Console MCPagimaulana/googleplayconsolemcpGoogle Play release lifecycle: tracks, testers, rollout, and Android Vitals.4stars
5boska avatarVoxboska/voxNative macOS MCP server for voice I/O — Swift binary, SFSpeechRecognizer + ElevenLabs TTS.1stars
6buildingapplications avatarBiltbuildingapplications/mcpAI agents autonomously build and deploy mobile apps through natural language workflows0stars