{"name":"com.bronjoy/marketplace","slug":"bronjoy-marketplace","title":"Bronjoy Marketplace","description":"Search and book appointments at service businesses across Uzbekistan.","url":"https://mcp.market/server/bronjoy-marketplace","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":8,"ok":8,"last_checked_at":"2026-09-21T07:36:03.865Z","last_ok_at":"2026-09-21T07:36:03.865Z","latency_ms":144},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://docs.bronjoy.com/en/integrations/mcp","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://api.bronjoy.com/api/mcp"}],"packages":[],"tools":[{"name":"book-appointment","description":"Book a slot, using the code the user received from request-booking-code.\n\nWHEN TO USE: last step, once the user has confirmed the venue, service and\nexact time AND has read you their 6-digit code.\n\nRequires the same contact the code was sent to. The booking is created as\n\"pending\": the business still confirms it, so tell the user it is requested\nand they will hear back — not that it is guaranteed. If the venue takes\nprepayment, the response carries a link the user must open to pay; the slot\nis not held indefinitely.\n\nOnly works for venues with `is_bookable: true`.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"The venue slug.","type":"string"},"service_id":{"description":"Service id from check-availability.","type":"integer"},"start_time":{"description":"Exact `start_time` value from a check-availability slot. Do not invent or round times.","type":"string"},"name":{"description":"The user's name, as the business should see it.","type":"string"},"verification_code":{"description":"The 6-digit code the user received. Ask them for it — you never see it yourself.","type":"string"},"email":{"description":"The email the code was sent to, if that is the channel used.","type":"string"},"phone":{"description":"The phone the code was sent to, if that is the channel used.","type":"string"},"notes":{"description":"Anything the business should know, max 500 characters.","type":"string"}},"required":["slug","service_id","start_time","name","verification_code"]}},{"name":"check-availability","description":"Bookable services and open time slots for a venue on a given date.\n\nWHEN TO USE: the user has picked a venue with `is_bookable: true` and wants\na time. Call without `service_id` first to see the services and their\nprices, then again with one to get its slots.\n\nReturns an explicit refusal for venues that are not set up for online\nbooking — do not try to work around it, offer the phone number instead.\nSlot times are in the venue's timezone and are exactly the values\nbook-appointment expects.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"The venue slug from search-venues.","type":"string"},"date":{"description":"Day to check, Y-m-d. Today or later, at most 30 days ahead.","type":"string"},"service_id":{"description":"Which service to check. Omit on the first call to list the services with their ids, durations and prices.","type":"integer"}},"required":["slug","date"]}},{"name":"get-venue","description":"Full public profile for one venue: address, opening hours, what it offers,\namenities, payment methods, website and whether it can be booked online.\n\nWHEN TO USE: after search-venues, when the user asks anything about a\nspecific place — \"are they open on Sunday\", \"do they do colouring\", \"where\nexactly is it\", \"how much\".\n\nThis is the right tool for the ~99% of the catalogue that is not bookable:\nit carries everything needed to answer a question or send the user there in\nperson. The phone number is masked here — call reveal-phone only when the\nuser actually wants to ring them.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"The venue slug from search-venues, e.g. \"demo-barber\".","type":"string"}},"required":["slug"]}},{"name":"request-booking-code","description":"Send the user a 6-digit confirmation code, which book-appointment then\nrequires.\n\nWHEN TO USE: the user has chosen a venue, a service and a slot, and has\ngiven you their email address or phone number. Call this before\nbook-appointment — a booking without a code is rejected.\n\nYOU DO NOT RECEIVE THE CODE. It goes to the user's own inbox or phone; ask\nthem to read it back to you. That is the point: it proves the contact\nbelongs to the person booking, so a business does not get appointments from\nnumbers nobody answers. The code lasts 5 minutes and covers one booking.\nOnly a few codes may be sent to one contact — do not loop.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"The venue slug the user is booking.","type":"string"},"email":{"description":"The user's email address. Give this or phone.","type":"string"},"phone":{"description":"The user's phone in international format, e.g. +998901234567. Preferred when the venue will need to call them.","type":"string"}},"required":["slug"]}},{"name":"reveal-phone","description":"The venue's real phone number.\n\nWHEN TO USE: the user wants to call — typically because the venue is not\nbookable online, or they want to ask something no profile field answers.\n\nDeliberately a separate call from get-venue, which returns a masked number.\nReveals are rate limited per caller: request them one at a time, for a venue\nthe user has actually chosen, never in bulk across search results.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"The venue slug from search-venues.","type":"string"}},"required":["slug"]}},{"name":"search-venues","description":"Search Bronjoy's catalogue of service businesses in Uzbekistan by keyword,\ncity and category.\n\nWHEN TO USE: the user is looking for a place (\"barbershop in Tashkent\",\n\"dentist near Chilanzar\", \"car wash open now\"). Start here — every other\ntool takes the `slug` this returns.\n\nResults are ranked, compact, and include `is_bookable`, which decides what\nyou can offer next: bookable venues can go through check-availability →\nrequest-booking-code → book-appointment, the rest can only be described and\nphoned. Names and addresses come back in Russian or Uzbek; quote them as-is.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"description":"Free text: a business name, a service (\"стрижка\", \"haircut\"), or a landmark. Matches across Latin and Cyrillic.","type":"string"},"city":{"description":"City slug or name, e.g. \"tashkent\", \"samarkand\", \"Бухара\".","type":"string"},"category":{"description":"Category slug, e.g. \"barber\", \"dental\", \"car-wash\". Use the slug from a previous result when narrowing.","type":"string"},"bookable_only":{"description":"Return only venues that can take an online booking. Set this when the user wants to book rather than to be told about places — most of the catalogue cannot be booked, and without this the bookable ones are buried.","type":"boolean"},"limit":{"description":"How many venues to return, 1-20. Default 5 — prefer a small number and refine.","type":"integer"}}}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-20T00:26:10.634Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:10.613Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1738ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://api.bronjoy.com/api/mcp","reachable":true,"authRequired":false,"latencyMs":1738,"serverInfo":{"name":"Bronjoy Marketplace","version":"1.0.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://bronjoy.com/apple-touch-icon.png","source":"registry","width":180,"height":180},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}