Measurements with context.
/api/v1/observations/Filter by bbox, hours and limit. Measurements that pass checks are projected into the public response.
A free observation API. Read-only MCP tools. A passive hardware bridge.
Query approved observations with their units, timestamps, licence and instrument metadata.
Maximum 100 returned observations; this is a bounded snapshot. Public queries use a 60 requests/minute IP limit.
GET /api/v1/observations/READYRun a request to inspect the real response. No API credential required. No demo records mixed into this endpoint.
/api/v1/observations/Filter by bbox, hours and limit. Measurements that pass checks are projected into the public response.
/api/v1/coverage/Coastal grid cells from the returned snapshot, with latest times and observation counts.
/api/v1/briefing/Observed ranges and freshness, linked back to source observation IDs. No inferred forecasts.
Run python -m enviromarine_mcp for stdio, or add --http for Streamable HTTP on port 8011. Uses the official MCP SDK with three read-only tools.
FreeMCP catalog publication still needs a public deployment URL, provider declaration and operator review. The OpenAPI contract is ready for that process.
A marine.read manifest, heartbeat and durable telemetry adapter connects an enrolled bridge to FreeMHS. Use a separate outbox and FreeMHS bridge token.
The adapter does not expose AIS configuration, engine controls or other actuator commands.
EM1 carries five weather values in a signed compact report. The shore relay needs no vessel upload secret. The cloud validates the signature and applies the same consent and quality checks.
Companion radios need a suitable route or configured repeaters. Software tests do not establish offshore range.
Create a vessel, register an instrument and issue a gateway credential in My fleet. Queue a report on the device before trying delivery.
POST /edge/api/v1/observations/
Authorization: Bearer $ENVIROMARINE_GATEWAY_TOKEN
Content-Type: application/json
{"observations": [{
"id": "<stable event UUID generated before queueing>",
"sensor_id": "<your registered instrument UUID>",
"observed_at": "<ISO 8601 timestamp with timezone>",
"latitude": 51.65, "longitude": -10.25,
"measurements": {"sea_surface_temperature_c": 15.1},
"simulation": false
}]}Batch size 1–50. Canonical units only. Dates up to 30 days old; five-minute future clock tolerance, withheld until observation time. Retrying identical content is safe; changing content under the same ID returns 409.