SE

Seamark

app.seamark/seamark

Personal sailing voyage log: trips, legs, ships, crew and GPX tracks with honest statistics.

Yes, your AI can use this right now.Answered a live MCP handshake in 889 ms with no sign-in needed and exposes 13 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://seamark.app/mcp

13 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
whoamiread-only

The authenticated caller's own profile (id, email, name, language). Takes no arguments. IDs are 6-character case-sensitive alphanumeric strings. Timestamps are UTC ISO 8601. Distances are integer meters. Durations are integer seconds.

trip_readread-only

Read the caller's voyages: list (the caller's OWN log), list the trips others shared with the caller (list_shared), get one trip, get its combined map, and get its public share link (get_share). `get` composes trip metadata with its crew, charter, and legs (there is no separate crew or charter read). `map` returns a GeoJSON FeatureCollection with one feature per mappable leg — track-backed, or man

trip_writecan modify

Change the caller's own voyages: create, update, delete, replace the full crew set (set_crew, PUT semantics), set or clear the charter (set_charter — a null charter clears it), announce the trip to its crew by email (announce), and turn its public link on or off (create_share, revoke_share). Charter price/deposit are integer minor units plus an ISO 4217 currency code — never a float. Inviting a cr

ship_readread-only

Read the caller's boats — a reusable, per-owner registry: list them all, or get one by id. The optional `flag` field is a ship's flag state as an uppercase ISO 3166-1 alpha-2 country code (e.g. "HR", "CZ"), or null. The optional `hullType` is 'monohull', 'catamaran' or 'trimaran', or null when unknown. IDs are 6-character case-sensitive alphanumeric strings. Timestamps are UTC ISO 8601. Distances

ship_writecan modify

Create, update or delete one of the caller's boats. The optional `flag` field is a ship's flag state as an uppercase ISO 3166-1 alpha-2 country code (e.g. "HR", "CZ"), or null. The optional `hullType` is 'monohull', 'catamaran' or 'trimaran', or null when unknown. Sending null for `flag` or `hullType` clears it. IDs are 6-character case-sensitive alphanumeric strings. Timestamps are UTC ISO 8601.

person_readread-only

Read the caller's private address book of people — crew and contacts: list them all, or get one by id. Personal data (birth date, passport) is never shared across users. `linkedAccount` reports whether this person has accepted an invitation and is linked to a Seamark account. `isSelf` marks the ONE person in the caller's book that is the caller, so voyages with them on the crew list count as the c

person_writecan modify

Change the caller's private address book of people — crew and contacts (create, update, delete, unlink_account, mark_self, unmark_self, invite, accept_invitation). Personal data (birth date, passport) is never shared across users. `linkedAccount` reports whether this person has accepted an invitation and is linked to a Seamark account. `isSelf` marks the ONE person in the caller's book that is the

leg_readread-only

Read a trip's ordered legs: list them, or get one by id. A leg's `statsSource` is 'track' when its stats, coordinates and times are computed from a GPX track, 'manual' otherwise. On a trip someone else shared with the caller, `get` reads a leg but `list` does not — its legs are in `trip_read`'s `get`. The weather fields are hand-entered observations, except the wind pair when `weatherSource` is 'o

leg_writecan modify

Change a trip's ordered legs: create, update, delete, reorder (a full leg-id permutation, reassigning seq 1..N), and fill a leg's wind from a weather service (fetch_weather). A leg backed by a track (statsSource: 'track') rejects an update that touches any computed stats/coordinate/time field with a stats_readonly error — its startName/endName/notes stay editable regardless. The weather fields are

track_readread-only

Read a leg's GPX track: get the current track, and audit every kept/dropped point with its drop reason. Audit results are paged with offset/limit; a long track has many points. On a trip someone else shared with the caller, `get` reads the track; the audit stays the owner's. IDs are 6-character case-sensitive alphanumeric strings. Timestamps are UTC ISO 8601. Distances are integer meters. Duration

track_writecan modify

Change a leg's GPX track: import raw GPX text (inline, capped at 5 Mi UTF-16 code units — that is what the schema counts, so it is roughly 5 MB for plain-ASCII GPX and no less for a file full of non-ASCII names; the server-side pipeline caps are separate: 32 MB of bytes AND at most 75,000 trackpoints per file (#191) — a file over the inline cap goes through the REST upload route instead, and one o

statsread-only

The caller's lifetime logbook statistics across their whole log — the trips they own AND the trips shared with them as linked crew. Returns totals (distance in meters, moving/total time in seconds, days at sea, distinct shipmates, best sustained 1/5/10-minute speeds in knots, average speed, earliest trip date), a per-year breakdown (by trip start-date year, newest first), and a per-boat breakdown

resumeread-only

The caller's sailing résumé — the record a charter company asks for before handing over a boat: one row per voyage the caller sailed with a known role, newest first, each with start and end date, the boat (name, model, length overall in centimeters as `loaCm`, hull type, or null when the voyage has no boat), the caller's role ('skipper' or 'crew'), ports-of-call countries (ISO 3166-1 alpha-2) and

Alternatives in Other

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”