Dispolà

Same-day appointment openings in Quebec: hair, nails, massage, physio. No account needed.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
83%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,966Tokens (tool definitions)
~3.4 KBTypical response size
Moderate attention impact (1.54% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "places": {
      "url": "https://dispola.ca/mcp"
    }
  }
}

Remote endpoints

https://dispola.ca/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools