Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "compare_boat" and "get_opportunities"
One boat againsttheup to 10 closest published boats of the same type ⟨75 unchanged words⟩ is how alike a peer is: the share of the specs itshares,shares.averagedWithwith`id`, `overlap_pct`(is the share of the boat's open weeks the peer is opentoo) when there is a boat.too. With `id`, `anchor.price` is the boat's weekly ⟨98 unchanged words⟩
⟨65 unchanged words⟩ the median of the other operators' boats amongtheup to 10 boats most like it of the same ⟨145 unchanged words⟩
Authorization not required, issuer https://charter.boats
Added "get_opportunities" (45 tools before, 46 now)
The company's Opportunities, as the dashboard's Analysis page shows them, read-only. `boats`: every published boat in the dashboard's order (the charted ones first, then by open weeks), with `open_weeks`, `vs_similar_pct` and `compare_url`, its public compare page. `vs_similar_pct` is how far the boat's weekly price sits over (positive) or under (negative) similar boats, as a median over the weeks it can be sold, each week against the median of the other operators' boats among the 10 boats most like it of the same type in the same country, where at least 3 of them are priced (null: no week to…
Changed the definition of "compare_boat", "get_boat_details", "get_boat_standouts" and 3 more
⟨15 unchanged words⟩ country: specs and the all-in weekly price (in `currency`, EUR when omitted, at max guests, the figure search compares ⟨188 unchanged words⟩
⟨86 unchanged words⟩ boat_type).","type":"string"},"currency":{"description":"Optional: the currency every amount in the answer is written in, and any price you send is read in. EUR when omitted.","enum":["EUR","USD"],"type":"string"},"guests":{"description":"Guests: without id ⟨148 unchanged words⟩
Authorization not required, issuer https://charter.boats
Changed the definition of "get_boat_details"
⟨27 unchanged words⟩ `url` opens the boat on those dates whentheythearestay is oneofwe`bookable_slots`.sell — `stay_price` prices it and, on a boat with no check-in periods, it starts and ends on the boat changeover day. Pass both whenever you quote a price for ⟨51 unchanged words⟩
Authorization not required, issuer https://charter.boats
Changed the definition of "search_boats"
⟨599 unchanged words⟩ dinghy","davits","outboard","bimini","foredeck_shade","sprayhood","teak_deck","gangway","flybridge"," ⟨17 unchanged words⟩ ","windsurf","bikes","jet_ski","bbq","bean_bags","dinghy:hard_bottom","dinghy:hypalon","dinghy ⟨416 unchanged words⟩
Added "compare_boat" (44 tools before, 45 now)
Compare a Boat With Similar Boats — One boat against the 10 closest published boats of the same type in the same country: specs and the all-in weekly price (EUR, at max guests, the figure search compares) for each of the next 52 weeks. Pass `id` (a boat), or `boat_type` and `country` (optionally `region`, `city`) to describe one. The specs take search_boats' names: without `id` they describe the boat to compare; with `id` they filter its peers as search_boats would. Only boats open at least one week are compared. `similar_pct` is how alike a peer is: the specs it shares, averaged with `overlap_pct` (the share of the boat's open…
Authorization not required, issuer https://charter.boats
Changed the definition of "list_boats"
⟨12 unchanged words⟩ belongs to, published or not, with its company's name, specs, pricing source, changeover settings and photos. ⟨25 unchanged words⟩
Added "add_block", "add_calendar", "add_fee" and 30 more (11 tools before, 44 now)
Block dates on one of the operator's boats so they cannot be booked. On a partner-synced boat the hold is placed on that partner too, and with X-Lock on also on the other partner. Returns the stored block and how each hold went.
Connect an external calendar to a boat: its events block those dates on charter.boats. Returns the stored source; sync_calendar pulls it at once.
Add an extra or fee to a boat the operator prices directly. Returns the stored row and `warnings`, other rows it overlaps.
Add a season price to a boat the operator prices directly (pricing source direct). Returns the stored row.
Create a discount; it comes out of the operator's payout, never out of the platform commission. Returns the stored discount.
Certificate recorded, valid to 2027-01-11
Authorization not required
Changed the definition of "get_boat_standouts"
⟨151 unchanged words⟩ tool what is rare among boats like it. `rare_kit` lists that rare kit as data, most useful first, each with `useful_score` (1-5: how much it changes a charter week for the people aboard). `note` says whether an absence means "ordinary" ⟨6 unchanged words⟩
Unknown → Live
First tool surface recorded: 11 tools (server version 1.0.0)
https://charter.boats/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 18 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
{"additionalProperties":false,"properties":{"currency":{"description":"Optional: the currency every amount in the answer is written in, and any price you send is read in. EUR when omitted.","enum":["EUR","USD"],"type":"string"},"date_from":{"description":"Optional check-in date YYYY-MM-DD ⟨112 unchanged words⟩
⟨91 unchanged words⟩ ,"length"],"type":"string"},"currency":{"description":"Optional: the currency every amount in the answer is written in, and any price you send is read in. EUR when omitted.","enum":["EUR","USD"],"type":"string"},"cutoff_pct":{"description":"Optional, default 10, ⟨126 unchanged words⟩
{"additionalProperties":false,"properties":{"currency":{"description":"Optional: the currency every amount in the answer is written in, and any price you send is read in. EUR when omitted.","enum":["EUR","USD"],"type":"string"},"id":{"description":"Location id from search_locations ⟨11 unchanged words⟩
⟨24 unchanged words⟩ not counted)","type":"integer"},"currency":{"description":"Optional: the currency every amount in the answer is written in, and any price you send is read in. EUR when omitted.","enum":["EUR","USD"],"type":"string"},"date_from":{"description":"Start date YYYY-MM-DD", ⟨706 unchanged words⟩ Max price per day for the boat in `currency` (EUR when omitted), all fees in — a boat's WEEKLY ⟨58 unchanged words⟩ Min price per day for the boat in `currency` (EUR when omitted), all fees in — a boat's WEEKLY ⟨127 unchanged words⟩ :"Max grand total for the stay in `currency`, EUR when omitted (the charter, every required fee now or ⟨80 unchanged words⟩
⟨11 unchanged words⟩ 2-letter code","type":"string"},"currency":{"description":"Optional: the currency every amount in the answer is written in, and any price you send is read in. EUR when omitted.","enum":["EUR","USD"],"type":"string"},"from":{"description":"Origin location id ( ⟨227 unchanged words⟩
Delete one photo of the boat for good. To take a photo off the listing and keep it, use update_boat_images with disable_id.
End a discount: guests can no longer use it; bookings already made keep it.
Delete a direct fee row.
Delete a direct season price; the dates it covered have no price until another row covers them.
The company's fleet calendar: every boat with its partner links, and every event that takes dates — bookings, options, blocks and synced partner or iCal events — each with its source. Read it before add_block to see what a range already holds.
One of the operator's boats in full, as its edit page shows it: every editable field, photos with their ids, videos, equipment (hidden items included) and `locked_fields`, the fields MMK or Nausys rewrite on every sync.
One booking in full: stage (as in list_bookings), dates, guest, price lines, the operator's payout and `payout_schedule`, the payments coming to the operator with their due dates (empty until the booking is paid). Read-only.
What the company's payment schedule means for its cancellation policy: per boat source, the share paid in advance and how many days before the charter the rest is due, with the largest refund each notice period covers from money already collected. Read beside get_company's `cancel_refund_percent` and `cancel_refund_days`. `policy_applies` false: the company has no MMK or Nausys boat, so its policy governs nothing and cannot be changed.
The company profile as its settings page holds it: public profile, contact, bank, tax and invoicing details, the cancellation policy (`cancel_refund_percent` refunded when the guest cancels at least `cancel_refund_days` before the charter), the X-Lock switch (in `settings`) and the member and boat counts.
The company's earnings: total and monthly payouts, payouts still pending on accepted bookings, and the latest bookings, in the currency the operator is paid in.
The season prices of the fleet: per boat, every week-price row with its id, date span (month/day, repeating every year), `price_per_day` and `source`. Rows with `source` mmk or nausys come from the partner and change there; rows with `source` direct are the operator's to edit with add_price, update_price and delete_price.
Every extra and fee row of a boat, as its edit page lists them: amount, period, whether it is required, how it is collected, and its `source`. Rows with `source` direct are the operator's to edit.
The operator's own fleet: every boat of each company the key holder belongs to, published or not, with its specs, pricing source, changeover settings and photos. Start here: it gives the boat ids and company ids every other operator tool takes. An empty list means the account belongs to no company.
Every booking on the operator's boats, newest charter first. `status` and `payment_status` give the stage: `waitlist` is On waitlist (queued behind another hold), unpaid `pending` or `accepted` is an Option that lapses at `hold_expires_at`, and a booking with money in is booked. Each row states the price the guest pays, the discounts and the operator's own payout, in the currency of `payout_money`. Read-only: bookings are handled on the dashboard. An empty list means no bookings yet.
The external calendars (iCal feeds, a Google Calendar by its secret iCal address) connected to one boat, with their sync state. MMK and Nausys are linked automatically and are not listed here. An empty list means none is connected to that boat.
The company's active discounts: codes guests type at checkout, automatic ones, and the pay-in-full discount, each with its value, booking window (`start_date`..`end_date`), stay window (`stay_from`..`stay_to`) and the boats it covers (`all_boats`, else `boat_ids`). An empty list means the company runs no discount.
Remove a block the operator placed, freeing its dates and releasing the partner holds it placed.
Disconnect an external calendar: its blocked dates are freed, and the holds X-Lock placed for them on the partner calendars are released.
Set the company's cancellation policy, company owners only: a guest who cancels at least `cancel_refund_days` before the charter gets `cancel_refund_percent` of the charter price back. The policy applies to the company's MMK and Nausys bookings only; its direct boats follow charter.boats terms, so a company whose boats are all direct is refused. Read get_cancellation_limits first. Returns the company as it now stands.
Switch X-Lock for a company, company admins and owners only. With X-Lock on, every block, option or booking placed on one partner calendar (MMK or Nausys) also places a hold on the boat's other partner calendar. `sync_existing` true also places or releases those holds for the bookings and blocks already there. Returns the company as it now stands. Read the current value with its read tool first; this call returns the value as it now stands.
Hide an equipment item from the boat's public listing and search, or show it again; the same item under another wording follows it. Use the item's name as get_boat lists it in `equipment_items`. Returns the new state.
Pull one external calendar now. Returns how many events it brought in, or the error the feed gave.
Change details of one of the operator's boats; only the fields sent change, and a field listed in `locked_fields` is ignored because the partner sync owns it. The answer carries `is_published` and `missing`, what the boat still lacks to be listed. Read the current value with its read tool first; this call returns the value as it now stands.
Hide one photo, show a hidden one again, or set the photo order (the first is the cover); send one of the three. Photo ids come from get_boat. Returns the boat with its photos as they now stand. New photos are uploaded on the boat's edit page.
Change company details; only the fields sent change. Any member may change the public profile; contact email, bank, tax and invoicing details are the owner's, and a request naming one from anyone else is refused whole. Read the current value with its read tool first; this call returns the value as it now stands.
Change a discount; only the fields sent change. Read the current value with its read tool first; this call returns the value as it now stands.
Change a direct fee row; only the fields sent change. Read the current value with its read tool first; this call returns the value as it now stands.
Change a direct season price; only the fields sent change. Read the current value with its read tool first; this call returns the value as it now stands.