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
}社区
证据