Dispolà
Same-day appointment openings in Quebec: hair, nails, massage, physio. No account needed.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"places": {
"url": "https://dispola.ca/mcp"
}
}
}遠端端點
https://dispola.ca/mcpstreamable-http它能做什麼
工具清單
工具(4)
🟢chercher_places(ville, categorie, jour, moment, quartier, ...)
Cherche les places libres d'une ville, par catégorie, jour, moment et quartier. Rend l'établissement, le quartier, le service, l'heure, la durée, le prix et le lien pour réserver. Avec une catégorie, rend aussi sur_demande : des commerces sans réservation en ligne, avec des moments estimés à confirmer. / Finds open appointment spots in a city, by category, day, time of day and neighbourhood, with the booking link. With a category, also returns sur_demande: businesses without online booking, with estimated times to be confirmed by phone.
輸入結構描述
{
"type": "object",
"properties": {
"ville": {
"type": "string",
"enum": [
"montreal",
"quebec",
"sherbrooke",
"gatineau",
"rive-nord",
"rive-sud"
],
"description": "La ville. / The city."
},
"categorie": {
"type": "string",
"enum": [
"coiffure",
"ongles",
"cils",
"sourcils",
"esthetique",
"massotherapie",
"tatouage",
"physiotherapie",
"osteopathie",
"kinesiologie",
"therapie_sport",
"chiropratique",
"acupuncture"
],
"description": "La catégorie (voir categories_et_villes). / The category."
},
"jour": {
"type": "string",
"pattern": "^(aujourdhui|demain|\\d{4}-\\d{2}-\\d{2})$",
"description": "aujourdhui, demain ou AAAA-MM-JJ (heure de Montréal). / today, tomorrow or YYYY-MM-DD."
},
"moment": {
"type": "string",
"enum": [
"am",
"pm",
"soir"
],
"description": "am : avant midi ; pm : de midi à 17 h ; soir : après 17 h. / morning, afternoon, evening."
},
"quartier": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "Un quartier, par exemple Plateau ou Limoilou : trie du plus proche au plus loin. / A neighbourhood: sorts nearest first."
},
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude, avec lng : trie du plus proche au plus loin. / Latitude, with lng: sorts nearest first."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude, avec lat. / Longitude, with lat."
},
"limite": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10,
"description": "Nombre de places, 10 par défaut. / Max spots, default 10."
}
},
"required": [
"ville"
],
"additionalProperties": false
}🟢categories_et_villes
Les villes, les catégories et leurs services, avec le nombre de places libres par ville et par catégorie d'ici 7 jours. / Cities, categories and services, with the number of open spots per city and category over the next 7 days.
輸入結構描述
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢lien_alerte_texto(ville, service, quartier, jour, moment, ...)
Construit le lien du formulaire prérempli d'alerte texto quand aucune place ne convient. La personne l'ouvre, entre elle-même son cellulaire et consent aux textos ; ne soumets jamais le formulaire. / Builds a prefilled text alert form link; the person enters their own number and consents. Never submit it.
輸入結構描述
{
"type": "object",
"properties": {
"ville": {
"type": "string",
"enum": [
"montreal",
"quebec",
"sherbrooke",
"gatineau",
"rive-nord",
"rive-sud"
],
"description": "La ville. / The city."
},
"service": {
"type": "string",
"enum": [
"coiffure.coupe_femme",
"coiffure.coupe_homme",
"coiffure.coloration",
"coiffure.mise_en_plis",
"coiffure.barbe",
"ongles.gel",
"ongles.manucure",
"ongles.remplissage",
"ongles.pedicure",
"cils.classique",
"cils.hybride",
"cils.volume",
"cils.remplissage",
"cils.rehaussement",
"sourcils.restructuration",
"sourcils.teinture",
"sourcils.laminage",
"sourcils.fil",
"esthetique.soin_visage",
"esthetique.cire",
"esthetique.bresilienne",
"massotherapie.suedois",
"massotherapie.therapeutique",
"massotherapie.tissus_profonds",
"massotherapie.prenatal",
"tatouage.flash",
"tatouage.petit",
"tatouage.retouche",
"physiotherapie.evaluation",
"physiotherapie.traitement",
"osteopathie.traitement",
"kinesiologie.seance",
"therapie_sport.traitement",
"chiropratique.traitement",
"acupuncture.seance"
],
"description": "Le code du service, par exemple ongles.gel (voir categories_et_villes). / Service code."
},
"quartier": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "Le quartier de la personne. / Their neighbourhood."
},
"jour": {
"type": "string",
"pattern": "^(aujourdhui|demain|\\d{4}-\\d{2}-\\d{2})$",
"description": "aujourdhui, demain ou AAAA-MM-JJ (heure de Montréal). / today, tomorrow or YYYY-MM-DD."
},
"moment": {
"type": "string",
"enum": [
"am",
"pm",
"soir"
],
"description": "am : avant midi ; pm : de midi à 17 h ; soir : après 17 h. / morning, afternoon, evening."
},
"langue": {
"type": "string",
"enum": [
"fr",
"en"
],
"default": "fr",
"description": "Langue du formulaire. / Form language."
}
},
"required": [
"ville"
],
"additionalProperties": false
}🟢preparer_demande(commerce, heures, service, lieu, lat, ...)
Bâtit le lien de la demande chez un commerce sans réservation en ligne (sur_demande de chercher_places), avec les heures, le service et le lieu de la personne déjà choisis. La personne l'ouvre, vérifie, entre elle-même son prénom et son cellulaire et consent ; Dispolà appelle le commerce et lui texte l'heure confirmée. Ne soumets jamais le formulaire. / Builds the prefilled request link for a business without online booking, with the person's times, service and location filled in. The person opens it, enters their own name and number and consents; Dispolà calls the business. Never submit it.
輸入結構描述
{
"type": "object",
"properties": {
"commerce": {
"type": "string",
"pattern": "^[a-z0-9-]{1,120}$",
"description": "Le code du commerce (champ commerce de sur_demande). / Business code (commerce field of sur_demande)."
},
"heures": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(,\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}){0,11}$",
"description": "Les heures qui vont à la personne, prises dans moments de sur_demande, séparées par des virgules : au moins 2, en cas que la première soit prise. Ex. 2026-10-29T14:00,2026-10-29T15:00. / Times from sur_demande moments, comma-separated, at least 2."
},
"service": {
"type": "string",
"pattern": "^[a-z0-9-]{1,40}$",
"description": "Le service précis (champ services de sur_demande, ex. coupe-courts). / Precise service code."
},
"lieu": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "Où est la personne : code postal ou quartier, pour un commerce de rechange proche d’elle. / Postal code or neighbourhood."
},
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude de la personne, avec lng (arrondie à 100 m). / Latitude, with lng."
},
"lng": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude, avec lat. / Longitude, with lat."
},
"langue": {
"type": "string",
"enum": [
"fr",
"en"
],
"default": "fr",
"description": "Langue du formulaire. / Form language."
}
},
"required": [
"commerce"
],
"additionalProperties": false
}社群
證據