YachtFinder

Search about 20,000 yachts for sale, charter and sold, with where AIS last placed each one.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
89%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,866Tokens (tool definitions)
~9.5 KBTypical response size
Significant attention impact (2.24% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "yachtfinder": {
      "url": "https://mcp.yachtfinder.co/mcp"
    }
  }
}

Remote endpoints

https://mcp.yachtfinder.co/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒find_yachts(builder, name_contains, min_length_m, max_length_m, min_price_usd, ...)

Search YachtFinder's catalogue of about 20,000 yachts by builder, length, asking price, build year, status (for sale, for charter, reported sold, not for sale) and place. Returns up to 25 yachts, longest first by default, each with her status, the broker's asking price, YachtFinder's estimate where her page shows one, and a link to her page on yachtfinder.co. `near` keeps yachts whose AIS position, as the site publishes it, lies within `radius_km` of a named harbour or anchorage; `listed_in` matches the town or country the broker's listing states.

Input Schema

{
  "type": "object",
  "properties": {
    "builder": {
      "type": "string",
      "maxLength": 60,
      "description": "Shipyard, e.g. \"Benetti\", \"Feadship\", \"LΓΌrssen\". Case and accents are ignored."
    },
    "name_contains": {
      "type": "string",
      "maxLength": 60,
      "description": "Part of the yacht's name."
    },
    "min_length_m": {
      "type": "number",
      "minimum": 0,
      "maximum": 200,
      "description": "Minimum length overall, metres."
    },
    "max_length_m": {
      "type": "number",
      "minimum": 0,
      "maximum": 200,
      "description": "Maximum length overall, metres."
    },
    "min_price_usd": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum asking price in whole US dollars (20000000 = $20M). Only yachts with a published asking price are compared."
    },
    "max_price_usd": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum asking price in whole US dollars."
    },
    "min_year": {
      "type": "integer",
      "minimum": 1850,
      "maximum": 2100,
      "description": "Earliest build year."
    },
    "max_year": {
      "type": "integer",
      "minimum": 1850,
      "maximum": 2100,
      "description": "Latest build year."
    },
    "status": {
      "type": "string",
      "enum": [
        "for_sale",
        "for_charter",
        "reported_sold",
        "not_for_sale",
        "any"
      ],
      "default": "for_sale",
      "description": "Default for_sale. for_charter includes yachts offered for both."
    },
    "near": {
      "type": "string",
      "maxLength": 80,
      "description": "A harbour, harbour town or anchorage by name, e.g. \"Port Hercule\", \"Antibes\", \"Fort Lauderdale\", \"Off Monaco\"."
    },
    "radius_km": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100,
      "description": "With near: the radius. Default 2 km for a harbour, 3 km for an anchorage."
    },
    "seen_within_hours": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2880,
      "description": "With near: only AIS positions this recent. Default: any position the site publishes (up to 120 days)."
    },
    "listed_in": {
      "type": "string",
      "maxLength": 60,
      "description": "Town or country named in the broker's listing, e.g. \"Fort Lauderdale\", \"Italy\". This is where the listing says she is, not an AIS position."
    },
    "sort": {
      "type": "string",
      "enum": [
        "longest",
        "price_high",
        "price_low",
        "newest"
      ],
      "default": "longest"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 10
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string"
    },
    "data_as_of": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "When YachtFinder last rebuilt the catalogue this answer was read from (ISO 8601)."
    },
    "read_at": {
      "type": "string",
      "description": "When this server read that catalogue (ISO 8601)."
    },
    "answered_at": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "total_matches": {
      "type": "integer"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Her address on yachtfinder.co (the last part of url); yacht_facts accepts it."
          },
          "name": {
            "type": "string"
          },
          "builder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "year": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "length_m": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "for sale",
              "for charter",
              "reported sold",
              "not for sale"
            ]
          },
          "asking_price_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The broker's asking price in US dollars; null when none is published. Never a sale price."
          },
          "last_asking_price_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "For a reported-sold or not-for-sale yacht, her last asking price. Not a sale price."
          },
          "price_on_application": {
            "type": "boolean"
          },
          "our_estimate_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "YachtFinder's model estimate, only where her page shows one. Not an appraisal, not a sale price."
          },
          "listed_location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "position": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  },
                  "seen_at": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "distance_km": {
                    "type": "number"
                  },
                  "in_port": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "url"
        ]
      }
    }
  },
  "required": [
    "summary",
    "data_as_of",
    "read_at",
    "answered_at",
    "source",
    "notes",
    "total_matches",
    "results"
  ]
}
🟒yachts_near(place, latitude, longitude, radius_km, seen_within_hours, ...)

