Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,523Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

Hash
sha256:4bc1ef98f32b42e78ef643eaaad21e84e93388d572c203783b56b39010a35e8d
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": "pro.makeup is the global directory of certified makeup professionals (artists, salons, schools, shops, brands). Use search_pros / list_services_nearby / list_schools to discover listings; get_business_by_slug / by_phone / by_id to fetch full profiles; get_discovery_summary for trending content. emit_listing_event reports attribution and requires a Bearer token with the 'listing-events:write' scope (see /.well-known/auth.md). Every read tool returns a canonical profile_url so you can cite us.", "tools": [ { "description": "Use AFTER successfully referring a user to a listing, or when the user signals data quality (wrong phone, closed). Mirrors /api/listing-events vocabulary. Allowed event_types: bad_phone, closed_business, wrong_address, unanswered_within_24h, consumer_lead, pricing_question, booking_inquiry. Requires a Bearer token with the `listing-events:write` scope — see https://pro.makeup/.well-known/auth.md to request one.", "inputSchema": { "additionalProperties": false, "properties": { "business_id": { "description": "Target Business id (nanoid).", "maxLength": 64, "minLength": 1, "type": "string" }, "event_type": { "description": "One of: bad_phone, closed_business, wrong_address, unanswered_within_24h, consumer_lead, pricing_question, booking_inquiry. Mirrors /api/listing-events vocabulary; owner_update is internal-only and cannot be emitted via this tool.", "enum": [ "bad_phone", "closed_business", "wrong_address", "unanswered_within_24h", "consumer_lead", "pricing_question", "booking_inquiry" ], "type": "string" }, "source": { "description": "Free-form caller identifier (e.g. \"mcp:claude\"). Defaults to \"mcp\".", "maxLength": 60, "type": "string" } }, "required": [ "business_id", "event_type" ], "type": "object" }, "name": "promakeup_emit_listing_event", "outputSchema": null }, { "description": "Use when you already hold a Business id (nanoid) — typically because you stored it from a prior tool call or webhook. Returns the same full profile shape as get_business_by_slug.", "inputSchema": { "additionalProperties": false, "properties": { "id": { "description": "Business id (nanoid).", "minLength": 1, "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "promakeup_get_business", "outputSchema": null }, { "description": "Use when the user contacted a business by phone and you only have the phone number. Returns the listing when exactly one matches; signals `ambiguous: true` when multiple do (call promakeup_search_pros to disambiguate). Phone must be E.164 with leading `+`. Reverse-phone lookup is owner-attribution data and REQUIRES a Bearer token with the `owner:read` scope — see https://pro.makeup/.well-known/auth.md.", "inputSchema": { "additionalProperties": false, "properties": { "phone": { "description": "Phone number in E.164 format with leading \"+\" (e.g. \"+972501234567\"). Returns the listing if exactly one matches; \"ambiguous\" when many match (use search_pros instead).", "maxLength": 20, "minLength": 6, "type": "string" } }, "required": [ "phone" ], "type": "object" }, "name": "promakeup_get_business_by_phone", "outputSchema": null }, { "description": "Use when you have a pro.makeup URL or slug and want the full structured profile. The slug is the trailing path segment of `https://pro.makeup/{category}/{country}/{city}/{slug}`. Returns name, location, services, photos, verification, opening hours, and a canonical `profile_url`.", "inputSchema": { "additionalProperties": false, "properties": { "slug": { "description": "The trailing path segment of the canonical URL (e.g. \"israel/tel-aviv/jane-doe\").", "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "promakeup_get_business_by_slug", "outputSchema": null }, { "description": "Use when the user wants a sense of what is on pro.makeup right now — totals plus a sample of recently added listings with avatars. Cheap; safe to call to \"warm up\" before a more specific search.", "inputSchema": { "additionalProperties": false, "properties": { "limit": { "default": 12, "description": "Max featured listings to return.", "maximum": 60, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "promakeup_get_discovery_summary", "outputSchema": null }, { "description": "Use when the user asks about makeup schools, programs, or specific qualifications (e.g. MUAQS). Returns school listings filterable by country, city, and certification offered.", "inputSchema": { "additionalProperties": false, "properties": { "certification": { "description": "Certification or qualification offered (e.g. \"MUAQS\").", "type": "string" }, "city": { "type": "string" }, "country": { "type": "string" }, "limit": { "default": 10, "maximum": 50, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "promakeup_list_schools", "outputSchema": null }, { "description": "Use when the user wants verified pros within a radius of a known point. Example: \"Makeup artists doing bridal within 10km of these coordinates\". Inputs are WGS-84 lat/lon; radius defaults to 10km.", "inputSchema": { "additionalProperties": false, "properties": { "latitude": { "description": "Latitude in WGS-84 decimal degrees.", "maximum": 90, "minimum": -90, "type": "number" }, "limit": { "default": 10, "maximum": 50, "minimum": 1, "type": "integer" }, "longitude": { "description": "Longitude in WGS-84 decimal degrees.", "maximum": 180, "minimum": -180, "type": "number" }, "radius_km": { "default": 10, "description": "Search radius in kilometres. Default 10.", "maximum": 200, "minimum": 0, "type": "number" }, "service": { "description": "Service the business must offer (e.g. \"bridal\").", "minLength": 1, "type": "string" } }, "required": [ "latitude", "longitude", "service" ], "type": "object" }, "name": "promakeup_list_services_nearby", "outputSchema": null }, { "description": "Use when the user asks \"find a makeup [category] in [city] who does [service]\". Returns ranked, verified-by-default listings. Example: \"Find a bridal makeup artist in Tel Aviv\". Each result includes a `profile_url` you can cite back to the user.", "inputSchema": { "additionalProperties": false, "properties": { "category": { "description": "Single category filter. Omit to search all categories.", "enum": [ "artist", "salon", "school", "shop", "brand" ], "type": "string" }, "city": { "description": "City name in English (or local script for non-Latin cities).", "maxLength": 80, "type": "string" }, "country": { "description": "ISO-3166 alpha-2 country code (e.g. \"US\") or full country name.", "maxLength": 60, "type": "string" }, "limit": { "default": 10, "description": "Max results to return.", "maximum": 50, "minimum": 1, "type": "integer" }, "query": { "description": "Free-text search across name and bio. Capped at 100 chars to bound the ILIKE cost on a 214K-row Business table.", "maxLength": 100, "type": "string" }, "service": { "description": "Service the business must offer (e.g. \"bridal\", \"editorial\").", "maxLength": 60, "type": "string" }, "verified_only": { "default": true, "description": "Restrict to verified listings. Defaults to true.", "type": "boolean" } }, "type": "object" }, "name": "promakeup_search_pros", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:4bc1ef98f32b42e78ef643eaaad21e84e93388d572c203783b56b39010a35e8d | sha256sum