{"server":"com.anglinglines/angling-lines","count":8,"tools":[{"name":"get_quote","title":"Get Quote","description":"Quote one Angling Lines venue for one fixed 7-day week: give a venue name or slug, a Saturday arrival date (YYYY-MM-DD) and the party, and get the total price for the whole party for the whole week. Prices come from the live booking engine — the venue price plus the cheapest Channel crossing for the vehicles quoted — and are in GBP. Returns a structured \"unavailable\" result, not a price, when that week is not free for that party.","input_schema":{"type":"object","required":["venue","date","anglers"],"properties":{"cars":{"type":"integer","minimum":0,"description":"Number of cars travelling — crossing costs are per vehicle. Ask when unknown for a crossing quote; do not silently assume 1. Pass 0 for a van-only party. Defaults to 1 for older callers."},"date":{"type":"string","description":"The Saturday arrival date of the 7-day week, as YYYY-MM-DD. Every stay runs Saturday to Saturday."},"vans":{"type":"integer","minimum":0,"description":"Number of vans travelling. Preserve the customer's count in all crossing and booking calls. Defaults to 0."},"swims":{"type":"array","items":{"type":"integer","minimum":1},"description":"Chosen swim numbers from list_swims; omit for suitable available defaults. Requote after changing swims."},"venue":{"type":"string","description":"The venue to quote, by name or slug, e.g. \"Beaurepaire\"."},"anglers":{"type":"integer","minimum":1,"description":"Actual number of fishing guests supplied by the customer, never a package or swim capacity. Keep 2 guests as 2 even for a package with capacity 5."},"exclusive":{"type":"boolean","description":"Quote the venue exclusively for this party. Some party sizes force exclusive use anyway."},"non_anglers":{"type":"integer","minimum":0,"description":"Number of non-fishing guests. Defaults to 0."},"booking_option":{"type":"integer","maximum":4,"minimum":1,"description":"Golden Carp Lake whole package explicitly chosen by the customer after seeing available list_swims options: 1 cabin & swim 1; 2 all of swims 2,3,4; 3 exclusive without cabin; 4 exclusive with cabin. Never infer a package from a single swim preference such as swim 4. Required for GCL."},"include_crossing":{"type":"boolean","description":"True when the customer wants a crossing, including cheapest crossing at a crossing-optional venue. False for venue-only. Omit to use the venue default."},"accommodation_ids":{"type":"array","items":{"type":"integer","minimum":1},"description":"Selected accommodation IDs returned by list_swims for this date. GCL booking_option includes the matching cabin automatically."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-19T19:48:59.260Z"},{"name":"list_crossings","title":"List Channel Crossings","description":"List the Channel crossing choices for one trip — venue, Saturday arrival date (YYYY-MM-DD) and party — cheapest first. Each option gives the route, operator, ferry/tunnel type, crossing time, an overnight flag and the TOTAL holiday price with that crossing, plus the outbound/inbound route ids to pass to prepare_booking when the customer picks one. The cheapest option matches the get_quote price. Crossing choice is subject to sailing availability at checkout.","input_schema":{"type":"object","required":["venue","date","anglers"],"properties":{"cars":{"type":"integer","minimum":0,"description":"Number of cars travelling. Use the same confirmed count as get_quote; crossing costs are per vehicle. Pass 0 for a van-only party. Defaults to 1 for older callers."},"date":{"type":"string","description":"The Saturday arrival date of the 7-day week, as YYYY-MM-DD."},"vans":{"type":"integer","minimum":0,"description":"Number of vans travelling. Use the same confirmed count as get_quote. Defaults to 0."},"swims":{"type":"array","items":{"type":"integer","minimum":1},"description":"Chosen swim numbers from list_swims; omit for suitable available defaults. Requote after changing swims."},"venue":{"type":"string","description":"The venue being booked, by name or slug, e.g. \"Beaurepaire\"."},"anglers":{"type":"integer","minimum":1,"description":"Actual number of fishing guests supplied by the customer, never a package or swim capacity. Keep 2 guests as 2 even for a package with capacity 5."},"exclusive":{"type":"boolean","description":"Whether the venue is being booked exclusively."},"non_anglers":{"type":"integer","minimum":0,"description":"Number of non-fishing guests. Defaults to 0."},"booking_option":{"type":"integer","maximum":4,"minimum":1,"description":"Golden Carp Lake whole package explicitly chosen by the customer after seeing available list_swims options: 1 cabin & swim 1; 2 all of swims 2,3,4; 3 exclusive without cabin; 4 exclusive with cabin. Never infer a package from a single swim preference such as swim 4. Required for GCL."},"include_crossing":{"type":"boolean","description":"True when the customer wants a crossing, including cheapest crossing at a crossing-optional venue. False for venue-only. Omit to use the venue default."},"accommodation_ids":{"type":"array","items":{"type":"integer","minimum":1},"description":"Selected accommodation IDs returned by list_swims for this date. GCL booking_option includes the matching cabin automatically."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-19T19:48:59.260Z"},{"name":"list_swims","title":"List Swim Availability","description":"Check swim and accommodation availability for a venue on a specific Saturday date and actual party. Returns free/taken swim numbers, capacities, venue-specific rules and map URL. Golden Carp Lake sells four fixed booking_options, never individual swims: if asked for one swim, explain the full package and obtain customer acceptance before passing booking_option to get_quote, list_crossings or prepare_booking. Never silently expand a single-swim request or increase the party to package capacity. At other swim venues pass chosen swims and accommodation_ids, or allow suitable free defaults. Choices can affect price, so quote the final selection before confirming.","input_schema":{"type":"object","required":["venue","date"],"properties":{"date":{"type":"string","description":"The Saturday arrival date of the 7-day week, as YYYY-MM-DD."},"venue":{"type":"string","description":"The venue, by name or slug, e.g. \"Fullys Lake\"."},"anglers":{"type":"integer","minimum":1,"description":"Actual number of anglers, not package or swim capacity. Pass it so the tool can check which choices fit the party."},"exclusive":{"type":"boolean","description":"Whether the customer wants the venue exclusively."},"non_anglers":{"type":"integer","minimum":0,"description":"Number of non-fishing guests. Defaults to 0."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-19T19:48:59.260Z"},{"name":"list_venues","title":"List Venues","description":"List every bookable Angling Lines carp fishing venue in France, with its headline facts (lake size, swims, capacity, lake record, accommodation), boolean feature flags (dogs_allowed, catfish, pool_or_hot_tub, …) and canonical URLs. The feature keys match the search_venues filter names, so prefer search_venues to filter server-side. Takes no arguments. This is the full catalogue, not an availability check.","input_schema":{"type":"object","properties":{}},"output_schema":null,"annotations":{"readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-19T19:48:59.260Z"},{"name":"prepare_booking","title":"Prepare Booking","description":"Prepare a confirmed trip, including selected swims, accommodation, Golden Carp Lake booking_option and crossing, for the Angling Lines review page. Returns a live total and signed prefill link; creates nothing until the customer opens it. Call after the customer confirms the venue, Saturday date, party and choices. Missing or unavailable choices return a reason to resolve IN CHAT with list_swims/list_crossings; GCL can be booked through chat. Nothing is held or booked until checkout is completed.","input_schema":{"type":"object","required":["venue","date","anglers"],"properties":{"cars":{"type":"integer","minimum":0,"description":"Number of cars travelling. Pass the customer's confirmed count from get_quote/list_crossings unchanged, including 0 for a van-only party. Defaults to 1 for older callers."},"date":{"type":"string","description":"The Saturday arrival date of the 7-day week, as YYYY-MM-DD. Every stay runs Saturday to Saturday."},"vans":{"type":"integer","minimum":0,"description":"Number of vans travelling. Pass the customer's confirmed count from get_quote/list_crossings unchanged. Defaults to 0."},"swims":{"type":"array","items":{"type":"integer","minimum":1},"description":"Swim NUMBERS the customer chose (from list_swims), e.g. [1, 4]. Omit to auto-pick good free swims — the customer can change them on the review page. Ignored at venues without designated swims."},"venue":{"type":"string","description":"The venue to book, by name or slug, e.g. \"Beaurepaire\"."},"anglers":{"type":"integer","minimum":1,"description":"Actual number of fishing guests supplied by the customer, never a package or swim capacity. Keep 2 guests as 2 even for a package with capacity 5."},"dog_info":{"type":"string","maxLength":100,"description":"Dog count and breed(s) supplied by the customer, e.g. \"2 dogs: Labrador and Spaniel\". Ask for missing count/breeds; do not invent them. Only for dog-friendly venues. Saved on the booking and review/edit pages; dog crossing fees are added on the review page, not included in this quote."},"exclusive":{"type":"boolean","description":"Book the venue exclusively for this party. Some party sizes force exclusive use anyway."},"non_anglers":{"type":"integer","minimum":0,"description":"Number of non-fishing guests. Defaults to 0."},"booking_option":{"type":"integer","maximum":4,"minimum":1,"description":"Golden Carp Lake whole package explicitly chosen by the customer after seeing available list_swims options: 1 cabin & swim 1; 2 all of swims 2,3,4; 3 exclusive without cabin; 4 exclusive with cabin. Never infer a package from a single swim preference such as swim 4. Required for GCL."},"inbound_route_id":{"type":"integer","minimum":1,"description":"Inbound crossing route id from list_crossings. Must be given together with outbound_route_id."},"include_crossing":{"type":"boolean","description":"True when the customer wants a crossing, including cheapest crossing at a crossing-optional venue. False for venue-only. Omit to use the venue default."},"accommodation_ids":{"type":"array","items":{"type":"integer","minimum":1},"description":"Selected accommodation IDs returned by list_swims for this date. GCL booking_option includes the matching cabin automatically."},"outbound_route_id":{"type":"integer","minimum":1,"description":"Outbound crossing route id from list_crossings. Omit (with inbound_route_id) to book the cheapest crossing."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-19T19:48:59.260Z"},{"name":"search_categories","title":"Search Categories","description":"Browse the curated venue categories Angling Lines maintains — themed collections such as big carp lakes, family-friendly lakes, lakes with a swimming pool, or lakes close to Calais. Called with no arguments it lists every category with its description and venue count; pass a category slug to get the bookable venues in that category. These lists are hand-picked by Angling Lines, so they cannot be reproduced by filtering on venue attributes.","input_schema":{"type":"object","properties":{"category":{"type":"string","description":"The category slug to open, e.g. \"big-carp-lakes\". Omit it to list every category."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-19T19:48:59.260Z"},{"name":"search_venues","title":"Search Venues","description":"The tool for \"find me a lake\": search the Angling Lines catalogue by party size, features and availability, exactly the way the website search does. Every filter is optional — call it with nothing for the whole catalogue, or combine party size (\"anglers\", \"non_anglers\"), lake facts (\"min_carp_lb\", \"min_lake_acres\") and facilities (\"accommodation\", \"all_inclusive\", \"meals\", \"pool_or_hot_tub\", \"tackle_hire\", \"catfish\", \"dogs_allowed\", \"campervans\", \"rowing_boats\", \"bait_boats\", \"bait_on_site\"). Add a Saturday \"date\" (YYYY-MM-DD) to get real availability plus \"alternatives\" — venues that match everything but that week, each with the nearest earlier and later free Saturday — or \"months\" ([\"YYYY-MM\"]) to scan whole months. Narrow to a curated theme with \"category\", whose slugs come from search_categories.","input_schema":{"type":"object","properties":{"date":{"type":"string","description":"A single Saturday arrival date as \"YYYY-MM-DD\", e.g. \"2026-09-05\". Give this to get real availability plus earlier/later alternatives. Stays run Saturday to Saturday, so any other weekday is rejected."},"meals":{"type":"boolean","description":"Only venues where meals are available."},"months":{"type":"array","items":{"type":"string"},"description":"Whole months to scan, each as \"YYYY-MM\", e.g. [\"2026-09\", \"2026-10\"]. Use this OR \"date\". Returns venues with at least one free week in those months."},"sleeps":{"type":"integer","minimum":1,"description":"Only lakes whose accommodation sleeps at least this many. Applies with \"accommodation\"."},"anglers":{"type":"integer","minimum":1,"description":"Number of anglers (fishing guests) in the party. Defaults to 1."},"catfish":{"type":"boolean","description":"Only venues stocked with catfish."},"category":{"type":"string","description":"Narrow to a curated search category by slug, e.g. \"big-carp-lakes\". Call search_categories for the slugs that exist."},"bait_boats":{"type":"boolean","description":"Only venues where bait boats are allowed."},"campervans":{"type":"boolean","description":"Only venues that take campervans and motorhomes."},"min_carp_lb":{"type":"integer","minimum":0,"description":"Only lakes whose carp record is at least this many pounds, e.g. 60."},"non_anglers":{"type":"integer","minimum":0,"description":"Number of non-fishing guests travelling with the party. Defaults to 0."},"tackle_hire":{"type":"boolean","description":"Only venues where tackle can be hired."},"bait_on_site":{"type":"boolean","description":"Only venues selling bait on site."},"dogs_allowed":{"type":"boolean","description":"Only venues that accept dogs and other pets."},"rowing_boats":{"type":"boolean","description":"Only venues with rowing boats."},"accommodation":{"type":"boolean","description":"Only lakes with on-site accommodation, rather than bivvy fishing."},"all_inclusive":{"type":"boolean","description":"Only all-inclusive venues."},"min_lake_acres":{"type":"number","minimum":0,"description":"Only lakes of at least this many acres, e.g. 10."},"pool_or_hot_tub":{"type":"boolean","description":"Only venues with a swimming pool or a hot tub."},"crossing_optional":{"type":"boolean","description":"Only venues bookable WITHOUT a Channel crossing — the holiday is priced venue-only and the customer arranges their own travel."},"fish_from_accommodation":{"type":"boolean","description":"Only lakes where you can fish from the accommodation. Applies with \"accommodation\"."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-19T19:48:59.260Z"},{"name":"venues_available_on_date","title":"Venues Available On Date","description":"Check which Angling Lines venues genuinely have space for a party, either on one specific Saturday or across a whole month. Stays are fixed 7-day weeks, so an arrival date must be a Saturday in \"YYYY-MM-DD\" form; pass \"month\" as \"YYYY-MM\" instead to scan a whole month (defaults to the current month). Returns only venues with real availability, each with its free arrival dates and remaining capacity. Use this — not list_venues — whenever the question is about what is free or bookable.","input_schema":{"type":"object","required":["anglers"],"properties":{"date":{"type":"string","description":"A single Saturday arrival date as \"YYYY-MM-DD\", e.g. \"2026-09-05\". Use this OR \"month\". Stays run Saturday to Saturday, so any other weekday is rejected."},"month":{"type":"string","description":"A whole month to scan as \"YYYY-MM\", e.g. \"2026-09\". Use this OR \"date\". Defaults to the current month when neither is given."},"anglers":{"type":"integer","minimum":1,"description":"Number of anglers (fishers) in the party."},"non_anglers":{"type":"integer","minimum":0,"description":"Number of non-fishing guests travelling with the party. Defaults to 0."}}},"output_schema":null,"annotations":{"readOnlyHint":true,"idempotentHint":true},"source":"probe","observed_at":"2026-10-19T19:48:59.260Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/com.anglinglines%2Fangling-lines/connection?target=mcpServers","arguments":{"name":"com.anglinglines/angling-lines","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/com.anglinglines%2Fangling-lines","arguments":{"name":"com.anglinglines/angling-lines"}}]}