MyOutfitters MCP
An official MCP server for MyOutfitters.ca that allows AI agents to search for Canadian hunting and fishing outfitters, retrieve detailed profiles, check availability, and submit price requests without scraping HTML.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://myoutfitters.ca/mcpWhat its tools do
8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (7)
Can change data (1)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to myoutfitters.ca ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for hunting or fishing outfitters by activity, species, or location
- Retrieve detailed outfitter profiles including lodgings and amenities
- Check availability for specific dates and party sizes
- Submit price requests to outfitters on behalf of users
Source and maintenance
Protocol and capabilities
- Server
- myoutfitters 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 8 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
8 advertised
list_reference_data — List search vocabulary
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",
"$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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}search — Search MyOutfitters
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",
"$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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}fetch — Fetch a MyOutfitters document
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",
"$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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}search_outfitters — Search outfitters
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",
"$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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}get_outfitter — Get outfitter profile
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",
"$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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}get_booking_options — Get booking options
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",
"$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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}check_availability — Check availability
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",
"$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
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}create_price_request — Request a price or dates
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",
"$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
}{
"readOnlyHint": false,
"openWorldHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 403 ms
- 95th percentile latency
- 403 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 403 ms · metadata changed · 8 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http myoutfitters-mcp https://myoutfitters.ca/mcpCodex
codex mcp add myoutfitters-mcp --url https://myoutfitters.ca/mcpCursor
{
"mcpServers": {
"myoutfitters-mcp": {
"url": "https://myoutfitters.ca/mcp"
}
}
}Cline
{
"mcpServers": {
"myoutfitters-mcp": {
"type": "streamableHttp",
"url": "https://myoutfitters.ca/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"myoutfitters-mcp": {
"type": "http",
"url": "https://myoutfitters.ca/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http myoutfitters-mcp https://myoutfitters.ca/mcpClaude Desktop
https://myoutfitters.ca/mcpWindsurf
{
"mcpServers": {
"myoutfitters-mcp": {
"serverUrl": "https://myoutfitters.ca/mcp"
}
}
}Let your agent find its tools
Find servers like MyOutfitters MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run MyOutfitters MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.