List the yachts whose latest AIS position, as yachtfinder.co publishes it, lies within a radius of a named harbour or anchorage (e.g. "Port Hercule", "Antibes", "Off Monaco") or of a latitude and longitude. By default only positions from the last 24 hours. Each yacht comes with the time of her fix, her distance from the place, whether the harbour's page counts her in port, and a link to her page. A yacht whose position the site does not publish is never listed.

Input Schema

{
  "type": "object",
  "properties": {
    "place": {
      "type": "string",
      "maxLength": 80,
      "description": "A harbour, harbour town or anchorage by name. Give this, or latitude and longitude."
    },
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "radius_km": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100,
      "description": "Default 2 km for a harbour, 3 km for an anchorage, 10 km for a coordinate."
    },
    "seen_within_hours": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2880,
      "default": 24,
      "description": "Only positions this recent. Default 24."
    },
    "status": {
      "type": "string",
      "enum": [
        "for_sale",
        "for_charter",
        "reported_sold",
        "not_for_sale",
        "any"
      ],
      "default": "any"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 20
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string"
    },
    "data_as_of": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "When YachtFinder last rebuilt the catalogue this answer was read from (ISO 8601)."
    },
    "read_at": {
      "type": "string",
      "description": "When this server read that catalogue (ISO 8601)."
    },
    "answered_at": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "place": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        },
        "radius_km": {
          "type": "number"
        },
        "seen_within_hours": {
          "type": "integer"
        }
      }
    },
    "total_matches": {
      "type": "integer"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Her address on yachtfinder.co (the last part of url); yacht_facts accepts it."
          },
          "name": {
            "type": "string"
          },
          "builder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "year": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "length_m": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "for sale",
              "for charter",
              "reported sold",
              "not for sale"
            ]
          },
          "asking_price_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The broker's asking price in US dollars; null when none is published. Never a sale price."
          },
          "last_asking_price_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "For a reported-sold or not-for-sale yacht, her last asking price. Not a sale price."
          },
          "price_on_application": {
            "type": "boolean"
          },
          "our_estimate_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "YachtFinder's model estimate, only where her page shows one. Not an appraisal, not a sale price."
          },
          "listed_location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "position": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  },
                  "seen_at": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "distance_km": {
                    "type": "number"
                  },
                  "in_port": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "url"
        ]
      }
    }
  },
  "required": [
    "summary",
    "data_as_of",
    "read_at",
    "answered_at",
    "source",
    "notes",
    "place",
    "total_matches",
    "results"
  ]
}
🟒yacht_facts(yacht, builder, length_m)

One yacht's facts from YachtFinder: builder, year, length, status, the broker's asking price (never a sale price), YachtFinder's estimate where her page shows one, her published AIS position with its time, where her listing says she is, and her page on yachtfinder.co, with the source and date of each fact. Takes her name (add builder or length_m when several yachts share it) or her yachtfinder.co/y/ link.

Input Schema

{
  "type": "object",
  "properties": {
    "yacht": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Her name, e.g. \"Lady Lara\", or her yachtfinder.co/y/ link or the id from another answer."
    },
    "builder": {
      "type": "string",
      "maxLength": 60,
      "description": "Her builder, to choose between yachts of the same name."
    },
    "length_m": {
      "type": "number",
      "minimum": 0,
      "maximum": 200,
      "description": "Her length in metres, to choose between yachts of the same name."
    }
  },
  "required": [
    "yacht"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string"
    },
    "data_as_of": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "When YachtFinder last rebuilt the catalogue this answer was read from (ISO 8601)."
    },
    "read_at": {
      "type": "string",
      "description": "When this server read that catalogue (ISO 8601)."
    },
    "answered_at": {
      "type": "string"
    },
    "source": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "found": {
      "type": "string",
      "enum": [
        "one",
        "several"
      ]
    },
    "yacht": {
      "type": "object"
    },
    "matches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Her address on yachtfinder.co (the last part of url); yacht_facts accepts it."
          },
          "name": {
            "type": "string"
          },
          "builder": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "year": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "length_m": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "for sale",
              "for charter",
              "reported sold",
              "not for sale"
            ]
          },
          "asking_price_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The broker's asking price in US dollars; null when none is published. Never a sale price."
          },
          "last_asking_price_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "For a reported-sold or not-for-sale yacht, her last asking price. Not a sale price."
          },
          "price_on_application": {
            "type": "boolean"
          },
          "our_estimate_usd": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "YachtFinder's model estimate, only where her page shows one. Not an appraisal, not a sale price."
          },
          "listed_location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "position": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "latitude": {
                    "type": "number"
                  },
                  "longitude": {
                    "type": "number"
                  },
                  "seen_at": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "distance_km": {
                    "type": "number"
                  },
                  "in_port": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "url"
        ]
      }
    }
  },
  "required": [
    "summary",
    "data_as_of",
    "read_at",
    "answered_at",
    "source",
    "notes",
    "found"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools