mcp
Search Canadian hunting and fishing outfitters, check availability, and send price requests.
我该使用它吗
质量与安全性
发现(2)
- LOW在 check_availability 中
- LOW在 fetch 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"mcp": {
"url": "https://myoutfitters.ca/mcp"
}
}
}远程端点
https://myoutfitters.ca/mcpstreamable-http它能做什么
工具清单
工具(8)
🟢list_reference_data(kind, province, locale, api_key)
List the values MyOutfitters understands for each search filter: provinces, regions, species, activity types, meal plan types, lodging types, access types, amenities, ZECs, major cities used as driving origins, and seasons. Contains no outfitter data.
输入模式
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"provinces",
"regions",
"species",
"activity_types",
"plan_types",
"lodging_types",
"access_types",
"amenities",
"zecs",
"cities",
"seasons"
]
},
"province": {
"type": "string",
"maxLength": 60,
"description": "Filter regions, ZECs or cities by province."
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"required": [
"kind"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search(query, limit, locale, api_key)
Free-text search over MyOutfitters' Canadian hunting and fishing outfitters (pourvoiries). Returns up to 10 documents with id, title and URL; pass an id to `fetch` for the full profile. For precise multi-criteria filtering (species, region, budget, lodging, dates) prefer search_outfitters. No phone, e-mail or website is ever returned.
输入模式
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Natural-language query, e.g. 'walleye fishing in Mauricie' or 'pourvoirie chasse orignal Abitibi'."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢fetch(id, locale, api_key)
Retrieve one MyOutfitters outfitter document by the id returned by `search` (e.g. 'PV-0009') or by its MyOutfitters URL. Returns id, title, url, readable text and metadata. No phone, e-mail or website is ever returned.
输入模式
{
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "Document id from `search` (e.g. 'PV-0009') or the outfitter's MyOutfitters URL."
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"required": [
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_outfitters(province, region, regions, zecs, near_city, ...)
Find up to 10 Canadian hunting and fishing outfitters (pourvoiries) matching a traveller's criteria, using the same advanced filters as the website: activities, several species at once, province, region, ZEC, access type, driving distance from a major city, Collection Prestige, per-person nightly budget, lodging type, single-lodging capacity, bedrooms, two-person and one-person bed counts, meal plan, season and equipment/amenities. Lodging criteria (capacity, bedrooms, beds, amenities) must all be met by the SAME cabin. At least one criterion is required — the full directory is never returned. Results carry no phone number, e-mail or website: enquiries go through create_price_request. Call list_reference_data to learn the valid values for any filter.
输入模式
{
"type": "object",
"properties": {
"province": {
"type": "string",
"maxLength": 60,
"description": "Province code or name, e.g. 'QC', 'Ontario'."
},
"region": {
"type": "string",
"maxLength": 60,
"description": "A single tourist region, e.g. 'Mauricie'."
},
"regions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8,
"description": "Several tourist regions; an outfitter matches any of them."
},
"zecs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8,
"description": "ZEC names (Quebec controlled-exploitation zones)."
},
"near_city": {
"type": "string",
"maxLength": 60,
"description": "Major city used as the driving origin, e.g. 'Montréal', 'Toronto'."
},
"max_drive_hours": {
"type": "number",
"minimum": 0.5,
"maximum": 24,
"description": "Maximum driving hours from near_city (requires near_city)."
},
"activity": {
"type": "string",
"enum": [
"fishing",
"hunting"
],
"description": "Shorthand for the two main activities."
},
"activities": {
"type": "array",
"items": {
"type": "string",
"enum": [
"chasse",
"peche",
"big_game_hunting",
"ice_fishing",
"bird_hunting",
"nature_lodging",
"family_experiences",
"hunting_fishing",
"ecotourism",
"rental"
]
},
"maxItems": 6,
"description": "Exact activity-type codes an outfitter must offer: chasse (hunting), peche (fishing), big_game_hunting, ice_fishing (pêche sur glace), bird_hunting (chasse aux oiseaux), nature_lodging, family_experiences, hunting_fishing, ecotourism, rental (equipment rental)."
},
"species": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8
}
],
"description": "One species or several, e.g. ['doré','brochet'] / ['walleye','pike']."
},
"species_match": {
"type": "string",
"enum": [
"all",
"any"
],
"description": "'all' (default) requires every species; 'any' matches at least one."
},
"hunt_or_fish_keyword": {
"type": "string",
"maxLength": 60,
"description": "Deprecated alias of keyword."
},
"keyword": {
"type": "string",
"maxLength": 60,
"description": "Free text matched against the outfitter name, town, street address and the lakes, reservoirs and rivers it operates on; water-body and address matches rank first."
},
"party_size": {
"type": "integer",
"minimum": 1,
"maximum": 60,
"description": "Number of guests to accommodate."
},
"min_bedrooms": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Minimum bedrooms in a single lodging ('minimum 4 chambres' / '4 rooms')."
},
"min_double_beds": {
"type": "integer",
"minimum": 1,
"maximum": 40,
"description": "Minimum number of two-person beds in that SAME lodging (double, queen, king; a double bunk bed counts as 2)."
},
"min_single_beds": {
"type": "integer",
"minimum": 1,
"maximum": 40,
"description": "Minimum number of one-person beds in that SAME lodging (single beds; a bunk bed counts as 2)."
},
"min_lodging_capacity": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Minimum number of people a SINGLE cabin/lodging must sleep (e.g. 'a cabin for 10 people' → 10). Different from party_size, which is how many travellers are coming."
},
"max_price_per_person": {
"type": "number",
"minimum": 1,
"maximum": 100000,
"description": "Cap on the starting package price per person."
},
"budget_min_per_person_night": {
"type": "number",
"minimum": 1,
"maximum": 100000
},
"budget_max_per_person_night": {
"type": "number",
"minimum": 1,
"maximum": 100000,
"description": "Cap on the per-person, per-night rate (package price divided by nights)."
},
"access": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6,
"description": "Access types by code or name (road, boat, floatplane…)."
},
"lodging_types": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8,
"description": "Lodging types by code or name (chalet, camp, pavillon…)."
},
"plan_types": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6,
"description": "Meal plan types by code or name (américain / american, européen, MAP…)."
},
"amenities": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8,
"description": "Amenity names an outfitter must offer in one of its lodgings (all of them must match)."
},
"seasons": {
"type": "array",
"items": {
"type": "string",
"enum": [
"spring",
"summer",
"fall",
"winter"
]
},
"maxItems": 4,
"description": "Seasons the outfitter must be open in."
},
"prestige_only": {
"type": "boolean",
"description": "Only Collection Prestige outfitters."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Max results (hard cap 10)."
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Optional MyOutfitters partner key."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_outfitter(outfitter_id, locale, api_key)
Public profile of one outfitter: territory, species, season, and up to 8 summarised packages. Rates appear only when the outfitter has confirmed its listing. No phone, e-mail or website is ever returned.
输入模式
{
"type": "object",
"properties": {
"outfitter_id": {
"type": "string",
"maxLength": 160,
"description": "Outfitter id (e.g. 'PV-0009') or the id-bearing URL segment."
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"required": [
"outfitter_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_booking_options(outfitter_id, arrival, departure, party_size, locale, ...)
For one outfitter, return how a stay can be booked: booking mode (online payment on MyOutfitters, or a price request through MyOutfitters' anonymised relay), the packages that fit the party and the requested dates, indicative per-person rates when the listing is confirmed, the season window and the exact next step. Optionally pass dates and party size to filter the packages and get a season/availability verdict.
输入模式
{
"type": "object",
"properties": {
"outfitter_id": {
"type": "string",
"maxLength": 200,
"description": "Outfitter id (e.g. 'PV-0009') or the id-bearing MyOutfitters URL segment."
},
"arrival": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Requested arrival date (YYYY-MM-DD)."
},
"departure": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Requested departure date (YYYY-MM-DD)."
},
"party_size": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"required": [
"outfitter_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_availability(outfitter_ids, arrival, departure, party_size, locale, ...)
For up to 10 named outfitters, tell whether the requested dates fall in season and which packages fit the party. Returns a verdict per outfitter, never raw inventory.
输入模式
{
"type": "object",
"properties": {
"outfitter_ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 160
},
"minItems": 1,
"maxItems": 10,
"description": "Outfitter ids obtained from search_outfitters."
},
"arrival": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"departure": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"party_size": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"required": [
"outfitter_ids",
"arrival",
"departure"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_price_request(outfitter_id, full_name, email, phone, message, ...)
Send a traveller's enquiry to one outfitter through MyOutfitters' anonymised relay. Requires the traveller's own name and e-mail, given with their consent. The outfitter replies by e-mail; neither side sees the other's raw contact details.
输入模式
{
"type": "object",
"properties": {
"outfitter_id": {
"type": "string",
"maxLength": 160
},
"full_name": {
"type": "string",
"minLength": 2,
"maxLength": 120
},
"email": {
"type": "string",
"format": "email",
"maxLength": 255
},
"phone": {
"type": "string",
"maxLength": 40
},
"message": {
"type": "string",
"minLength": 5,
"maxLength": 2000
},
"arrival": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"departure": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"party_size": {
"type": "integer",
"minimum": 1,
"maximum": 60
},
"package_id": {
"type": "string",
"format": "uuid"
},
"locale": {
"type": "string",
"enum": [
"fr",
"en"
]
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"required": [
"outfitter_id",
"full_name",
"email",
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}推荐提示词
searchfetchlist_reference_datasearchfetch社区
证据