qasper
What this MCP does
Discovers local service businesses, retrieves services and pricing, checks availability, sends inquiries, and books appointments.
Tools
Input schema
{'type': 'object', 'required': ['slug', 'question'], 'properties': {'slug': {'type': 'string', 'description': 'The exact URL slug returned by a Qasper discovery result. Copy it verbatim.'}, 'question': {'type': 'string', 'description': "The customer's direct question or request for this specific business agent."}, 'conversationId': {'type': ['string', 'null'], 'default': None, 'description': 'Optional existing Qasper business-agent conversation id for audit grouping. Leave null for a new conversation.'}}}
Input schema
{'type': 'object', 'required': ['slug', 'serviceName', 'dateTime', 'customerName', 'customerPhone', 'customerEmail', 'jobDescription', 'clientRequestId'], 'properties': {'slug': {'type': 'string', 'description': 'The exact URL slug returned by a Qasper discovery result. Copy it verbatim.'}, 'dateTime': {'type': 'string', 'description': "Appointment start date and time in ISO 8601 format (e.g. '2026-04-07T14:00:00+03:00')"}, 'serviceName': {'type': 'string', 'description': 'The name of the service to book'}, 'customerName': {'type': 'string', 'description': 'Full name of the customer'}, 'customerEmail': {'type': 'string', 'description': 'Customer email address'}, 'customerPhone': {'type': 'string', 'description': 'Customer phone number'}, 'jobDescription': {'type': 'string', 'description': 'Detailed description of the job or reason for appointment. Include any visual details about the issue — damage, location, severity, photos described in text form.'}, 'clientRequestId': {'type': 'string', 'description': 'REQUIRED. Stable UUID identifying this booking attempt. Generate ONCE at the moment you decide to book; reuse the SAME value on every retry of the same logical attempt so the server can dedup. A fresh value on retry will mint a duplicate calendar event.'}, 'customerAddress': {'type': ['string', 'null'], 'default': None, 'description': "Customer's full service address. Required when the selected service has requiresCustomerAddress=true; omit or leave blank for services that do not need an address."}}}
Input schema
{'type': 'object', 'required': ['slug', 'date', 'serviceName'], 'properties': {'date': {'type': 'string', 'description': "The date to check availability for (YYYY-MM-DD format, e.g. '2026-04-07')"}, 'slug': {'type': 'string', 'description': 'The exact URL slug returned by search_businesses or get_business_info. Copy it verbatim.'}, 'serviceName': {'type': 'string', 'description': 'The name of the service to check availability for'}}}
Input schema
{'type': 'object', 'required': ['subCategory', 'serviceQuery', 'startDate'], 'properties': {'latitude': {'type': ['number', 'null'], 'default': None, 'description': 'Latitude of the search location. Pass when the client has a map viewport or GPS position.'}, 'radiusKm': {'type': 'number', 'default': 10, 'description': 'Search radius in kilometers, default 10.'}, 'longitude': {'type': ['number', 'null'], 'default': None, 'description': 'Longitude of the search location. Pass alongside latitude.'}, 'startDate': {'type': 'string', 'description': "First local date to search from (YYYY-MM-DD). Use today's date when the user asks for the next available option."}, 'countryCode': {'type': ['string', 'null'], 'default': None, 'description': "ISO-3166 alpha-2 country code (e.g. 'GR', 'US', 'GB'). Set when deducible."}, 'resultLimit': {'type': 'integer', 'default': 5, 'description': 'Maximum number of available appointment matches to return. Defaults to 5 and is clamped between 1 and 20.'}, 'serviceMode': {'type': ['string', 'null'], 'default': None, 'description': "Hard filter on how the business delivers service. One of: 'in_person', 'remote', 'service_area', 'nationwide'."}, 'subCategory': {'enum': ['None', 'Doctor', 'Dentist', 'Therapist', 'Psychologist', 'Psychiatrist', 'Physiotherapist', 'Nutritionist', 'Optometrist', 'Veterinarian', 'Chiropractor', 'Nurse', 'Dermatologist', 'Gynecologist', 'Pediatrician', 'Cardiologist', 'Orthopedist', 'Urologist', 'Endocrinologist', 'Neurologist', 'Oncologist', 'Ophthalmologist', 'Rheumatologist', 'Gastroenterologist', 'Pulmonologist', 'ENTSpecialist', 'Radiologist', 'Anesthesiologist', 'Pathologist', 'Surgeon', 'PlasticSurgeon', 'SpeechTherapist', 'OccupationalTherapist', 'Midwife', 'Pharmacist', 'Osteopath', 'Podiatrist', 'Dietitian', 'Homeopath', 'Acupuncturist', 'PediatricClinic', 'DentalClinic', 'PhysicalTherapyClinic', 'ChiropracticClinic', 'PlasticSurgeryClinic', 'MedicalWeightLossClinic', 'HormoneTherapyClinic', 'FunctionalMedicineClinic', 'PediatricTherapyClinic', 'AbaTherapyCenter', 'HearingCenter', 'AddictionTreatmentCenter', 'InterventionalRadiologyClinic', 'AnorectalCareClinic', 'GeneralClinic', 'SkilledNursingFacility', 'DiagnosticCenter', 'Lawyer', 'Notary', 'FamilyLawyer', 'CriminalLawyer', 'CorporateLawyer', 'ImmigrationLawyer', 'RealEstateLawyer', 'LaborLawyer', 'IntellectualPropertyLawyer', 'TaxLawyer', 'Mediator', 'PersonalInjuryLawyer', 'Accountant', 'FinancialAdvisor', 'TaxConsultant', 'InsuranceAgent', 'MortgageBroker', 'InvestmentAdvisor', 'Auditor', 'Bookkeeper', 'WealthManager', 'CryptoAdvisor', 'Plumber', 'Electrician', 'Mechanic', 'Carpenter', 'Painter', 'Locksmith', 'Cleaner', 'Gardener', 'PestControl', 'HvacTechnician', 'InteriorDesigner', 'Architect', 'Roofer', 'Tiler', 'Plasterer', 'WindowCleaner', 'PoolMaintenance', 'SecurityInstaller', 'SolarInstaller', 'Handyman', 'Mover', 'WasteRemoval', 'CarRental', 'PetTransport', 'PetGroomer', 'PetSitter', 'DogWalker', 'PetPhysiotherapist', 'CanineHydrotherapist', 'PetPhotographer', 'PetGroomingSchool', 'HairSalon', 'Barber', 'NailTechnician', 'MassageTherapist', 'PersonalTrainer', 'YogaInstructor', 'TattooArtist', 'MakeupArtist', 'Aesthetician', 'Eyebrow', 'Eyelash', 'WaxingSpecialist', 'PermanentMakeup', 'NailArtist', 'BodyPiercer', 'Trichologist', 'SpaTherapist', 'SunbedStudio', 'MedSpa', 'FitnessStudio', 'HairStylist', 'WellnessRecoveryClinic', 'Tutor', 'MusicTeacher', 'LanguageTeacher', 'DrivingInstructor', 'LifeCoach', 'MathTutor', 'ScienceTutor', 'ArtTeacher', 'DanceInstructor', 'SwimmingInstructor', 'MartialArtsInstructor', 'ChessCoach', 'CodingInstructor', 'ExamCoach', 'CareerCoach', 'SportsCoach', 'ItSupport', 'WebDeveloper', 'Photographer', 'Videographer', 'GraphicDesigner', 'SoftwareDeveloper', 'MobileAppDeveloper', 'DataAnalyst', 'CyberSecurityConsultant', 'SeoSpecialist', 'SocialMediaManager', 'ContentCreator', 'UxDesigner', 'DroneOperator', 'VideoEditor', 'SoundEngineer', 'ThreeDDesigner', 'AnimationArtist', 'Consultant', 'MarketingConsultant', 'Translator', 'BusinessCoach', 'HrConsultant', 'PrSpecialist', 'CopyWriter', 'VirtualAssistant', 'ProjectManager', 'SupplyChainConsultant', 'BrandingConsultant', 'SeniorLivingPlacementAgency', 'Recruiter', 'EventPlanner', 'WeddingPlanner', 'Caterer', 'Dj', 'Chef', 'PrivateChef', 'BartenderMixologist', 'Florist', 'Entertainer', 'PhotoboothRental', 'TourOperator', 'PrivateDriver', 'OnlineRetailer', 'Artist', 'FineArtPainter', 'Illustrator', 'PortraitArtist', 'Muralist', 'Printmaker', 'Caricaturist', 'Calligrapher'], 'type': 'string', 'description': "Exact ProfessionalProfileSubCategory enum value derived from the user's request (e.g. 'EventPlanner', 'Dentist', 'Therapist'). Required."}, 'daysToSearch': {'type': 'integer', 'default': 14, 'description': 'Number of calendar days to scan starting at startDate. Defaults to 14 and is clamped between 1 and 31.'}, 'locationText': {'type': ['string', 'null'], 'default': None, 'description': 'Place name as the user said it. Pass null only for remote or nationwide service searches.'}, 'serviceQuery': {'type': 'string', 'description': "Service or activity wording from the user, e.g. 'boat trip', 'therapy session', 'haircut'."}, 'attributeFilters': {'type': ['string', 'null'], 'default': None, 'description': 'Hard filter on vertical-specific attributes as a JSON object. Keys and values come from get_refinement_options.'}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The exact URL slug returned by search_businesses (e.g. 'nikos-plumbing-a3f2'). Copy it verbatim."}}}
Input schema
{'type': 'object', 'required': ['slug', 'serviceName'], 'properties': {'slug': {'type': 'string', 'description': 'The exact URL slug returned by search_businesses or get_business_info. Copy it verbatim.'}, 'isEmergency': {'type': 'boolean', 'default': False, 'description': 'Whether this is an emergency/urgent request'}, 'serviceName': {'type': 'string', 'description': 'The name of the service to get pricing for'}, 'requestedDate': {'type': ['string', 'null'], 'default': None, 'description': 'The requested date (YYYY-MM-DD), used to determine weekend rates'}}}
Input schema
{'type': 'object', 'required': ['subCategory'], 'properties': {'subCategory': {'enum': ['None', 'Doctor', 'Dentist', 'Therapist', 'Psychologist', 'Psychiatrist', 'Physiotherapist', 'Nutritionist', 'Optometrist', 'Veterinarian', 'Chiropractor', 'Nurse', 'Dermatologist', 'Gynecologist', 'Pediatrician', 'Cardiologist', 'Orthopedist', 'Urologist', 'Endocrinologist', 'Neurologist', 'Oncologist', 'Ophthalmologist', 'Rheumatologist', 'Gastroenterologist', 'Pulmonologist', 'ENTSpecialist', 'Radiologist', 'Anesthesiologist', 'Pathologist', 'Surgeon', 'PlasticSurgeon', 'SpeechTherapist', 'OccupationalTherapist', 'Midwife', 'Pharmacist', 'Osteopath', 'Podiatrist', 'Dietitian', 'Homeopath', 'Acupuncturist', 'PediatricClinic', 'DentalClinic', 'PhysicalTherapyClinic', 'ChiropracticClinic', 'PlasticSurgeryClinic', 'MedicalWeightLossClinic', 'HormoneTherapyClinic', 'FunctionalMedicineClinic', 'PediatricTherapyClinic', 'AbaTherapyCenter', 'HearingCenter', 'AddictionTreatmentCenter', 'InterventionalRadiologyClinic', 'AnorectalCareClinic', 'GeneralClinic', 'SkilledNursingFacility', 'DiagnosticCenter', 'Lawyer', 'Notary', 'FamilyLawyer', 'CriminalLawyer', 'CorporateLawyer', 'ImmigrationLawyer', 'RealEstateLawyer', 'LaborLawyer', 'IntellectualPropertyLawyer', 'TaxLawyer', 'Mediator', 'PersonalInjuryLawyer', 'Accountant', 'FinancialAdvisor', 'TaxConsultant', 'InsuranceAgent', 'MortgageBroker', 'InvestmentAdvisor', 'Auditor', 'Bookkeeper', 'WealthManager', 'CryptoAdvisor', 'Plumber', 'Electrician', 'Mechanic', 'Carpenter', 'Painter', 'Locksmith', 'Cleaner', 'Gardener', 'PestControl', 'HvacTechnician', 'InteriorDesigner', 'Architect', 'Roofer', 'Tiler', 'Plasterer', 'WindowCleaner', 'PoolMaintenance', 'SecurityInstaller', 'SolarInstaller', 'Handyman', 'Mover', 'WasteRemoval', 'CarRental', 'PetTransport', 'PetGroomer', 'PetSitter', 'DogWalker', 'PetPhysiotherapist', 'CanineHydrotherapist', 'PetPhotographer', 'PetGroomingSchool', 'HairSalon', 'Barber', 'NailTechnician', 'MassageTherapist', 'PersonalTrainer', 'YogaInstructor', 'TattooArtist', 'MakeupArtist', 'Aesthetician', 'Eyebrow', 'Eyelash', 'WaxingSpecialist', 'PermanentMakeup', 'NailArtist', 'BodyPiercer', 'Trichologist', 'SpaTherapist', 'SunbedStudio', 'MedSpa', 'FitnessStudio', 'HairStylist', 'WellnessRecoveryClinic', 'Tutor', 'MusicTeacher', 'LanguageTeacher', 'DrivingInstructor', 'LifeCoach', 'MathTutor', 'ScienceTutor', 'ArtTeacher', 'DanceInstructor', 'SwimmingInstructor', 'MartialArtsInstructor', 'ChessCoach', 'CodingInstructor', 'ExamCoach', 'CareerCoach', 'SportsCoach', 'ItSupport', 'WebDeveloper', 'Photographer', 'Videographer', 'GraphicDesigner', 'SoftwareDeveloper', 'MobileAppDeveloper', 'DataAnalyst', 'CyberSecurityConsultant', 'SeoSpecialist', 'SocialMediaManager', 'ContentCreator', 'UxDesigner', 'DroneOperator', 'VideoEditor', 'SoundEngineer', 'ThreeDDesigner', 'AnimationArtist', 'Consultant', 'MarketingConsultant', 'Translator', 'BusinessCoach', 'HrConsultant', 'PrSpecialist', 'CopyWriter', 'VirtualAssistant', 'ProjectManager', 'SupplyChainConsultant', 'BrandingConsultant', 'SeniorLivingPlacementAgency', 'Recruiter', 'EventPlanner', 'WeddingPlanner', 'Caterer', 'Dj', 'Chef', 'PrivateChef', 'BartenderMixologist', 'Florist', 'Entertainer', 'PhotoboothRental', 'TourOperator', 'PrivateDriver', 'OnlineRetailer', 'Artist', 'FineArtPainter', 'Illustrator', 'PortraitArtist', 'Muralist', 'Printmaker', 'Caricaturist', 'Calligrapher'], 'type': 'string', 'description': "The exact subcategory enum the user is asking about (e.g. 'Therapist', 'Plumber', 'Dentist'). Pick the most specific value from ProfessionalProfileSubCategory based on the user's words. Use 'None' only when the user's request truly does not name a profession."}}}
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'The exact URL slug returned by search_businesses or get_business_info. Copy it verbatim.'}}}
Input schema
{'type': 'object', 'required': ['subCategory'], 'properties': {'latitude': {'type': ['number', 'null'], 'default': None, 'description': 'Latitude of the search location. Pass when the client has a map viewport or GPS position that should override coordinates geocoded from locationText.'}, 'radiusKm': {'type': 'number', 'default': 10, 'description': 'Search radius in kilometers, default 10.'}, 'longitude': {'type': ['number', 'null'], 'default': None, 'description': 'Longitude of the search location. Pass alongside latitude.'}, 'countryCode': {'type': ['string', 'null'], 'default': None, 'description': "ISO-3166 alpha-2 country code (e.g. 'GR', 'US', 'GB'). Set when deducible from locationText or context, even if locationText is just a city — the server uses it to short-circuit geocoding for country-scope queries."}, 'resultLimit': {'type': 'integer', 'default': 5, 'description': 'Maximum number of businesses to return. Defaults to 5 and is clamped between 1 and 20.'}, 'serviceMode': {'type': ['string', 'null'], 'default': None, 'description': "Hard filter on how the business delivers service. One of: 'in_person', 'remote', 'service_area', 'nationwide'. Only profiles matching the mode are returned. Leave null when the user has no preference."}, 'subCategory': {'enum': ['None', 'Doctor', 'Dentist', 'Therapist', 'Psychologist', 'Psychiatrist', 'Physiotherapist', 'Nutritionist', 'Optometrist', 'Veterinarian', 'Chiropractor', 'Nurse', 'Dermatologist', 'Gynecologist', 'Pediatrician', 'Cardiologist', 'Orthopedist', 'Urologist', 'Endocrinologist', 'Neurologist', 'Oncologist', 'Ophthalmologist', 'Rheumatologist', 'Gastroenterologist', 'Pulmonologist', 'ENTSpecialist', 'Radiologist', 'Anesthesiologist', 'Pathologist', 'Surgeon', 'PlasticSurgeon', 'SpeechTherapist', 'OccupationalTherapist', 'Midwife', 'Pharmacist', 'Osteopath', 'Podiatrist', 'Dietitian', 'Homeopath', 'Acupuncturist', 'PediatricClinic', 'DentalClinic', 'PhysicalTherapyClinic', 'ChiropracticClinic', 'PlasticSurgeryClinic', 'MedicalWeightLossClinic', 'HormoneTherapyClinic', 'FunctionalMedicineClinic', 'PediatricTherapyClinic', 'AbaTherapyCenter', 'HearingCenter', 'AddictionTreatmentCenter', 'InterventionalRadiologyClinic', 'AnorectalCareClinic', 'GeneralClinic', 'SkilledNursingFacility', 'DiagnosticCenter', 'Lawyer', 'Notary', 'FamilyLawyer', 'CriminalLawyer', 'CorporateLawyer', 'ImmigrationLawyer', 'RealEstateLawyer', 'LaborLawyer', 'IntellectualPropertyLawyer', 'TaxLawyer', 'Mediator', 'PersonalInjuryLawyer', 'Accountant', 'FinancialAdvisor', 'TaxConsultant', 'InsuranceAgent', 'MortgageBroker', 'InvestmentAdvisor', 'Auditor', 'Bookkeeper', 'WealthManager', 'CryptoAdvisor', 'Plumber', 'Electrician', 'Mechanic', 'Carpenter', 'Painter', 'Locksmith', 'Cleaner', 'Gardener', 'PestControl', 'HvacTechnician', 'InteriorDesigner', 'Architect', 'Roofer', 'Tiler', 'Plasterer', 'WindowCleaner', 'PoolMaintenance', 'SecurityInstaller', 'SolarInstaller', 'Handyman', 'Mover', 'WasteRemoval', 'CarRental', 'PetTransport', 'PetGroomer', 'PetSitter', 'DogWalker', 'PetPhysiotherapist', 'CanineHydrotherapist', 'PetPhotographer', 'PetGroomingSchool', 'HairSalon', 'Barber', 'NailTechnician', 'MassageTherapist', 'PersonalTrainer', 'YogaInstructor', 'TattooArtist', 'MakeupArtist', 'Aesthetician', 'Eyebrow', 'Eyelash', 'WaxingSpecialist', 'PermanentMakeup', 'NailArtist', 'BodyPiercer', 'Trichologist', 'SpaTherapist', 'SunbedStudio', 'MedSpa', 'FitnessStudio', 'HairStylist', 'WellnessRecoveryClinic', 'Tutor', 'MusicTeacher', 'LanguageTeacher', 'DrivingInstructor', 'LifeCoach', 'MathTutor', 'ScienceTutor', 'ArtTeacher', 'DanceInstructor', 'SwimmingInstructor', 'MartialArtsInstructor', 'ChessCoach', 'CodingInstructor', 'ExamCoach', 'CareerCoach', 'SportsCoach', 'ItSupport', 'WebDeveloper', 'Photographer', 'Videographer', 'GraphicDesigner', 'SoftwareDeveloper', 'MobileAppDeveloper', 'DataAnalyst', 'CyberSecurityConsultant', 'SeoSpecialist', 'SocialMediaManager', 'ContentCreator', 'UxDesigner', 'DroneOperator', 'VideoEditor', 'SoundEngineer', 'ThreeDDesigner', 'AnimationArtist', 'Consultant', 'MarketingConsultant', 'Translator', 'BusinessCoach', 'HrConsultant', 'PrSpecialist', 'CopyWriter', 'VirtualAssistant', 'ProjectManager', 'SupplyChainConsultant', 'BrandingConsultant', 'SeniorLivingPlacementAgency', 'Recruiter', 'EventPlanner', 'WeddingPlanner', 'Caterer', 'Dj', 'Chef', 'PrivateChef', 'BartenderMixologist', 'Florist', 'Entertainer', 'PhotoboothRental', 'TourOperator', 'PrivateDriver', 'OnlineRetailer', 'Artist', 'FineArtPainter', 'Illustrator', 'PortraitArtist', 'Muralist', 'Printmaker', 'Caricaturist', 'Calligrapher'], 'type': 'string', 'description': "Exact ProfessionalProfileSubCategory enum value derived from the user's request (e.g. 'Therapist', 'Plumber', 'Dentist'). Required. Use 'None' only if the user truly hasn't named a profession — in that case the server refuses with a clarification response, and you should ask the user instead of guessing."}, 'locationText': {'type': ['string', 'null'], 'default': None, 'description': "Place name as the user said it, in their language. Examples: 'Athens', 'Greece', 'Πεκίνο', 'New York City'. Pass null when the user did not name a location."}, 'attributeFilters': {'type': ['string', 'null'], 'default': None, 'description': 'Hard filter on vertical-specific attributes as a JSON object. Keys and option values come from get_refinement_options. Example: \'{"specializations":["trauma_ptsd"],"approaches":["emdr"]}\'. Multiple values within a key are ALL required (AND). Multiple keys are ALL required (AND). Leave null when the user has no preference.'}}}
Input schema
{'type': 'object', 'required': ['slug', 'customerName', 'customerPhone', 'customerEmail', 'message', 'clientRequestId'], 'properties': {'slug': {'type': 'string', 'description': 'The exact URL slug returned by a Qasper discovery result. Copy it verbatim.'}, 'message': {'type': 'string', 'description': 'Detailed description of the inquiry, question, or issue. Include any visual details about damage, location, severity, and urgency.'}, 'customerName': {'type': 'string', 'description': 'Full name of the person making the inquiry'}, 'customerEmail': {'type': 'string', 'description': 'Customer email address'}, 'customerPhone': {'type': 'string', 'description': 'Customer phone number'}, 'clientRequestId': {'type': 'string', 'description': 'Required stable UUID for this inquiry attempt. Generate once and reuse on retries of the same logical attempt.'}}}
Recent tool changes
Similar MCP servers
AgentLot Marketplace
Enables agents and users to discover, bid on, purchase, deliver, and settle paid digital services and compute work.
zobrx
Provides read-only ecommerce operations and analytics for orders, inventory, marketplace performance, advertising, settlements, t…
SupplySlate
Supports component sourcing, fabrication requests, supplier RFQs, catalog imports, quotes, purchase planning, checkout handoffs, …
Obriym CRM
Manages CRM records, sales pipelines, activities, orders, products, inventory, and marketplace catalog operations.
velora
Provides Argentine commerce operations including catalog and inventory, customer and supplier management, cash register tracking,…
Shopify
Provides read access to Shopify Admin data for store operations through the Shopify REST API.
Woocommerce
Provides access to WooCommerce store data through the WooCommerce REST API.
Troostwijk
Searches European industrial and insolvency liquidation auctions and retrieves auction lot details.