Angling Lines
Carp fishing lakes in France: search venues, check availability, get week prices, book.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"angling-lines": {
"url": "https://www.anglinglines.com/mcp"
}
}
}Puntos de conexión remotos
https://www.anglinglines.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (8)
🟢list_venues
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.
Esquema de entrada
{
"type": "object",
"properties": {}
}🟢get_quote(booking_option, accommodation_ids, include_crossing, swims, venue, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"booking_option": {
"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.",
"minimum": 1,
"maximum": 4,
"type": "integer"
},
"accommodation_ids": {
"description": "Selected accommodation IDs returned by list_swims for this date. GCL booking_option includes the matching cabin automatically.",
"items": {
"minimum": 1,
"type": "integer"
},
"type": "array"
},
"include_crossing": {
"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.",
"type": "boolean"
},
"swims": {
"description": "Chosen swim numbers from list_swims; omit for suitable available defaults. Requote after changing swims.",
"items": {
"minimum": 1,
"type": "integer"
},
"type": "array"
},
"venue": {
"description": "The venue to quote, by name or slug, e.g. \"Beaurepaire\".",
"type": "string"
},
"date": {
"description": "The Saturday arrival date of the 7-day week, as YYYY-MM-DD. Every stay runs Saturday to Saturday.",
"type": "string"
},
"anglers": {
"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.",
"minimum": 1,
"type": "integer"
},
"non_anglers": {
"description": "Number of non-fishing guests. Defaults to 0.",
"minimum": 0,
"type": "integer"
},
"cars": {
"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.",
"minimum": 0,
"type": "integer"
},
"vans": {
"description": "Number of vans travelling. Preserve the customer's count in all crossing and booking calls. Defaults to 0.",
"minimum": 0,
"type": "integer"
},
"exclusive": {
"description": "Quote the venue exclusively for this party. Some party sizes force exclusive use anyway.",
"type": "boolean"
}
},
"required": [
"venue",
"date",
"anglers"
]
}🟢venues_available_on_date(anglers, date, month, non_anglers)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"anglers": {
"description": "Number of anglers (fishers) in the party.",
"minimum": 1,
"type": "integer"
},
"date": {
"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.",
"type": "string"
},
"month": {
"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.",
"type": "string"
},
"non_anglers": {
"description": "Number of non-fishing guests travelling with the party. Defaults to 0.",
"minimum": 0,
"type": "integer"
}
},
"required": [
"anglers"
]
}🟢search_categories(category)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"category": {
"description": "The category slug to open, e.g. \"big-carp-lakes\". Omit it to list every category.",
"type": "string"
}
}
}🟢search_venues(anglers, non_anglers, date, months, category, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"anglers": {
"description": "Number of anglers (fishing guests) in the party. Defaults to 1.",
"minimum": 1,
"type": "integer"
},
"non_anglers": {
"description": "Number of non-fishing guests travelling with the party. Defaults to 0.",
"minimum": 0,
"type": "integer"
},
"date": {
"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.",
"type": "string"
},
"months": {
"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.",
"items": {
"type": "string"
},
"type": "array"
},
"category": {
"description": "Narrow to a curated search category by slug, e.g. \"big-carp-lakes\". Call search_categories for the slugs that exist.",
"type": "string"
},
"min_carp_lb": {
"description": "Only lakes whose carp record is at least this many pounds, e.g. 60.",
"minimum": 0,
"type": "integer"
},
"min_lake_acres": {
"description": "Only lakes of at least this many acres, e.g. 10.",
"minimum": 0,
"type": "number"
},
"accommodation": {
"description": "Only lakes with on-site accommodation, rather than bivvy fishing.",
"type": "boolean"
},
"sleeps": {
"description": "Only lakes whose accommodation sleeps at least this many. Applies with \"accommodation\".",
"minimum": 1,
"type": "integer"
},
"fish_from_accommodation": {
"description": "Only lakes where you can fish from the accommodation. Applies with \"accommodation\".",
"type": "boolean"
},
"all_inclusive": {
"description": "Only all-inclusive venues.",
"type": "boolean"
},
"meals": {
"description": "Only venues where meals are available.",
"type": "boolean"
},
"pool_or_hot_tub": {
"description": "Only venues with a swimming pool or a hot tub.",
"type": "boolean"
},
"tackle_hire": {
"description": "Only venues where tackle can be hired.",
"type": "boolean"
},
"catfish": {
"description": "Only venues stocked with catfish.",
"type": "boolean"
},
"dogs_allowed": {
"description": "Only venues that accept dogs and other pets.",
"type": "boolean"
},
"campervans": {
"description": "Only venues that take campervans and motorhomes.",
"type": "boolean"
},
"rowing_boats": {
"description": "Only venues with rowing boats.",
"type": "boolean"
},
"bait_boats": {
"description": "Only venues where bait boats are allowed.",
"type": "boolean"
},
"bait_on_site": {
"description": "Only venues selling bait on site.",
"type": "boolean"
},
"crossing_optional": {
"description": "Only venues bookable WITHOUT a Channel crossing — the holiday is priced venue-only and the customer arranges their own travel.",
"type": "boolean"
}
}
}🟢list_crossings(booking_option, accommodation_ids, include_crossing, swims, venue, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"booking_option": {
"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.",
"minimum": 1,
"maximum": 4,
"type": "integer"
},
"accommodation_ids": {
"description": "Selected accommodation IDs returned by list_swims for this date. GCL booking_option includes the matching cabin automatically.",
"items": {
"minimum": 1,
"type": "integer"
},
"type": "array"
},
"include_crossing": {
"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.",
"type": "boolean"
},
"swims": {
"description": "Chosen swim numbers from list_swims; omit for suitable available defaults. Requote after changing swims.",
"items": {
"minimum": 1,
"type": "integer"
},
"type": "array"
},
"venue": {
"description": "The venue being booked, by name or slug, e.g. \"Beaurepaire\".",
"type": "string"
},
"date": {
"description": "The Saturday arrival date of the 7-day week, as YYYY-MM-DD.",
"type": "string"
},
"anglers": {
"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.",
"minimum": 1,
"type": "integer"
},
"non_anglers": {
"description": "Number of non-fishing guests. Defaults to 0.",
"minimum": 0,
"type": "integer"
},
"cars": {
"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.",
"minimum": 0,
"type": "integer"
},
"vans": {
"description": "Number of vans travelling. Use the same confirmed count as get_quote. Defaults to 0.",
"minimum": 0,
"type": "integer"
},
"exclusive": {
"description": "Whether the venue is being booked exclusively.",
"type": "boolean"
}
},
"required": [
"venue",
"date",
"anglers"
]
}🟢list_swims(venue, date, anglers, non_anglers, exclusive)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"venue": {
"description": "The venue, by name or slug, e.g. \"Fullys Lake\".",
"type": "string"
},
"date": {
"description": "The Saturday arrival date of the 7-day week, as YYYY-MM-DD.",
"type": "string"
},
"anglers": {
"description": "Actual number of anglers, not package or swim capacity. Pass it so the tool can check which choices fit the party.",
"minimum": 1,
"type": "integer"
},
"non_anglers": {
"description": "Number of non-fishing guests. Defaults to 0.",
"minimum": 0,
"type": "integer"
},
"exclusive": {
"description": "Whether the customer wants the venue exclusively.",
"type": "boolean"
}
},
"required": [
"venue",
"date"
]
}🟢prepare_booking(booking_option, accommodation_ids, include_crossing, venue, date, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"booking_option": {
"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.",
"minimum": 1,
"maximum": 4,
"type": "integer"
},
"accommodation_ids": {
"description": "Selected accommodation IDs returned by list_swims for this date. GCL booking_option includes the matching cabin automatically.",
"items": {
"minimum": 1,
"type": "integer"
},
"type": "array"
},
"include_crossing": {
"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.",
"type": "boolean"
},
"venue": {
"description": "The venue to book, by name or slug, e.g. \"Beaurepaire\".",
"type": "string"
},
"date": {
"description": "The Saturday arrival date of the 7-day week, as YYYY-MM-DD. Every stay runs Saturday to Saturday.",
"type": "string"
},
"anglers": {
"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.",
"minimum": 1,
"type": "integer"
},
"non_anglers": {
"description": "Number of non-fishing guests. Defaults to 0.",
"minimum": 0,
"type": "integer"
},
"cars": {
"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.",
"minimum": 0,
"type": "integer"
},
"vans": {
"description": "Number of vans travelling. Pass the customer's confirmed count from get_quote/list_crossings unchanged. Defaults to 0.",
"minimum": 0,
"type": "integer"
},
"exclusive": {
"description": "Book the venue exclusively for this party. Some party sizes force exclusive use anyway.",
"type": "boolean"
},
"outbound_route_id": {
"description": "Outbound crossing route id from list_crossings. Omit (with inbound_route_id) to book the cheapest crossing.",
"minimum": 1,
"type": "integer"
},
"inbound_route_id": {
"description": "Inbound crossing route id from list_crossings. Must be given together with outbound_route_id.",
"minimum": 1,
"type": "integer"
},
"dog_info": {
"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.",
"maxLength": 100,
"type": "string"
},
"swims": {
"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.",
"items": {
"minimum": 1,
"type": "integer"
},
"type": "array"
}
},
"required": [
"venue",
"date",
"anglers"
]
}Comunidad
Evidencia