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

sat-objects

https://map.stockholmarchipelagotrail.com

Registry code: 394aa3cf1c1d52d0

api record

Read-only access to Stockholm Archipelago Trail objects (CC BY 4.0). Use search to find objects, fetch to get a full record by id. Ids are permanent (sat:<type>:<uid>). Card rule: day_trip, plan_route, multi_day and show_section_map each render a card in the conversation on EVERY call — call each of them at most once per answer, only for the option you recommend. To compare dates, hubs or stages, use check_day_trip (same data as day_trip, renders no card), search and fetch. Multi-day, overnight or island-hopping requests: if the user has not named stages, pick one or two with search, then…

endpoint
https://map.stockholmarchipelagotrail.com/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 sat-objects live?
Yes — it answered the hub's last check (checked 18h ago). It answered 100% of checks over the last 30 days.
Is sat-objects free to use?
Not measured yet.
What tools does sat-objects have?
10 tools: show_section_map, show_images, search, fetch, day_trip, check_day_trip, plan_route, multi_day, ….
Is sat-objects 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
100%

90 days 100%· all time 100%

latency
977ms

last good check

priced tools
0

of 10 tools

_ answered our checks, 90 days 3 checks · signed record
  • unknown → live
_ 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 10 tools
10 never probed 0 of 10 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.

  • show_section_map unknown never probed

    Show an interactive map of one trail section (stage) of the Stockholm Archipelago Trail, with the hiking route and ferry piers. Use this when the user wants to SEE a section on a map. Takes the same identifiers as fetch (sat:section:…, slug or uid). Pass targetKm (and optionally date) to draw a shorter or longer walk instead of the full stage. Do not use for comparing several stages side by side (use search/fetch). This tool renders an interactive map card itself — NEVER build your own map, chart, image or file from geojsonUrl or the coordinates; just call the tool and let the card show. IMPORTANT: every call to this tool renders a card in the conversation. Call it at most ONCE per answer, for the single option you recommend. Never use it to compare or probe alternatives. The card already shows ferry times, piers and walking times — do not restate them in your reply; add only advice, caveats and next steps.

    mcp-tool

    {
      "type": "object",
      "required": [
        "section"
      ],
      "properties": {
        "date": {
          "type": "string",
          "description": "Travel date, YYYYMMDD (Europe/Stockholm), e.g. 20260905. Only used with targetKm — the walk starts at the pier that day's ferry lands at. Defaults to today."
        },
        "lang": {
          "enum": [
            "sv",
            "en"
          ],
          "type": "string",
          "description": "Language of the user's message: 'sv' when the user writes in Swedish, otherwise 'en'. Always pass it — labels, dates and the card are rendered in this language."
        },
        "section": {
          "type": "string",
          "description": "Section reference: satId (\"sat:section:2fxg6\"), slug or uid — e.g. 'uto'."
        },
        "towards": {
          "type": "string",
          "description": "Optional named place on the island (beach, viewpoint, café) to steer the walk towards, as shown by search/fetch — e.g. 'Stora Sandvik'."
        },
        "targetKm": {
          "type": "number",
          "maximum": 60,
          "minimum": 1,
          "description": "Desired walking distance in km, 1–60, e.g. 9. Pass when the user asks for a shorter or longer walk than the full stage (e.g. \"about 9 km\"). Omit for the full stage."
        },
        "direction": {
          "enum": [
            "N",
            "NE",
            "E",
            "SE",
            "S",
            "SW",
            "W",
            "NW"
          ],
          "type": "string",
          "description": "Optional compass direction to steer a shorter walk towards: one of N, NE, E, SE, S, SW, W, NW — e.g. 'NE' to walk towards the north-east part of the island."
        }
      }
    }
    arguments 48 lines
  • show_images unknown never probed

    Show photos of one trail section (island) of the Stockholm Archipelago Trail: the stage hero image plus photos of places (lodging, food, nature) along it, each with credit and license. Use this when the user wants to SEE what a section looks like. Takes the same identifiers as fetch (sat:section:…, slug or uid). Do not use for maps (use show_section_map).

    mcp-tool

    {
      "type": "object",
      "required": [
        "section"
      ],
      "properties": {
        "section": {
          "type": "string",
          "description": "Section reference: satId, slug or uid, e.g. 'uto'."
        }
      }
    }
    arguments 12 lines
  • search unknown never probed

    Search the published objects of the Stockholm Archipelago Trail: trail sections (stages), the trail itself, ferry piers, ferry vessels, reviewed public reports and points of interest (lodging, food, shops, nature). Returns matching objects with their permanent sat-identifiers. Use this when the user names or describes a place, stage, pier, vessel or POI category and you need to find its identifier before calling another tool. Do not use for general Sweden/Stockholm travel, gear or weather questions — those are outside this dataset.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "string",
          "description": "Free-text search, e.g. an island name (\"Grinda\"), a pier, a vessel or a POI category."
        }
      }
    }
    arguments 12 lines
  • fetch unknown never probed

    Fetch the full machine-readable record (JSON-LD) for one object by identifier. Accepts sat-ids (sat:section:…, sat:pier:…, sat:vessel:…, sat:poi:…, sat:trail:…, sat:report:…), section slugs, legacy OSM ids (osm:node:…), Wikidata QIDs (wikidata:Q…), GTFS stop ids (gtfs:…) and Swedish AED-registry ids (shr:…). Deleted objects return a tombstone record with status "gone". Use this when you already have an object identifier — from search or an earlier response — and need its full record. Do not use for searching by name (use search) or for trip planning (use day_trip/plan_route).

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Object identifier, e.g. \"sat:section:2fxg6\" or \"grinda\"."
        }
      }
    }
    arguments 12 lines
  • day_trip unknown never probed

    Plan a ready round-trip day trip to one trail section (island) of the Stockholm Archipelago Trail on a given date. Returns the best ferry hub to depart from, outbound and return ferry times, the walking time around the island and how many ferries run that day. Use this when the user wants a day-trip suggestion to a single island. Section takes the same identifiers as fetch (sat:section:…, slug or uid). Pass targetKm when the user asks for a shorter or longer walk than the full stage; the response then describes that walk and permalink opens it in the planner. Do not use for a one-way trip between two islands (use plan_route), for probing several dates or hubs before recommending one (use check_day_trip), or for multi-day trips (use multi_day). ALWAYS follow this call with show_section_map for the same section, date and targetKm so the user also sees the walk on the map — the map is the main deliverable, not optional. IMPORTANT: every call to this tool renders a card in the conversation. Call it at most ONCE per answer, for the single option you recommend. Never use it to compare or probe alternatives. The card already shows ferry times, piers and walking times — do not restate them in your reply; add only advice, caveats and next steps.

    mcp-tool

    {
      "type": "object",
      "required": [
        "section"
      ],
      "properties": {
        "hub": {
          "type": "string",
          "description": "Optional preferred departure hub slug from check_day_trip/day_trip responses, e.g. 'stromkajen'. Omit to let the planner pick the best."
        },
        "date": {
          "type": "string",
          "description": "Travel date, YYYYMMDD (Europe/Stockholm), e.g. 20260905. Defaults to today."
        },
        "lang": {
          "enum": [
            "sv",
            "en"
          ],
          "type": "string",
          "description": "Language of the user's message: 'sv' when the user writes in Swedish, otherwise 'en'. Always pass it — labels, dates and the card are rendered in this language."
        },
        "section": {
          "type": "string",
          "description": "Section reference: satId, slug or uid, e.g. 'uto'."
        },
        "towards": {
          "type": "string",
          "description": "Optional named place on the island (beach, viewpoint, café) to steer the walk towards, as shown by search/fetch — e.g. 'Stora Sandvik'."
        },
        "targetKm": {
          "type": "number",
          "maximum": 60,
          "minimum": 1,
          "description": "Desired walking distance in km, 1–60, e.g. 9. Pass when the user asks for a shorter or longer walk than the full stage (e.g. \"about 9 km\"). Omit for the full stage."
        },
        "direction": {
          "enum": [
            "N",
            "NE",
            "E",
            "SE",
            "S",
            "SW",
            "W",
            "NW"
          ],
          "type": "string",
          "description": "Optional compass direction to steer a shorter walk towards: one of N, NE, E, SE, S, SW, W, NW — e.g. 'NE' to walk towards the north-east part of the island."
        }
      }
    }
    arguments 52 lines
  • check_day_trip unknown never probed

    Same data as day_trip but renders NO card. Use this when you need to check or compare day trips across dates, departure hubs or stages before recommending one, or for follow-up questions where no new card is wanted. Same arguments and response as day_trip (section, date, hub, targetKm, direction, towards). Do not use for the final recommendation shown to the user (use day_trip) — call day_trip once for the trip you recommend.

    mcp-tool

    {
      "type": "object",
      "required": [
        "section"
      ],
      "properties": {
        "hub": {
          "type": "string",
          "description": "Optional preferred departure hub slug from check_day_trip/day_trip responses, e.g. 'stromkajen'. Omit to let the planner pick the best."
        },
        "date": {
          "type": "string",
          "description": "Travel date, YYYYMMDD (Europe/Stockholm), e.g. 20260905. Defaults to today."
        },
        "lang": {
          "enum": [
            "sv",
            "en"
          ],
          "type": "string",
          "description": "Language of the user's message: 'sv' when the user writes in Swedish, otherwise 'en'. Always pass it — labels, dates and the card are rendered in this language."
        },
        "section": {
          "type": "string",
          "description": "Section reference: satId, slug or uid, e.g. 'uto'."
        },
        "towards": {
          "type": "string",
          "description": "Optional named place on the island (beach, viewpoint, café) to steer the walk towards, as shown by search/fetch — e.g. 'Stora Sandvik'."
        },
        "targetKm": {
          "type": "number",
          "maximum": 60,
          "minimum": 1,
          "description": "Desired walking distance in km, 1–60, e.g. 9. Pass when the user asks for a shorter or longer walk than the full stage (e.g. \"about 9 km\"). Omit for the full stage."
        },
        "direction": {
          "enum": [
            "N",
            "NE",
            "E",
            "SE",
            "S",
            "SW",
            "W",
            "NW"
          ],
          "type": "string",
          "description": "Optional compass direction to steer a shorter walk towards: one of N, NE, E, SE, S, SW, W, NW — e.g. 'NE' to walk towards the north-east part of the island."
        }
      }
    }
    arguments 52 lines
  • plan_route unknown never probed

    Plan a multimodal A→B route between two trail sections (islands), or between an island and a mainland ferry hub (Strömkajen, Vaxholm, Årsta, Stavsnäs …): walk → ferry → walk, with departure/arrival times, walking distances and pier names. Use this when the user wants to travel from one island to another, out to an island from the mainland, or home from an island (or asks how to get between two places on the trail). From/to take the same identifiers as fetch (sat:section:…, slug or uid). Same section for both returns a walk-only route. Do not use for a round trip to a single island (use day_trip) or for multi-day trips (use multi_day). If the user has not named the two islands, pick two neighbouring stages with search first and then call this tool. IMPORTANT: every call to this tool renders a card in the conversation. Call it at most ONCE per answer, for the single option you recommend. Never use it to compare or probe alternatives. The card already shows ferry times, piers and walking times — do not restate them in your reply; add only advice, caveats and next steps.

    mcp-tool

    {
      "type": "object",
      "required": [
        "from",
        "to"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Destination: a section reference (e.g. 'moja') or a mainland ferry hub (e.g. 'arsta')."
        },
        "date": {
          "type": "string",
          "description": "Travel date, YYYYMMDD (Europe/Stockholm), e.g. 20260905. Defaults to today."
        },
        "from": {
          "type": "string",
          "description": "Start: a section reference (satId, slug or uid, e.g. 'uto') or a mainland ferry hub (e.g. 'stromkajen', 'vaxholm', 'arsta')."
        },
        "lang": {
          "enum": [
            "sv",
            "en"
          ],
          "type": "string",
          "description": "Language of the user's message: 'sv' when the user writes in Swedish, otherwise 'en'. Always pass it — labels, dates and the card are rendered in this language."
        },
        "time": {
          "type": "string",
          "description": "Earliest departure, HHMM (24h). Defaults to 0900."
        }
      }
    }
    arguments 33 lines
  • multi_day unknown never probed

    Plan a multi-day trip on the Stockholm Archipelago Trail: an overnight stay on one island, or an island hop across up to four stages, with the ferries and the walk for each day. Use this when the user wants a hike over several days, an overnight stay on an island, or to combine two or more islands. Sections take the same identifiers as fetch (sat:section:…, slug or uid), in the order they should be visited. sections and date are both OPTIONAL: omit sections and the planner picks well-served stages; omit date and it uses the next Saturday — so call this tool for ANY multi-day request ("plan a 3-day hike"), never answer from search/fetch alone. Do not use for single-day trips (use day_trip) or A→B between two islands on one day (use plan_route). ALWAYS follow this call with show_section_map for the first stage of the trip (same date) so the user sees the route on a map. IMPORTANT: every call to this tool renders a card in the conversation. Call it at most ONCE per answer, for the single option you recommend. Never use it to compare or probe alternatives. The card already shows ferry times, piers and walking times — do not restate them in your reply; add only advice, caveats and next steps.

    mcp-tool

    {
      "type": "object",
      "required": [
        "nights"
      ],
      "properties": {
        "hub": {
          "type": "string",
          "description": "Optional preferred departure hub slug from check_day_trip/day_trip responses, e.g. 'stromkajen'. Omit to let the planner pick the best."
        },
        "date": {
          "type": "string",
          "description": "Start date, YYYYMMDD (Europe/Stockholm), e.g. 20260905. OPTIONAL — omit and the planner uses the next Saturday."
        },
        "lang": {
          "enum": [
            "sv",
            "en"
          ],
          "type": "string",
          "description": "Language of the user's message: 'sv' when the user writes in Swedish, otherwise 'en'. Always pass it — labels, dates and the card are rendered in this language."
        },
        "nights": {
          "type": "integer",
          "maximum": 7,
          "minimum": 1,
          "description": "Number of overnight stays, 1-7, e.g. 2."
        },
        "sections": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "maxItems": 4,
          "minItems": 1,
          "description": "One to four section references in visiting order: satId, slug or uid — e.g. ['grinda', 'finnhamn']."
        }
      }
    }
    arguments 39 lines
  • place_details unknown never probed

    Get the full record for one place, stage, pier or vessel on the Stockholm Archipelago Trail by identifier: description, photo (image.contentUrl with credit/license), opening hours, website/phone, accessibility, SAT passport info and links. Use this when the user asks about a specific place ("tell me more about Arholma handel") and you have its id (sat:poi:…, sat:section:…, sat:pier:…) from a map card, search or an earlier response. Same data as fetch. Do not use for searching by name (use search) or for trip planning (use day_trip/plan_route).

    mcp-tool

    {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Object identifier, e.g. \"sat:poi:n5d79\" or \"sat:section:2fxg6\"."
        },
        "lang": {
          "enum": [
            "sv",
            "en"
          ],
          "type": "string",
          "description": "Language of the user's message: 'sv' when the user writes in Swedish, otherwise 'en'. Always pass it — labels, dates and the card are rendered in this language."
        }
      }
    }
    arguments 20 lines
  • pier_departures unknown never probed

    List the scheduled Waxholmsbolaget ferry departures (or arrivals) at one pier or harbour of the Stockholm Archipelago Trail on a given date, within a time window: departure time, line, destination and stops on the way, arrival time at the final stop, whether advance booking is required, and which boat is the last of the day. Use this when the user asks what boats leave from or arrive at a specific pier or island ("which boats leave Grinda this afternoon?", "when is the last ferry back from Utö tonight?"). The pier can be given by name (island or pier, e.g. 'Grinda', 'Stavsnäs'), slug or id (sat:pier:…, GTFS stop id); when a name matches several piers the response lists them (kind 'ambiguous') — ask the user or pick the obvious one and call again. Renders no card. Do not use for planning a whole trip (use day_trip/plan_route) or for lodging and places (use search).

    mcp-tool

    {
      "type": "object",
      "required": [
        "pier"
      ],
      "properties": {
        "to": {
          "type": "string",
          "description": "Latest time, HHMM or HH:MM (24 h). OPTIONAL — omit for 23:59."
        },
        "date": {
          "type": "string",
          "description": "Date, YYYYMMDD (Europe/Stockholm), e.g. 20260905. OPTIONAL — omit for today."
        },
        "from": {
          "type": "string",
          "description": "Earliest time, HHMM or HH:MM (24 h), e.g. '1400' for 'this afternoon'. OPTIONAL — omit for now (today) or 00:00 (other dates)."
        },
        "lang": {
          "enum": [
            "sv",
            "en"
          ],
          "type": "string",
          "description": "Language of the user's message: 'sv' when the user writes in Swedish, otherwise 'en'. Always pass it — labels, dates and the card are rendered in this language."
        },
        "pier": {
          "type": "string",
          "description": "Pier reference: name ('Grinda', 'Södra Grinda', 'Strömkajen'), slug, sat:pier:… id or GTFS stop id."
        },
        "limit": {
          "type": "integer",
          "maximum": 50,
          "minimum": 1,
          "description": "Max rows, 1–50. OPTIONAL — default 20."
        },
        "direction": {
          "enum": [
            "departures",
            "arrivals"
          ],
          "type": "string",
          "description": "'departures' (default) = boats leaving the pier; 'arrivals' = boats arriving at it."
        }
      }
    }
    arguments 46 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 394aa3cf1c1d52d0.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/394aa3cf1c1d52d0/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/394aa3cf1c1d52d0/badge.svg)](https://brick.blue/agent/394aa3cf1c1d52d0?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.