Find My Farmer
Find Canadian farms that sell direct — what they grow and raise, where, when, and at what price.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen compare
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": {
"farms": {
"url": "https://findmyfarmer.ca/mcp"
}
}
}Puntos de conexión remotos
https://findmyfarmer.ca/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (15)
🟢search_farms(query, province, page)
Search the Find My Farmer registry of local farms in Canada. Returns farm name, location (city/province), type, and the canonical findmyfarmer.ca page URL. Search matches farm names, stories, and what each farm sells (goods, packages, events).
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Free-text search, e.g. \"beef\", \"sourdough\", \"farm stays\". Omit to list farms."
},
"province": {
"type": "string",
"description": "Two-letter province/state code filter, e.g. \"AB\", \"BC\", \"MT\"."
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (10 results per page)."
}
}
}🟢get_farm(slug)
Fetch one farm's full public profile by its URL slug (the last path segment of a findmyfarmer.ca/farms/... URL, also returned by search_farms). Includes the farm story, contact channels the farmer chose to publish, and how to buy from them. Volume-capped: 50 profiles per caller per UTC day — this registry serves reference use and does not offer bulk datasets.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "The farm's URL slug, e.g. \"po-s-broccoli-patch\"."
}
},
"required": [
"slug"
]
}🟢search_farmdex(query)
Search the Farmdex — Find My Farmer's agricultural knowledge database of categories, species, and variants (e.g. heritage vegetable varieties, livestock breeds). Useful for resolving what a food product actually is before searching for farms that sell it.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "e.g. \"brandywine tomato\", \"highland cattle\"."
}
},
"required": [
"query"
]
}🟢list_hubs(province)
List Find My Farmer hubs — the named local-food regions (foodsheds) farms dock into. Useful for narrowing a farm search to a place.
Esquema de entrada
{
"type": "object",
"properties": {
"province": {
"type": "string",
"description": "Two-letter province/state code filter, e.g. \"AB\"."
}
}
}🟢find_near(lat, lng, place, radius_km, species, ...)
Farms AND coordination points (farmers' markets, off-farm pickup points, stockists) within a radius of a point or a named place, ordered by distance, optionally filtered by what is sold (species ids or a good slug), a farming practice, a service category, or an event type. Points carry their schedule and the farms present. Distances are straight-line from each farm's PUBLIC map point, or pass distance="road" for cached driving distance + minutes (cold pairs are filled once per call, capped). This is the "where can I get X near here — and where on Saturday" primitive.
Esquema de entrada
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"description": "Latitude of the centre. Pass lat+lng OR place."
},
"lng": {
"type": "number",
"description": "Longitude of the centre."
},
"place": {
"type": "string",
"description": "A place slug from list_places, e.g. \"calgary\", \"alberta/calgary\" or \"alberta\". Its centroid becomes the centre and its reach the default radius."
},
"radius_km": {
"type": "number",
"minimum": 1,
"maximum": 300,
"description": "Search radius in km (default: the place's reach, else 50; max 300)."
},
"species": {
"type": "array",
"items": {
"type": "string"
},
"description": "species ids (from search_farmdex / get_place_catalogue), OR-matched, e.g. [\"cattle-taurus\"]."
},
"good": {
"type": "string",
"description": "A goods slug from list_goods (e.g. \"grass-fed-beef\") — expands to its species and practice scope."
},
"practices": {
"type": "array",
"items": {
"type": "string"
},
"description": "farming practice ids from list_filters, e.g. [\"rotationalGrazing\"]."
},
"service_categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "service category slugs from list_filters, e.g. [\"hay-feed-forage\"]."
},
"event_types": {
"type": "array",
"items": {
"type": "string"
},
"description": "event type slugs from list_filters, e.g. [\"berry-picking\"]."
},
"distance": {
"type": "string",
"enum": [
"straight",
"road"
],
"description": "straight (default) = geodesic from the public point. road = driving km + minutes from the shared 90-day cache; a bounded number of cold pairs are routed fresh per call, the rest carry straight-line only until warmed. Maps-hidden farms never carry road figures."
},
"include": {
"type": "string",
"enum": [
"both",
"farms",
"points"
],
"description": "What to return: farms, points (markets / pickups / stockists), or both (default)."
},
"kinds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"market",
"pickup",
"retail"
]
},
"description": "Point kinds to include (default all)."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Results per page, applied to farms and points separately (default 25)."
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number."
}
}
}🟢price_stats(good, province)
Aggregate price statistics (low / median / mean / high, farm + observation counts, as-of dates) for a good, nationally or in one province, from Find My Farmer's price ledger. Every bucket covers at least 3 farms and names none; a single farm's own prices, each dated and cited, come from get_farm.
Esquema de entrada
{
"type": "object",
"properties": {
"good": {
"type": "string",
"description": "A goods slug from list_goods, e.g. \"grass-fed-beef\", \"raw-honey\"."
},
"province": {
"type": "string",
"description": "Province slug (\"alberta\"), code (\"AB\") or name. Omit for national."
}
},
"required": [
"good"
]
}🟢whats_in_season(province, month)
Species in their harvest window in a Canadian province for a given month (default: this month), with how many local published farms list each. Window-based (is the month inside start..end), not peak-based.
Esquema de entrada
{
"type": "object",
"properties": {
"province": {
"type": "string",
"description": "Province slug (\"ontario\"), code (\"ON\") or name."
},
"month": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"description": "Month number 1–12. Default: current month (UTC)."
}
},
"required": [
"province"
]
}🟢get_place_catalogue(province, metro)
Everything available near a place — every species that published farms serving the place list, in taxonomy shape (category → subcategory → species) with local farm counts — plus the place's Wikidata / GeoNames ids.
Esquema de entrada
{
"type": "object",
"properties": {
"province": {
"type": "string",
"description": "Province slug, e.g. \"alberta\"."
},
"metro": {
"type": "string",
"description": "Metro slug under that province, e.g. \"calgary\". Omit for the whole province."
}
},
"required": [
"province"
]
}🟢list_places(country, province)
The place graph: countries and provinces/states (no args), one country's provinces (country), or one province's metros (province). Each place carries its slug, centroid, reach, and Wikidata / GeoNames identifiers.
Esquema de entrada
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2, e.g. \"CA\"."
},
"province": {
"type": "string",
"description": "Province slug, e.g. \"alberta\" — returns its metros."
}
}
}🟢get_species(species)
One Farmdex species: names, taxonomy, description, its GBIF / Wikidata / ITIS identifiers, and its varieties or breeds. Resolve a food name to a species id first with search_farmdex.
Esquema de entrada
{
"type": "object",
"properties": {
"species": {
"type": "string",
"description": "species id, e.g. \"cattle-taurus\", \"garlic\"."
}
},
"required": [
"species"
]
}🟢define_term(term)
Find My Farmer's definition of a farming practice (rotational grazing, grass-finished, no-till…): the meaning, the nuance, the questions to ask a farmer, FAQs, and how many farms claim it. Returns the term's stable IRI.
Esquema de entrada
{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "Practice slug (\"rotational-grazing\") or id (\"rotationalGrazing\"). An unknown term returns the full list."
}
},
"required": [
"term"
]
}🟢list_goods
The goods Find My Farmer publishes reports and price statistics for — the slugs price_stats and find_near accept, each with the species and practices that define it.
Esquema de entrada
{
"type": "object",
"properties": {}
}🟢list_filters
The controlled vocabularies find_near accepts: farming practice ids, service category slugs, event type slugs.
Esquema de entrada
{
"type": "object",
"properties": {}
}⚪best_for(species, use, limit)
The best varieties of a species for a use — "best apple varieties for baking" — ranked from the Farmdex's documented tasting notes and trait spectra (1–5, relative to the species' reference variety). Pass species + use for the ranked answer; species alone lists the uses it can answer; use alone lists the species with an answer. A guide exists only once at least 3 documented varieties carry the use.
Esquema de entrada
{
"type": "object",
"properties": {
"species": {
"type": "string",
"description": "species id from search_farmdex, e.g. \"apple\", \"tomato\"."
},
"use": {
"type": "string",
"description": "a best-uses token, e.g. \"baking\", \"canning\", \"fresh eating\", \"juicing\"."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Max varieties returned (default 25); the url carries the full guide."
}
}
}🔴compare(a, b)
Two Farmdex varieties head to head — "Honeycrisp vs Gala": documented tasting prose, uses, and (same species) 1–5 trait values on shared axes relative to the species' reference variety. Both variants must clear a completeness bar (description + >= 2 documented sensory/use fields). Machine-only — there is deliberately no compare page family; cite the two variety URLs returned.
Esquema de entrada
{
"type": "object",
"properties": {
"a": {
"type": "string",
"description": "first variant id, e.g. \"apple-honeycrisp\" (from search_farmdex / best_for)."
},
"b": {
"type": "string",
"description": "second variant id, e.g. \"apple-gala\"."
}
},
"required": [
"a",
"b"
]
}Comunidad
Evidencia