_ registry / mcp streamable-http · checked 1h ago

aiscast

https://ais.openwaters.io

Registry code: 396af13d956cc037

api record

Open Waters AIS (https://openwaters.io/ais/) is the open AIS network: live vessel positions from government feeds, partner aggregates, and volunteer receivers, deduplicated into one picture.

- Live terrestrial coverage is strongest in the Nordics and wherever volunteer receivers are; elsewhere positions come from partner aggregates, mostly AISHub, which runs about a minute behind. get_coverage reports each source's current delay, also published at https://ais.openwaters.io/v1/stats. Where no feed or receiver hears, there is nothing. Call get_coverage before saying a region has no traffic.

endpoint
https://ais.openwaters.io/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is aiscast live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is aiscast free to use?
Yes — the hub reached it with no key and no payment.
What tools does aiscast have?
6 tools: get_vessels, search_vessels_by_name, find_vessels_in_area, find_vessels_near, get_vessel_track, get_coverage.
Is aiscast safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.5%

90 days 99.4%· all time 99.4%

latency
230ms

last good check

priced tools
0

of 6 tools

_ answered our checks, 90 days 670 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· fetch failed
  • degraded → live
_ what it is for
used for
  • find vessels in a map area
  • get live position of a ship by mmsi
  • get a vessel track over time
  • search vessels by name
takes → gives
text, data → data
tools
6 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 6 tools
1 open 5 never probed 1 of 6 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_coverage reads open 16h ago

    Where Open Waters AIS is hearing AIS right now: sources with their current delay, stations, freshness, and vessel counts. Pass a bounding box to learn which stations cover it and how many vessels are in it, or a station id for that station's numbers. Vessel counts cover the last 30 minutes; max_age widens them, to 7d for the last week or all for every vessel the network has heard. Call this before saying a region has no traffic.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "bbox": {
          "type": [
            "null",
            "object"
          ],
          "required": [
            "min_lat",
            "min_lon",
            "max_lat",
            "max_lon"
          ],
          "properties": {
            "max_lat": {
              "type": "number",
              "description": "north edge, degrees, -90 to 90"
            },
            "max_lon": {
              "type": "number",
              "description": "east edge, degrees, -180 to 180"
            },
            "min_lat": {
              "type": "number",
              "description": "south edge, degrees, -90 to 90"
            },
            "min_lon": {
              "type": "number",
              "description": "west edge, degrees, -180 to 180"
            }
          },
          "description": "report the stations covering this box and the vessels currently in it",
          "additionalProperties": false
        },
        "max_age": {
          "type": "string",
          "description": "count vessels heard within this long, network-wide and in bbox, instead of the last 30 minutes: a duration such as 6h, 24h, or 7d, or all for every vessel the network has heard"
        },
        "station": {
          "type": "string",
          "description": "a station id from an earlier result, for that station's numbers"
        }
      },
      "additionalProperties": false
    }
    arguments 46 lines
  • get_vessels reads unknown 9h ago

    Last known position and particulars of specific vessels by MMSI (Maritime Mobile Service Identity), or by IMO number with a feeder or partner token: the last report heard for each, however long ago, with destination, ETA, draught, and dimensions once its static data has been heard, and which identifiers match no vessel the network has heard. A vessel whose IMO number has a Wikidata item also carries its type, builder, year built, tonnage, registered dimensions, registry, home port, owner, operator, former names, and Wikipedia and Commons links from there, and a documented US vessel its service type, status, official number, registered dimensions, and tonnage from the US Coast Guard. Use search_vessels_by_name first when you only have a name.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "imo": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "integer",
            "maximum": 4294967295,
            "minimum": 0
          },
          "description": "IMO numbers to look up, counted with mmsi against the same cap; needs a feeder or partner token. Each returns up to 10 vessels that reported it, most recently heard first, and a vessel is found by IMO only once its static data has been heard"
        },
        "mmsi": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "integer",
            "maximum": 4294967295,
            "minimum": 0
          },
          "description": "MMSIs to look up; anonymous calls may pass 10 identifiers per call, a personal token 50"
        }
      },
      "additionalProperties": false
    }
    arguments 30 lines
  • search_vessels_by_name reads unknown 16h ago

    Vessels whose name contains the text, case-insensitive, among every vessel the network has heard, each with its last known position. Use to turn a name into an MMSI, then get_vessels or find_vessels_near for detail. An optional bounding box narrows the search. With a feeder or partner token, text of the form IMO 9241061 finds the vessels reporting that IMO number, and a bare seven-digit number finds them ahead of the name matches.

    mcp-tool

    {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "bbox": {
          "type": [
            "null",
            "object"
          ],
          "required": [
            "min_lat",
            "min_lon",
            "max_lat",
            "max_lon"
          ],
          "properties": {
            "max_lat": {
              "type": "number",
              "description": "north edge, degrees, -90 to 90"
            },
            "max_lon": {
              "type": "number",
              "description": "east edge, degrees, -180 to 180"
            },
            "min_lat": {
              "type": "number",
              "description": "south edge, degrees, -90 to 90"
            },
            "min_lon": {
              "type": "number",
              "description": "west edge, degrees, -180 to 180"
            }
          },
          "description": "only vessels whose last position is inside this box",
          "additionalProperties": false
        },
        "flag": {
          "type": "string",
          "description": "only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH"
        },
        "name": {
          "type": "string",
          "description": "text to find in the vessel name, at least 2 characters, case-insensitive; with a feeder or partner token, IMO followed by an IMO number finds that IMO"
        },
        "limit": {
          "type": "integer",
          "description": "rows to return: default 50, maximum 200"
        }
      },
      "additionalProperties": false
    }
    arguments 53 lines
  • find_vessels_in_area reads unknown 16h ago

    Vessels currently inside a latitude/longitude bounding box, newest report first, with optional kind and ship-type filters. Use for what is in a port, a strait, or a stretch of coast. Anonymous calls may cover 100 square degrees per call.

    mcp-tool

    {
      "type": "object",
      "required": [
        "bbox"
      ],
      "properties": {
        "bbox": {
          "type": "object",
          "required": [
            "min_lat",
            "min_lon",
            "max_lat",
            "max_lon"
          ],
          "properties": {
            "max_lat": {
              "type": "number",
              "description": "north edge, degrees, -90 to 90"
            },
            "max_lon": {
              "type": "number",
              "description": "east edge, degrees, -180 to 180"
            },
            "min_lat": {
              "type": "number",
              "description": "south edge, degrees, -90 to 90"
            },
            "min_lon": {
              "type": "number",
              "description": "west edge, degrees, -180 to 180"
            }
          },
          "additionalProperties": false
        },
        "flag": {
          "type": "string",
          "description": "only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH"
        },
        "kind": {
          "type": "string",
          "description": "only this kind: vessel, aton (aid to navigation), base (base station), sar (search and rescue aircraft or distress beacon), or gear (fishing gear); vessel leaves out distress beacons and gear"
        },
        "limit": {
          "type": "integer",
          "description": "rows to return: default 50, maximum 200"
        },
        "types": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "integer",
            "maximum": 255,
            "minimum": 0
          },
          "description": "only these ITU ship type codes, e.g. 30 fishing, 36 sailing, 37 pleasure craft, 52 tug, 60 passenger, 70 cargo, 80 tanker; a code ending in 0 matches its decade, so 70 matches 70 to 79"
        }
      },
      "additionalProperties": false
    }
    arguments 61 lines
  • find_vessels_near reads unknown 9h ago

    Vessels within a radius (default 10 NM, maximum 50) of a point or of another vessel's last known position, nearest first, each with distance and bearing from the centre. Use for what is near this position or what is around vessel X.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "lat": {
          "type": [
            "null",
            "number"
          ],
          "description": "centre latitude, degrees; give lat and lon, or mmsi"
        },
        "lon": {
          "type": [
            "null",
            "number"
          ],
          "description": "centre longitude, degrees"
        },
        "flag": {
          "type": "string",
          "description": "only vessels flying this flag: ISO 3166-1 alpha-2, e.g. NO, FI, MH"
        },
        "kind": {
          "type": "string",
          "description": "only this kind: vessel, aton, base, sar, or gear; vessel leaves out distress beacons and gear"
        },
        "mmsi": {
          "type": "integer",
          "maximum": 4294967295,
          "minimum": 0,
          "description": "centre on this vessel's last position instead of lat and lon; the vessel itself is left out of the results"
        },
        "limit": {
          "type": "integer",
          "description": "rows to return: default 50, maximum 200"
        },
        "types": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "integer",
            "maximum": 255,
            "minimum": 0
          },
          "description": "only these ITU ship type codes; a code ending in 0 matches its decade"
        },
        "radius_nm": {
          "type": "number",
          "description": "search radius in nautical miles: default 10, maximum 50"
        }
      },
      "additionalProperties": false
    }
    arguments 54 lines
  • get_vessel_track reads unknown 9h ago

    The positions heard from one vessel over a time range, oldest first, with speed, course, and navigational status. Positions implying an impossible speed for the vessel are left out. Use for where a ship was yesterday, when it left port, or its route today. Give the vessel's mmsi, or its imo with a feeder or partner token. A call covers up to a year. By default the track is simplified by shape: the positions that hold its path, with breaks where the vessel went unheard; interval_minutes asks for even spacing instead.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "to": {
          "type": "string",
          "description": "end, RFC 3339 UTC; default now"
        },
        "imo": {
          "type": "integer",
          "maximum": 4294967295,
          "minimum": 0,
          "description": "the vessel's IMO number, instead of mmsi; needs a feeder or partner token. Follows the one vessel the IMO names: its only MMSI, or the only one heard in the last 30 days"
        },
        "from": {
          "type": "string",
          "description": "start, RFC 3339 UTC; default 24 hours before to. A call covers up to 366 days"
        },
        "mmsi": {
          "type": "integer",
          "maximum": 4294967295,
          "minimum": 0,
          "description": "the vessel's MMSI; give mmsi or imo. Use search_vessels_by_name first when you only have a name"
        },
        "limit": {
          "type": "integer",
          "description": "positions to return: default 50, maximum 200; when more match, the newest are kept"
        },
        "interval_minutes": {
          "type": "integer",
          "description": "at most one position per this many minutes, evenly spaced; by default the track is simplified by shape instead, keeping the positions that hold its path. Anonymous and personal calls reaching past 48 hours are rounded up to whole minutes"
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 396af13d956cc037.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/396af13d956cc037/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/396af13d956cc037/badge.svg)](https://brick.blue/agent/396af13d956cc037?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.