ShearQuery — Barber & Beauty Industry Data
What this MCP does
Provides barber and beauty industry data on licensing, exam outcomes, booth rents, chair availability, and business listings.
Tools
Input schema
{'type': 'object', 'properties': {'topic': {'enum': ['overview', 'workflow', 'commission', 'pitch', 'never', 'outreach', 'priorities', 'faq'], 'type': 'string', 'description': 'Leave out for the whole playbook.'}}}
Input schema
{'type': 'object', 'required': ['business_name'], 'properties': {'city': {'type': 'string', 'description': 'Optional city to narrow the match, e.g. "Houston".'}, 'business_name': {'type': 'string', 'description': 'The business name as it appears on Google, e.g. "Buzzard\'s Barbershop". At least two characters.'}}}
Input schema
{'type': 'object', 'required': ['date'], 'properties': {'end': {'type': 'string', 'description': 'For part of a day, e.g. "3pm".'}, 'date': {'type': 'string', 'description': 'YYYY-MM-DD, "today" or "tomorrow".'}, 'start': {'type': 'string', 'description': 'For part of a day, e.g. "1pm".'}, 'reason': {'type': 'string'}, 'end_date': {'type': 'string', 'description': 'Last day off, for a range.'}}}
Input schema
{'type': 'object', 'required': ['service', 'date', 'time'], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD, "today" or "tomorrow".'}, 'time': {'type': 'string', 'description': 'e.g. "3pm", "15:30".'}, 'notes': {'type': 'string'}, 'service': {'type': 'string'}, 'walk_in': {'type': 'boolean'}, 'client_id': {'type': 'string', 'description': 'From find_client, to book an existing client exactly.'}, 'client_name': {'type': 'string'}, 'client_phone': {'type': 'string'}, 'allow_outside_hours': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'required': ['pro_id', 'service', 'date', 'time'], 'properties': {'tip': {'type': 'number', 'minimum': 0, 'description': 'Optional tip in dollars, added to a deposit or full payment. Only when the client offers one.'}, 'date': {'type': 'string', 'description': 'YYYY-MM-DD, "today" or "tomorrow", in the pro\'s time zone.'}, 'name': {'type': 'string', 'description': "Name for the booking. Defaults to the client's ShearQuery name."}, 'time': {'type': 'string', 'description': 'e.g. "3pm", exactly as pro_open_times listed it.'}, 'notes': {'type': 'string'}, 'pro_id': {'type': 'string'}, 'service': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'City to report on, e.g. "Houston". Omit for the overall picture across every city we hold.'}, 'type': {'enum': ['shop', 'salon', 'all'], 'type': 'string', 'description': 'Barbershops, salons, or both (default both).'}, 'examples': {'type': 'integer', 'description': 'How many example venues with a published rate to list (0-15, default 5).'}}}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}, 'reason': {'type': 'string'}, 'notify_client': {'type': 'boolean', 'description': "Text the client that it's cancelled."}}}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['client'], 'properties': {'client': {'type': 'string', 'description': "The client's name as shown in my_agency."}}}
Input schema
{'type': 'object', 'required': ['license'], 'properties': {'city': {'type': 'string', 'description': 'Optional city filter, e.g. "Houston". Matched case-insensitively.'}, 'limit': {'type': 'integer', 'description': 'How many schools to return (1-50, default 10).'}, 'license': {'enum': ['barber', 'cosmetology'], 'type': 'string', 'description': "Which exam's outcomes to rank on. Barber and Cosmetology are separate licences with separate exams; a school running both appears under both with its own results for each."}}}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'City to search, e.g. "Houston". Combine with state for accuracy.'}, 'type': {'enum': ['shop', 'salon', 'all'], 'type': 'string', 'description': 'Barbershops, salons, or both. Default all.'}, 'limit': {'type': 'integer', 'description': 'How many to return (1-50, default 10).'}, 'state': {'type': 'string', 'description': 'Two-letter state code, e.g. "TX".'}, 'open_chairs_only': {'type': 'boolean', 'description': 'Only listings with at least one chair currently available. Default false.'}, 'verified_rent_only': {'type': 'boolean', 'description': 'Only listings that publish a booth rent figure. Default false.'}}}
Input schema
{'type': 'object', 'required': ['phone', 'code'], 'properties': {'code': {'type': 'string'}, 'phone': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'required': ['change_id'], 'properties': {'change_id': {'type': 'string', 'description': 'The id a propose_ tool or my_changes returned.'}}}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Words to search for.'}}}
Input schema
{'type': 'object', 'required': ['service'], 'properties': {'when': {'type': 'string', 'description': 'Default "week".'}, 'limit': {'type': 'integer', 'maximum': 60, 'minimum': 1, 'description': 'Default 20.'}, 'service': {'type': 'string', 'description': 'Service name or id, from my_calendar.'}, 'for_client': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'required': ['business_type'], 'properties': {'zip': {'type': 'string', 'description': 'A 5-digit ZIP, instead of or as well as a city.'}, 'city': {'type': 'string', 'description': 'e.g. Houston'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Default 15.'}, 'needs': {'type': 'array', 'items': {'enum': ['few_reviews', 'low_rating', 'stalled_reviews', 'no_website'], 'type': 'string'}, 'description': 'Only businesses with ALL of these.'}, 'business_type': {'enum': ['barbershop', 'salon', 'school', 'supply_store'], 'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'query': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': "The client's email address."}, 'business_name': {'type': 'string', 'description': 'Their business or name, used in the greeting. Optional.'}}}
Input schema
{'type': 'object', 'required': ['id', 'date', 'time'], 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'time': {'type': 'string'}, 'allow_outside_hours': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {'share': {'type': 'boolean', 'description': 'true to let the agency see, false to stop. Leave out to just check.'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Default 15.'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {'days': {'enum': [7, 30, 90], 'type': 'integer', 'description': 'Default 30.'}, 'scope': {'enum': ['listing', 'site'], 'type': 'string', 'description': "listing (default) = the owner's own ShearQuery page. site = all of shearquery.com, ShearQuery admins only."}}}
Input schema
{'type': 'object', 'properties': {'days': {'enum': [7, 30], 'type': 'integer', 'description': 'Default 30.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'How many recent posts to read. Default 12.'}, 'rank_by': {'enum': ['views', 'reach', 'saved', 'shares', 'total_interactions'], 'type': 'string', 'description': 'Default views.'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {'status': {'enum': ['to_contact', 'contacted', 'interested', 'invited', 'joined', 'not_interested'], 'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Default 20.'}, 'only_unanswered': {'type': 'boolean', 'description': 'Only reviews without a reply. Default true.'}}}
Input schema
{'type': 'object', 'properties': {'when': {'type': 'string', 'description': 'Default "today".'}, 'include_cancelled': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'required': ['pro_id', 'service'], 'properties': {'when': {'type': 'string', 'description': 'Default "week".'}, 'pro_id': {'type': 'string'}, 'service': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['answers'], 'properties': {'answers': {'type': 'object', 'description': 'Map of attribute id to true/false, e.g. {"attributes/has_wheelchair_accessible_entrance": true}.', 'additionalProperties': {'type': 'boolean'}}}}
Input schema
{'type': 'object', 'required': ['action'], 'properties': {'url': {'type': 'string', 'description': 'The booking page (create/update).'}, 'action': {'enum': ['create', 'update', 'delete'], 'type': 'string'}, 'link_id': {'type': 'string', 'description': 'From my_google_profile (update/delete).'}}}
Input schema
{'type': 'object', 'properties': {'add': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Category ids, e.g. "gcid:hair_salon".'}, 'remove': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Category ids currently on the listing.'}}}
Input schema
{'type': 'object', 'properties': {'phone': {'type': 'string', 'description': 'Full number with area code.'}, 'website': {'type': 'string', 'description': 'Full URL starting with https://.'}}}
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'The complete new description.'}}}
Input schema
{'type': 'object', 'required': ['dates'], 'properties': {'dates': {'type': 'array', 'items': {'type': 'object', 'required': ['date', 'mode'], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD, today or later.'}, 'mode': {'enum': ['closed', 'hours', 'clear'], 'type': 'string', 'description': '"hours" needs open and close.'}, 'open': {'type': 'string', 'description': 'Like "9:00am", "5:30pm" or "17:30".'}, 'close': {'type': 'string', 'description': 'Like "9:00am", "5:30pm" or "17:30".'}}}}}}
Input schema
{'type': 'object', 'required': ['image_url', 'category'], 'properties': {'category': {'enum': ['COVER', 'EXTERIOR', 'INTERIOR', 'AT_WORK', 'TEAMS', 'PROFILE', 'LOGO'], 'type': 'string'}, 'image_url': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['photo_id'], 'properties': {'photo_id': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string'}, 'offer': {'type': 'object', 'required': ['title', 'start_date', 'end_date'], 'properties': {'terms': {'type': 'string'}, 'title': {'type': 'string'}, 'end_date': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'redeem_url': {'type': 'string'}, 'start_date': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'coupon_code': {'type': 'string'}}}, 'button': {'enum': ['BOOK', 'LEARN_MORE', 'CALL', 'SIGN_UP', 'ORDER', 'SHOP'], 'type': 'string', 'description': 'Default LEARN_MORE with a url, otherwise CALL.'}, 'photo_url': {'type': 'string', 'description': "Public https image link. The listing's own photo links from my_photos work."}, 'button_url': {'type': 'string', 'description': 'https link for every button except CALL.'}, 'publish_at': {'type': 'string', 'description': 'ISO 8601 date-time to publish later (10 minutes to 90 days out). Omit to publish on approval.'}}}
Input schema
{'type': 'object', 'required': ['days'], 'properties': {'days': {'type': 'array', 'items': {'type': 'object', 'required': ['day'], 'properties': {'day': {'type': 'string', 'description': 'MONDAY … SUNDAY.'}, 'open': {'type': 'string', 'description': 'Like "9:00am", "5:30pm" or "17:30".'}, 'close': {'type': 'string', 'description': 'Like "9:00am", "5:30pm" or "17:30".'}, 'closed': {'type': 'boolean', 'description': 'True if closed all day.'}}}}}}
Input schema
{'type': 'object', 'required': ['review_id', 'text'], 'properties': {'text': {'type': 'string', 'description': 'The reply exactly as it will appear publicly.'}, 'review_id': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'add_custom': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Owner-written services, e.g. "Beard sculpting".'}, 'add_service_ids': {'type': 'array', 'items': {'type': 'string'}}, 'remove_service_ids': {'type': 'array', 'items': {'type': 'string'}}}}
Input schema
{'type': 'object', 'required': ['prospect'], 'properties': {'prospect': {'type': 'string', 'description': 'An id like shop:marcus-cuts-houston-1a2b, or a business name.'}}}
Input schema
{'type': 'object', 'required': ['prospect'], 'properties': {'prospect': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['change_id'], 'properties': {'change_id': {'type': 'string', 'description': 'The id a propose_ tool or my_changes returned.'}}}
Input schema
{'type': 'object', 'required': ['service'], 'properties': {'service': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['client'], 'properties': {'client': {'type': 'string', 'description': "The client's name as shown in my_agency."}}}
Input schema
{'type': 'object', 'required': ['id', 'date', 'time'], 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string', 'description': 'YYYY-MM-DD, "today" or "tomorrow", in the pro\'s time zone.'}, 'time': {'type': 'string', 'description': 'e.g. "3pm", as pro_open_times listed it.'}}}
Input schema
{'type': 'object', 'required': ['name', 'minutes'], 'properties': {'name': {'type': 'string'}, 'price': {'type': 'number', 'minimum': 0, 'description': 'Dollars. Omit if the price varies.'}, 'minutes': {'type': 'integer', 'maximum': 600, 'minimum': 5}, 'cleanup_minutes': {'type': 'integer', 'maximum': 120, 'minimum': 0}}}
Input schema
{'type': 'object', 'required': ['prospect'], 'properties': {'note': {'type': 'string', 'description': "e.g. 'Spoke to the owner, call back Friday'."}, 'status': {'enum': ['to_contact', 'contacted', 'interested', 'invited', 'joined', 'not_interested'], 'type': 'string'}, 'prospect': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'payment': {'enum': ['none', 'deposit', 'full'], 'type': 'string'}, 'policy_note': {'type': 'string', 'maxLength': 500}, 'tips_enabled': {'type': 'boolean'}, 'deposit_dollars': {'type': 'number', 'minimum': 0.5}, 'deposit_percent': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'max_reschedules': {'type': ['integer', 'string'], 'description': 'A number from 0 to 20, or "unlimited".'}, 'client_can_cancel': {'type': 'boolean'}, 'full_refund_hours': {'type': 'number', 'maximum': 336, 'minimum': 0}, 'change_cutoff_hours': {'type': 'number', 'maximum': 336, 'minimum': 0}, 'client_can_reschedule': {'type': 'boolean'}, 'no_show_refund_percent': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'late_cancel_refund_percent': {'type': 'integer', 'maximum': 100, 'minimum': 0}}}
Input schema
{'type': 'object', 'required': ['days'], 'properties': {'days': {'type': 'array', 'items': {'type': 'object', 'required': ['day'], 'properties': {'day': {'type': 'string'}, 'open': {'type': 'string'}, 'close': {'type': 'string'}, 'closed': {'type': 'boolean'}}}}}}
Input schema
{'type': 'object', 'required': ['account_type'], 'properties': {'account_type': {'enum': ['client', 'student', 'barber', 'cosmetologist', 'barbershop', 'salon', 'supply_store', 'school', 'agency'], 'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['prospect'], 'properties': {'prospect': {'type': 'string'}}}
Input schema
{'type': 'object', 'required': ['account_type'], 'properties': {'fresh': {'type': 'boolean', 'description': 'Reset this demo business to how it started (profile, drafts, history, appointments).'}, 'account_type': {'enum': ['barbershop', 'salon', 'barber', 'cosmetologist', 'school', 'supply_store'], 'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'properties': {'license_type': {'type': 'string', 'description': 'Optional exact TDLR licence type, e.g. "Class A Barber", "Cosmetology Operator", "Cosmetology Manicurist", "Cosmetology Esthetician". Omit for a breakdown across all types.'}, 'expiring_before': {'type': 'string', 'description': 'Optional ISO date (YYYY-MM-DD). Counts only licences expiring before it — use to size who is affected by a change taking effect on that date.'}}}
Input schema
{'type': 'object', 'required': ['id', 'tip'], 'properties': {'id': {'type': 'string'}, 'tip': {'type': 'number', 'minimum': 0.5, 'description': 'Dollars.'}}}
Input schema
{'type': 'object', 'required': ['change_id'], 'properties': {'change_id': {'type': 'string', 'description': 'The id a propose_ tool or my_changes returned.'}}}
Input schema
{'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'enum': ['confirmed', 'completed', 'no_show'], 'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'post_weekday': {'type': 'integer', 'maximum': 6, 'minimum': 0}, 'weekly_posts': {'type': 'boolean'}, 'weekly_report': {'type': 'boolean'}, 'review_replies': {'type': 'boolean'}}}
Input schema
{'type': 'object', 'properties': {'timezone': {'type': 'string'}, 'display_name': {'type': 'string'}, 'slot_step_minutes': {'enum': [5, 10, 15, 20, 30, 60], 'type': 'integer'}, 'min_notice_minutes': {'type': 'integer', 'maximum': 10080, 'minimum': 0}, 'booking_window_days': {'type': 'integer', 'maximum': 365, 'minimum': 1}}}
Input schema
{'type': 'object', 'properties': {'markets': {'type': 'string', 'description': 'Cities or states it works in.'}, 'website': {'type': 'string'}, 'agency_name': {'type': 'string', 'description': "The agency's name. Required on the first save."}, 'client_count': {'type': 'integer', 'minimum': 0, 'description': 'Roughly how many barber / salon / school clients it has now.'}, 'what_they_build': {'type': 'string', 'description': 'What the agency builds or does for barbers, salons and schools.'}}}
Input schema
{'type': 'object', 'properties': {'category': {'enum': ['COVER', 'EXTERIOR', 'INTERIOR', 'AT_WORK', 'TEAMS', 'PROFILE', 'LOGO'], 'type': 'string', 'description': 'Where the photo goes, if known — the owner can change it in the box. Use my_photo_coverage to suggest the biggest gap.'}}}
Input schema
{'type': 'object', 'required': ['phone'], 'properties': {'phone': {'type': 'string'}}}
Input schema
{'type': 'object', 'properties': {'city': {'type': 'string', 'description': 'Optional city to narrow a name search.'}, 'name': {'type': 'string', 'description': 'Person or business name, e.g. "Smith" or "Baytown Beauty". TDLR stores people as "LAST, FIRST".'}, 'limit': {'type': 'integer', 'description': 'How many matches to return (1-25, default 10).'}, 'license_number': {'type': 'string', 'description': 'The licence number, if known. Exact match. Fastest and least ambiguous.'}}}
Input schema
{'type': 'object', 'properties': {'account_type': {'enum': ['barbershop', 'salon', 'barber', 'cosmetologist', 'school', 'supply_store', 'student', 'client'], 'type': 'string', 'description': 'One type in detail. Leave out for all of them.'}}}
Input schema
{'type': 'object', 'properties': {'account_type': {'enum': ['client', 'student', 'barber', 'cosmetologist', 'barbershop', 'salon', 'supply_store', 'school', 'agency'], 'type': 'string', 'description': "Once decided, returns that type's details and signup link."}}}
Recent tool changes
Similar MCP servers
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
synter-ads
Manages cross-platform advertising campaigns, audiences, tracking, creative, landing pages, campaign audits, technology intellige…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…
Stratalize Healthcare
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Governance
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Oracle
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…
Stratalize Intelligence
Provides vendor, market, SaaS, workforce, government contract, public company, regulatory, competitive, and AI-brand intelligence…
Stratalize Real Estate
Retired Stratalize server exposing benchmark, market intelligence, compliance, financial, healthcare, legal, real estate, and eco…