Koskamo

Obato MCP

An official Model Context Protocol server provided by Obato, Europe's boat marketplace. It exposes 11 read-only tools allowing AI agents to search for boats for sale or rent, access live market statistics, retrieve marina information, and browse dealer directories across European watersport markets.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Obato MCP logo, by ObatoVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by Obato
MCP endpoint (Streamable HTTP)
https://obato.eu/mcp
Vendor documentation

What its tools do

11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

11 of 11 have a description · 11 of 11 declare behavior hints · 3 of 10 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to obato.eu ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for boats for sale or rent
  • Retrieve live market statistics and prices
  • Find marina and dealer locations
  • Access structured boat inventory data

Source and maintenance

Vendor evidenceRegistry 1.0.1

Protocol and capabilities

Server
obato-mcp 1.0.0
MCP protocol negotiated in check
2025-06-18
Tools
11 advertised
Resources
1 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "resources": {
    "listChanged": false
  }
}

Tools

11 advertised

search_boats
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search Obato's public marketplace for boats. Filters: free-text query, category (type_boot), region, brand, price range. English/German/French input is accepted and normalised (e.g. 'sailboat' -> zeilboot, 'Germany' -> land Duitsland); `regio` may be a Dutch province, a country or a city. Returns up to 25 listings plus an exact total_matches; on 0 results a suggestion with a relaxed filter is included.

