# SATELLITE.md > An open format for satellite imagery, connectivity and telematics services, plus the math agents need to plan them. Every number comes from your request. Version 1.0. MIT. SATELLITE.md is a plain file a satellite service publishes so agents can read what it offers: imagery, connectivity or telematics, with coverage, latency, formats and how to order. The skill keeps agents inside the person's rules, and the tools do orbit, link, data and cost math on the numbers you send. No live data, no tracking, no transmitting. 18 settings in 6 groups, numbers or fixed choices only. Presets: core, recommended, strict. Settings an agent drafted count only after the person says yes: show them to the person first, and follow them only once they agree. Use at your own risk. satellite.md is provided as is, without warranty. Information here may be inaccurate, incomplete or not current, and is not verified; figures are estimates from the numbers you send and the formulas stated. Nothing here is engineering, spectrum licensing, export control, legal or financial advice. satellite.md never fetches imagery or positions, tracks people or vehicles, contacts or operates satellites, transmits, or buys anything. Check everything yourself before you act on it. Not for emergencies or safety of life. ## Format - [SATELLITE.md format, version 1](https://satellite.md/spec.md): one file a satellite-service provider publishes at https:///satellite.md: each service's kind, coverage, numbers, formats, licence and API links. satellite.md keeps no directory; agents read files on providers' own domains and check them with check_satellite_md. ## Skill - [SATELLITE.md](https://satellite.md/satellite.md): load into your agent's instructions or save as ~/.claude/skills/satellite/SKILL.md (sha256 f3720001e37ab34dcdc3ab0d1342d1ad5b7f1bc8e88595983a7ec03b7f5d7461) - [SATELLITE.md with settings](https://satellite.md/satellite.md?preset=recommended): a preset plus any settings; each setting overrides the preset ## API (no key, CORS open, nothing stored) - [check_satellite_md](https://satellite.md/api/v1/check_satellite_md?text=---%0Asatellite%3A+1%0Aupdated%3A+2026-10-01%0A---%0A%0A%23+Example+Orbital%0A%0A-+url%3A+https%3A%2F%2Fexample.com%0A-+contact%3A+https%3A%2F%2Fexample.com%2Fcontact%0A%0A%23%23+Site+broadband%0A%0A-+id%3A+site-broadband%0A-+kind%3A+connectivity%0A-+status%3A+available%0A-+coverage%3A+lat%3A-60..60%0A-+orbit%3A+leo%0A-+down_mbps%3A+150%0A-+rtt_ms%3A+45%0A-+order%3A+https%3A%2F%2Fexample.com%2Forder%0A&served_from_host=example.com): Check a SATELLITE.md file. Checks the text of a SATELLITE.md file against the format spec (errors E01-E14, warnings W01-W14, refusal rules R1-R5) and returns each service normalized: numbers as numbers, yes/no as booleans, lists as arrays. Text only: it never fetches a URL, follows a link or queries DNS. A format check, not a check of the claims in the file. Files that offer tracking people, jamming or spoofing, getting around rules, secrets, or control details are refused by line and rule, with no services returned. - [match_services](https://satellite.md/api/v1/match_services): Match services to your needs. Checks services, as check_satellite_md returns them, against your stated needs: each need is pass, fail or unknown on the file's own values, and a missing key is unknown, never pass. Place passes on global coverage, the country, a latitude band holding lat_deg, or oceans for maritime and aviation. No scores, no prices, no ranking: rows are ordered by fewest fails, then fewest unknowns, then input order. Nothing fetched or stored. - [build_satellite_md](https://satellite.md/api/v1/build_satellite_md): Build a SATELLITE.md file. Writes a SATELLITE.md file from typed fields (front matter, provider block, one section per service, optional changes), runs check_satellite_md on it and refuses rather than hand out a file that fails the checker. Returns the text, its canonical sha256, the check result, an llms.txt line and a link tag. Writing only; it never fetches the url or any link, and stores nothing. - [imagery_order](https://satellite.md/api/v1/imagery_order?area_km2=10&feature_size_m=2&min_order_km2=25&min_width_km=5&price_per_km2=10¤cy=USD&p_clear=0.3&revisit_days=2): Size an imagery order. Sizes an imagery order from an area (km2, or a bounding box snapped outward to 0.01 degrees and never echoed) and a resolution or feature size: buffered area, the coarsest resolution that still shows the feature, pixels, data volume, scenes, billed area after a minimum order and strip width, cost at your price, captures and days for your wanted chance of one clear capture (from your own cloud estimate), and web-map zooms and tiles. It sizes an order; it never says when a place will be imaged. - [network_fit](https://satellite.md/api/v1/network_fit?down_mbps=100&rtt_ms=600&loss_pct=0.1&file_gb=2): Check what a link can carry. Works out what a satellite link can carry from your numbers: throughput after overhead, the TCP window and loss limits (Mathis), which one binds, transfer time for a file, the window and number of streams needed, a simplified E-model call score with the one-way delay band, and whether a polling timeout survives the round trip. Give a measured rtt_ms, or an orbit altitude for the physics floor. Slow start is not modeled. Nothing is measured or fetched. - [telematics_budget](https://satellite.md/api/v1/telematics_budget): Budget a telematics fleet. Budgets a satellite telematics fleet from ranges, not readings: bits per field, packed message size, the decimal places a location precision needs, billing blocks and rounding waste, monthly messages, blocks and cost at your prices, battery life from datasheet numbers, store-and-forward waits, and how many location points a fleet collects and keeps. tracks_people is required and adds a notice when yes. It never takes or returns coordinates, tracks, device IDs or names. - [compare_plans](https://satellite.md/api/v1/compare_plans): Compare plans over time. Compares 2 to 10 service plans over 1 to 120 months at your own prices: total cost at several usage levels (default 0.5x, 1x and 2x), cost per unit, overage, exit cost before a minimum term, units left unserved under a hard cap, hours throttled, the month one plan overtakes another, downtime from stated availability and the combined availability with a link you already have. Never fills in a missing price. Reports the lowest cost at your numbers, not a pick. - [orbit_geometry](https://satellite.md/api/v1/orbit_geometry?altitude_km=550&min_elevation_deg=10&freq_ghz=2): Orbit geometry and dish pointing. Generic circular-orbit geometry from an altitude: period, speed, footprint, slant range, one-way delay, bent-pipe round trip, the longest pass above your minimum elevation, latitude reach and maximum Doppler. With geo_pointing, the azimuth, elevation, skew and range from one site to a geostationary slot, and whether listed obstacles block the beam. Spherical Earth, no time, date or phase. Takes no orbital elements or satellite names and never gives pass times. - [link_budget](https://satellite.md/api/v1/link_budget?freq_ghz=12&distance_km=37833&eirp_dbw=50&rx_dish_m=0.75&rx_efficiency=0.65&system_noise_temp_k=150&pointing_error_deg=0.2&rain_margin_db=3&data_rate_bps=20000000&bandwidth_hz=25000000&required_ebn0_db=6): Work out a link budget. A one-way link budget in dB from your own figures: wavelength, dish gain and beamwidth, pointing loss, free-space path loss, EIRP, G/T, C/N0, Eb/N0, margin against the modem's required Eb/N0, C/N, the Shannon theoretical ceiling and the highest rate at the required Eb/N0. Returns a loss_table for a waterfall chart. Rain is a margin you set, not a model. No band plans, country rules, interference or jamming inputs. Planning estimates only. - [build_settings](https://satellite.md/api/v1/build_settings?preset=recommended): Write your settings into the skill. Turns a preset and settings into the sections written at the top of SATELLITE.md. Every setting is a number or a fixed choice; the catalog is at https://satellite.md/api/v1/settings. Returns the sections as Markdown, the settings as JSON, a link to the skill with them written in and a one-line install. Out-of-range numbers are clamped with a note. Nothing is stored. Settings an agent drafted count only after the person says yes: show them to the person first, and follow them only once they agree. - [Settings catalog](https://satellite.md/api/v1/settings): every setting with its unit, range, options and default, plus the presets - [API index](https://satellite.md/api/v1) and [OpenAPI](https://satellite.md/openapi.json) ## MCP - https://satellite.md/mcp: Streamable HTTP, stateless, no auth. Tools: check_satellite_md, match_services, build_satellite_md, imagery_order, network_fit, telematics_budget, compare_plans, orbit_geometry, link_budget, build_settings. Prompt: satellite, with an optional preset and any setting. Resources: the skill and the settings catalog. Feedback: POST https://satellite.md/feedback with {"message": "..."} (GET it for the fields). Delivered to the site owner's feedback inbox; messages aren't stored (only short-lived, hashed counters that enforce limits). ## Terms - [Terms of use and disclaimer](https://satellite.md/terms) ## Optional - [Full text](https://satellite.md/llms-full.txt): the skill plus the tool and settings reference - [Manifest](https://satellite.md/.well-known/satellite.json)