Search Canadian hunting and fishing outfitters, check availability, and send price requests.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Outfitter ids obtained from search_outfitters.
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.
| Argument | Type | Description |
|---|---|---|
| locale | string | |
| api_key | string | |
| arrival* | string | |
| departure* | string | |
| party_size | integer | |
| outfitter_ids* | array | Outfitter ids obtained from search_outfitters. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"outfitter_ids",
"arrival",
"departure"
],
"properties": {
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"api_key": {
"type": "string",
"maxLength": 200
},
"arrival": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"departure": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"party_size": {
"type": "integer",
"maximum": 60,
"minimum": 1
},
"outfitter_ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 160
},
"maxItems": 10,
"minItems": 1,
"description": "Outfitter ids obtained from search_outfitters."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| email* | string | |
| phone | string | |
| locale | string | |
| api_key | string | |
| arrival | string | |
| message* | string | |
| departure | string | |
| full_name* | string | |
| package_id | string | |
| party_size | integer | |
| outfitter_id* |
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.
| Argument | Type | Description |
|---|---|---|
| id* | string | Document id from `search` (e.g. 'PV-0009') or the outfitter's MyOutfitters URL. |
| locale | string | |
| api_key | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "Document id from `search` (e.g. 'PV-0009') or the outfitter's MyOutfitters URL."
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| locale | string | |
| api_key | string | |
| arrival | string | Requested arrival date (YYYY-MM-DD). |
| departure | string | Requested departure date (YYYY-MM-DD). |
| party_size | integer | |
| outfitter_id* | string | Outfitter id (e.g. 'PV-0009') or the id-bearing MyOutfitters URL segment. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"outfitter_id"
],
"properties": {
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"api_key": {
"type": "string",
"maxLength": 200
},
"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",
"maximum": 60,
"minimum": 1
},
"outfitter_id": {
"type": "string",
"maxLength": 200,
"description": "Outfitter id (e.g. 'PV-0009') or the id-bearing MyOutfitters URL segment."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| locale | string | |
| api_key | string | |
| outfitter_id* | string | Outfitter id (e.g. 'PV-0009') or the id-bearing URL segment. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"outfitter_id"
],
"properties": {
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"api_key": {
"type": "string",
"maxLength": 200
},
"outfitter_id": {
"type": "string",
"maxLength": 160,
"description": "Outfitter id (e.g. 'PV-0009') or the id-bearing URL segment."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| locale | string | |
| api_key | string | |
| province | string | Filter regions, ZECs or cities by province. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"provinces",
"regions",
"species",
"activity_types",
"plan_types",
"lodging_types",
"access_types",
"amenities",
"zecs",
"cities",
"seasons"
],
"type": "string"
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"api_key": {
"type": "string",
"maxLength": 200
},
"province": {
"type": "string",
"maxLength": 60,
"description": "Filter regions, ZECs or cities by province."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | Natural-language query, e.g. 'white pike fishing in Lanaudière' or 'pourvoirie chasse orignal Abitibi'. |
| locale | string | |
| api_key | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Natural-language query, e.g. 'white pike fishing in Lanaudière' or 'pourvoirie chasse orignal Abitibi'."
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"api_key": {
"type": "string",
"maxLength": 200
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| zecs | array | ZEC names (Quebec controlled-exploitation zones). |
| limit | integer | Max results (hard cap 10). |
| access | array | Access types by code or name (road, boat, floatplane…). |
| locale | string | |
| region | string | A single tourist region, e.g. 'Mauricie'. |
| api_key | string | Optional MyOutfitters partner key. |
| keyword | string |
| string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"outfitter_id",
"full_name",
"email",
"message"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"maxLength": 255
},
"phone": {
"type": "string",
"maxLength": 40
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"api_key": {
"type": "string",
"maxLength": 200
},
"arrival": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"message": {
"type": "string",
"maxLength": 2000,
"minLength": 5
},
"departure": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"full_name": {
"type": "string",
"maxLength": 120,
"minLength": 2
},
"package_id": {
"type": "string",
"format": "uuid"
},
"party_size": {
"type": "integer",
"maximum": 60,
"minimum": 1
},
"outfitter_id": {
"type": "string",
"maxLength": 160
}
},
"additionalProperties": false
}| 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. |
| regions | array | Several tourist regions; an outfitter matches any of them. |
| seasons | array | Seasons the outfitter must be open in. |
| species | any | One species or several, e.g. ['doré','brochet'] / ['walleye','pike']. |
| activity | string | Shorthand for the two main activities. |
| province | string | Province code or name, e.g. 'QC', 'Ontario'. |
| amenities | array | Amenity names an outfitter must offer in one of its lodgings (all of them must match). |
| near_city | string | Major city used as the driving origin, e.g. 'Montréal', 'Toronto'. |
| activities | array | 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). |
| party_size | integer | Number of guests to accommodate. |
| plan_types | array | Meal plan types by code or name (américain / american, européen, MAP…). |
| min_bedrooms | integer | Minimum bedrooms in a single lodging ('minimum 4 chambres' / '4 rooms'). |
| lodging_types | array | Lodging types by code or name (chalet, camp, pavillon…). |
| prestige_only | boolean | Only Collection Prestige outfitters. |
| species_match | string | 'all' (default) requires every species; 'any' matches at least one. |
| max_drive_hours | number | Maximum driving hours from near_city (requires near_city). |
| min_double_beds | integer | Minimum number of two-person beds in that SAME lodging (double, queen, king; a double bunk bed counts as 2). |
| min_single_beds | integer | Minimum number of one-person beds in that SAME lodging (single beds; a bunk bed counts as 2). |
| hunt_or_fish_keyword | string | Deprecated alias of keyword. |
| max_price_per_person | number | Cap on the starting package price per person. |
| min_lodging_capacity | integer | 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. |
| budget_max_per_person_night | number | Cap on the per-person, per-night rate (package price divided by nights). |
| budget_min_per_person_night | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"zecs": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8,
"description": "ZEC names (Quebec controlled-exploitation zones)."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Max results (hard cap 10)."
},
"access": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 6,
"description": "Access types by code or name (road, boat, floatplane…)."
},
"locale": {
"enum": [
"fr",
"en"
],
"type": "string"
},
"region": {
"type": "string",
"maxLength": 60,
"description": "A single tourist region, e.g. 'Mauricie'."
},
"api_key": {
"type": "string",
"maxLength": 200,
"description": "Optional MyOutfitters partner key."
},
"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."
},
"regions": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8,
"description": "Several tourist regions; an outfitter matches any of them."
},
"seasons": {
"type": "array",
"items": {
"enum": [
"spring",
"summer",
"fall",
"winter"
],
"type": "string"
},
"maxItems": 4,
"description": "Seasons the outfitter must be open in."
},
"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']."
},
"activity": {
"enum": [
"fishing",
"hunting"
],
"type": "string",
"description": "Shorthand for the two main activities."
},
"province": {
"type": "string",
"maxLength": 60,
"description": "Province code or name, e.g. 'QC', 'Ontario'."
},
"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)."
},
"near_city": {
"type": "string",
"maxLength": 60,
"description": "Major city used as the driving origin, e.g. 'Montréal', 'Toronto'."
},
"activities": {
"type": "array",
"items": {
"enum": [
"chasse",
"peche",
"big_game_hunting",
"ice_fishing",
"bird_hunting",
"nature_lodging",
"family_experiences",
"hunting_fishing",
"ecotourism",
"rental"
],
"type": "string"
},
"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)."
},
"party_size": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Number of guests to accommodate."
},
"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…)."
},
"min_bedrooms": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Minimum bedrooms in a single lodging ('minimum 4 chambres' / '4 rooms')."
},
"lodging_types": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60
},
"maxItems": 8,
"description": "Lodging types by code or name (chalet, camp, pavillon…)."
},
"prestige_only": {
"type": "boolean",
"description": "Only Collection Prestige outfitters."
},
"species_match": {
"enum": [
"all",
"any"
],
"type": "string",
"description": "'all' (default) requires every species; 'any' matches at least one."
},
"max_drive_hours": {
"type": "number",
"maximum": 24,
"minimum": 0.5,
"description": "Maximum driving hours from near_city (requires near_city)."
},
"min_double_beds": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"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",
"maximum": 40,
"minimum": 1,
"description": "Minimum number of one-person beds in that SAME lodging (single beds; a bunk bed counts as 2)."
},
"hunt_or_fish_keyword": {
"type": "string",
"maxLength": 60,
"description": "Deprecated alias of keyword."
},
"max_price_per_person": {
"type": "number",
"maximum": 100000,
"minimum": 1,
"description": "Cap on the starting package price per person."
},
"min_lodging_capacity": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"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."
},
"budget_max_per_person_night": {
"type": "number",
"maximum": 100000,
"minimum": 1,
"description": "Cap on the per-person, per-night rate (package price divided by nights)."
},
"budget_min_per_person_night": {
"type": "number",
"maximum": 100000,
"minimum": 1
}
},
"additionalProperties": false
}