search_boats input schema
{
  "type": "object",
  "properties": {
    "merk": {
      "type": "string",
      "description": "Brand name"
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "description": "Free-text search (title, description, brand)"
    },
    "regio": {
      "type": "string",
      "description": "Dutch province (Friesland, Noord-Holland), a country (Nederland/Netherlands, Duitsland/Germany) or a city/municipality."
    },
    "prijs_max": {
      "type": "number"
    },
    "prijs_min": {
      "type": "number"
    },
    "type_boot": {
      "type": "string",
      "description": "Category, e.g. motorboot, zeilboot, sloep. English/German/French terms are accepted (sailboat, motorboat, Segelboot)."
    }
  }
}
search_boats annotations
{
  "title": "Search boats",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_boat_details
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fetch detail of one boat listing by seo_slug or id.

get_boat_details input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    }
  }
}
get_boat_details annotations
{
  "title": "Boat details",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_market_stats
Advertised by the server during the last successful anonymous check.
Advertised read-only

Aggregate market stats (count, avg/median/min/max price) for a category and optional region. English/German/French category and country names are normalised. When `regio` is a Dutch province, counts AND prices are computed over that province only (price_scope='province').

get_market_stats input schema
{
  "type": "object",
  "required": [
    "type_boot"
  ],
  "properties": {
    "regio": {
      "type": "string"
    },
    "type_boot": {
      "type": "string"
    }
  }
}
get_market_stats annotations
{
  "title": "Market statistics",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
compare_brands
Advertised by the server during the last successful anonymous check.
Advertised read-only

Compare two boat brands head-to-head on Obato: listing counts, avg/median price, avg length, year range. Brand matching is case-insensitive substring matching, identical to search_boats. Powers 'X vs Y' answer-engine queries (e.g. 'Bavaria vs Beneteau').

compare_brands input schema
{
  "type": "object",
  "required": [
    "brand_a",
    "brand_b"
  ],
  "properties": {
    "brand_a": {
      "type": "string"
    },
    "brand_b": {
      "type": "string"
    },
    "type_boot": {
      "type": "string",
      "description": "Optional category filter"
    }
  }
}
compare_brands annotations
{
  "title": "Compare brands",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_boat_pricing_stats
Advertised by the server during the last successful anonymous check.
Advertised read-only

Pricing statistics (count, avg, median, p25, p75, min, max) for a boat category, with optional region (province, country or city) and length range. Prices always match the requested scope; `price_scope` states whether they are provincial, per country, per place or national.

get_boat_pricing_stats input schema
{
  "type": "object",
  "required": [
    "type_boot"
  ],
  "properties": {
    "regio": {
      "type": "string"
    },
    "type_boot": {
      "type": "string"
    },
    "lengte_max": {
      "type": "number"
    },
    "lengte_min": {
      "type": "number"
    }
  }
}
get_boat_pricing_stats annotations
{
  "title": "Pricing statistics",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
find_marina_with_amenities
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find European marinas (jachthavens) that match a set of amenities: electricity, water, fuel, wifi. Optional country/province filters. Returns up to 25 marinas. Country names are accepted in Dutch or English; province spelling variants (Friesland/Fryslan, Niedersachsen/Lower Saxony) are matched together. Note: `fuel` is very rare in the current dataset (almost no marina records it), so electricity/water/wifi are the useful filters; combining fuel with other amenities usually yields 0 results. The response includes `amenity_availability` with, per amenity, how many marinas in the selection have it and how many recorded it at all — a missing record does not mean the amenity is absent.

find_marina_with_amenities input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1
    },
    "country": {
      "type": "string",
      "description": "Country name in Dutch or English (e.g. Nederland/Netherlands, Duitsland/Germany). Available: Nederland, Belgie, Denemarken, Duitsland, Frankrijk, Italie, Luxemburg, Oostenrijk, Spanje, Tsjechie, Verenigd Koninkrijk, Zwitserland."
    },
    "province": {
      "type": "string",
      "description": "Province or federal state; spelling variants are matched together (Friesland/Fryslan, Niedersachsen/Lower Saxony)."
    },
    "amenities": {
      "type": "array",
      "items": {
        "enum": [
          "electricity",
          "water",
          "fuel",
          "wifi"
        ],
        "type": "string"
      },
      "description": "Required amenities. All listed must be present."
    }
  }
}
find_marina_with_amenities annotations
{
  "title": "Find marinas",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search_rentals
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search Obato's rental fleet (verhuur) for boats available to rent. Filters: free-text query, boat type, region/country, capacity, max price per day, optional date (YYYY-MM-DD) to filter on available days. English/German/French type and country names are normalised. Returns up to 25 rental boats with default daily price plus an exact total_matches after price and date filtering.

search_rentals input schema
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "Optional YYYY-MM-DD; only returns boats with no 'booked'/'blocked' status on that date"
    },
    "type": {
      "type": "string",
      "description": "Rental boat type, e.g. sloep, motorboot, zeilboot. English/German/French terms are accepted."
    },
    "limit": {
      "type": "integer",
      "default": 10,
      "maximum": 25,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "description": "Free-text (name, location)"
    },
    "region": {
      "type": "string",
      "description": "Region or province"
    },
    "country_code": {
      "type": "string",
      "description": "ISO country code, e.g. NL, DE, FR"
    },
    "min_capacity": {
      "type": "integer",
      "minimum": 1
    },
    "max_price_per_day": {
      "type": "number",
      "description": "Maximum EUR per day"
    }
  }
}
search_rentals annotations
{
  "title": "Search rentals",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
ask_bo
Advertised by the server during the last successful anonymous check.
Advertised read-only

Ask Bo, Obato's AI boat expert, any question about boats, watersports or the European boat market. Returns a cited answer grounded in Obato's live market data. Rate-limited (5 req/min/IP).

ask_bo input schema
{
  "type": "object",
  "required": [
    "question"
  ],
  "properties": {
    "question": {
      "type": "string",
      "description": "The question for Bo (max ~500 chars)."
    }
  }
}
ask_bo annotations
{
  "title": "Ask Bo",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
market_snapshot
Advertised by the server during the last successful anonymous check.
Advertised read-only

Real-time snapshot of the European boat market on Obato — total listings, average prices by boat type, and regional distribution. Cached ~5 minutes.

market_snapshot input schema
{
  "type": "object",
  "properties": {}
}
market_snapshot annotations
{
  "title": "Market snapshot",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_brand_info
Advertised by the server during the last successful anonymous check.
Advertised read-only

Knowledge-graph info about a specific boat brand or manufacturer on Obato: description, expert facts, authority score, active listing count.

get_brand_info input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Brand slug (lowercase, e.g. 'bavaria', 'jeanneau', 'bayliner')."
    }
  }
}
get_brand_info annotations
{
  "title": "Brand info",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_facts
Advertised by the server during the last successful anonymous check.
Advertised read-only

Citable facts about boats and watersports from Obato's knowledge graph, ranked by authority score. Each fact includes a source citation suitable for grounded LLM answers.

get_facts input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Number of facts to return."
    }
  }
}
get_facts annotations
{
  "title": "Boat facts",
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

1 advertised

Obato boat results

Advertised by the server during the last successful anonymous check.

Obato boat results URI
ui://widget/boat-results.html

MIME type: text/html+skybridge

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1107 ms
95th percentile latency
1107 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1107 ms · metadata changed · 11 tool(s), 1 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http obato-mcp https://obato.eu/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add obato-mcp --url https://obato.eu/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable obato-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "obato-mcp": {
      "url": "https://obato.eu/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "obato-mcp": {
      "type": "streamableHttp",
      "url": "https://obato.eu/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start obato-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "obato-mcp": {
      "type": "http",
      "url": "https://obato.eu/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http obato-mcp https://obato.eu/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://obato.eu/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "obato-mcp": {
      "serverUrl": "https://obato.eu/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Obato MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Obato MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing