{"apiVersion":"v1","directorySlug":"tukang-mcp-7ab8ce02fb","title":"Tukang, book trades from your chat","description":"Tukang is an MCP server for Singapore home services. Your AI assistant pings contractors on WhatsApp, collects bids in parallel, and books the winner, you never leave the chat.","pageUrl":"https://www.mcpbundles.com/skills/tukang-mcp-7ab8ce02fb","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://tukang.app/mcp","hostedMcpUrl":null,"toolCount":16,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"app.tukang/tukang-mcp-7ab8ce02fb","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_saved_preferences","description":"Retrieve user's stored home info, budget, preferred handymen from Mem0 memory layer. Auto-fills future booking parameters.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"user_id":{"type":"string"}},"additionalProperties":false},"logicalName":"get_saved_preferences","displayName":"get_saved_preferences","title":"get_saved_preferences","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"update_saved_preferences","description":"Save or update user preferences (address, budget, preferred handyman, access notes, language) in Mem0 for persistent storage across sessions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["user_id"],"properties":{"address":{"type":"string"},"user_id":{"type":"string"},"language":{"type":"string"},"budget_max":{"type":"number"},"access_notes":{"type":"string"},"preferred_handyman_id":{"type":"string"},"preferred_handyman_name":{"type":"string"}},"additionalProperties":false},"logicalName":"update_saved_preferences","displayName":"update_saved_preferences","title":"update_saved_preferences","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_handymen","description":"Find handymen by service type, location, and budget. Mem0 auto-fills location and budget from saved preferences. Returns ranked list with ratings, prices, trust scores, and available times.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["service_type"],"properties":{"sort_by":{"enum":["rating","price","bookings","trust_score"],"type":"string","default":"trust_score"},"user_id":{"type":"string"},"location":{"type":"string"},"max_budget":{"type":"number"},"service_type":{"enum":["cleaning","electrical","gardening","plumbing","carpentry","painting","hvac","general","appliance","smart_home","car_servicing","car_brakes","car_tyres","car_battery","car_aircon","car_diagnostics","car_bodywork","car_towing"],"type":"string"}},"additionalProperties":false},"logicalName":"search_handymen","displayName":"search_handymen","title":"search_handymen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_handyman_profile","description":"Get full handyman profile including reviews (5 most recent), business registration status, trust score breakdown (0-10), and available time slots.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handyman_id"],"properties":{"handyman_id":{"type":"string"}},"additionalProperties":false},"logicalName":"get_handyman_profile","displayName":"get_handyman_profile","title":"get_handyman_profile","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"compare_handyman_prices","description":"Compare pricing across all handymen for the same service type. Returns min/max/avg prices, best value recommendation (trust-score-to-price ratio), and full sorted comparison table.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["service_type"],"properties":{"location":{"type":"string"},"service_type":{"enum":["cleaning","electrical","gardening","plumbing","carpentry","painting","hvac","general","appliance","smart_home","car_servicing","car_brakes","car_tyres","car_battery","car_aircon","car_diagnostics","car_bodywork","car_towing"],"type":"string"}},"additionalProperties":false},"logicalName":"compare_handyman_prices","displayName":"compare_handyman_prices","title":"compare_handyman_prices","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"discover_services_web","description":"Search the LIVE WEB (via Exa) for real local service providers beyond the seeded directory. Returns unverified leads normalized to the same shape as search_handymen (tagged source:'web') with their contact MASKED. Use when the seeded directory has no/too few matches; reach a lead with whatsapp_multiple_handymen using its id — the number is resolved server-side and only revealed after the $5 Concierge fee is paid.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["service_type"],"properties":{"user_id":{"type":"string"},"location":{"type":"string"},"num_results":{"type":"integer","default":5,"maximum":5,"minimum":1},"service_type":{"enum":["cleaning","electrical","gardening","plumbing","carpentry","painting","hvac","general","appliance","smart_home","car_servicing","car_brakes","car_tyres","car_battery","car_aircon","car_diagnostics","car_bodywork","car_towing"],"type":"string"}},"additionalProperties":false},"logicalName":"discover_services_web","displayName":"discover_services_web","title":"discover_services_web","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"quote_job","description":"Get estimated price range, duration, and inclusions for a specific job based on service type and complexity (basic/medium/complex). Applies location surcharges for remote areas.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["service_type","complexity"],"properties":{"address":{"type":"string"},"complexity":{"enum":["basic","medium","complex"],"type":"string"},"service_type":{"enum":["cleaning","electrical","gardening","plumbing","carpentry","painting","hvac","general","appliance","smart_home","car_servicing","car_brakes","car_tyres","car_battery","car_aircon","car_diagnostics","car_bodywork","car_towing"],"type":"string"}},"additionalProperties":false},"logicalName":"quote_job","displayName":"quote_job","title":"quote_job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"whatsapp_handyman","description":"Send a WhatsApp message to ONE contractor on the customer's behalf asking for availability, price, and datetime. Pass the handyman_id — the number is resolved server-side, so you never need (and won't receive) the contractor's number. Returns session_id to track replies. Contractor replies are captured automatically by the inbound webhook.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handyman_id","handyman_name","service_type"],"properties":{"address":{"type":"string"},"datetime":{"type":"string"},"max_budget":{"type":"number"},"session_id":{"type":"string"},"handyman_id":{"type":"string"},"service_type":{"type":"string"},"handyman_name":{"type":"string"},"handyman_phone":{"type":"string"}},"additionalProperties":false},"logicalName":"whatsapp_handyman","displayName":"whatsapp_handyman","title":"whatsapp_handyman","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"whatsapp_multiple_handymen","description":"Send WhatsApp messages to 1-5 contractors IN PARALLEL on the customer's behalf. Pass handyman_id for each — numbers are resolved server-side, never exposed to you. All messages sent simultaneously. Returns a shared session_id — use present_bid_results with it to see contractor replies as they arrive via webhook.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handymen","service_type"],"properties":{"address":{"type":"string"},"datetime":{"type":"string"},"handymen":{"type":"array","items":{"type":"object","required":["handyman_id","handyman_name"],"properties":{"handyman_id":{"type":"string"},"handyman_name":{"type":"string"},"handyman_phone":{"type":"string"}},"additionalProperties":false},"maxItems":5,"minItems":1},"max_budget":{"type":"number"},"service_type":{"type":"string"}},"additionalProperties":false},"logicalName":"whatsapp_multiple_handymen","displayName":"whatsapp_multiple_handymen","title":"whatsapp_multiple_handymen","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"present_bid_results","description":"Present bid results in a chat-friendly ranked table. Pass session_id to auto-fetch live WhatsApp replies from DB (no manual input). Falls back to manual call_results array if no session_id.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"sort_by":{"enum":["price","datetime","rating"],"type":"string","default":"price"},"session_id":{"type":"string"},"call_results":{"type":"array","items":{"type":"object","required":["handyman_id","name","call_status","availability","price_quoted","datetime_offered"],"properties":{"name":{"type":"string"},"rating":{"type":"number"},"whatsapp":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}]},"call_status":{"type":"string"},"handyman_id":{"type":"string"},"is_cheapest":{"type":"boolean"},"trust_score":{"type":"number"},"availability":{"type":"boolean"},"price_quoted":{"type":["number","null"]},"datetime_offered":{"type":["string","null"]},"response_time_seconds":{"type":"number"}},"additionalProperties":false}},"names_called":{"type":"array","items":{"type":"string"}},"total_called":{"type":"number"},"total_time_seconds":{"type":"number"}},"additionalProperties":false},"logicalName":"present_bid_results","displayName":"present_bid_results","title":"present_bid_results","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"accept_winning_bid","description":"User accepts the cheapest (or chosen) contractor. Triggers WhatsApp confirmation message to winner asking YES/NO. Sends rejection notices to runner-ups. Generates Stripe $5 Concierge fee payment link.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handyman_id","booking_details"],"properties":{"user_id":{"type":"string"},"user_phone":{"type":"string"},"handyman_id":{"type":"string"},"booking_details":{"type":"object","required":["datetime","address","price","service_type"],"properties":{"price":{"type":"number"},"address":{"type":"string"},"datetime":{"type":"string"},"service_type":{"type":"string"}},"additionalProperties":false},"runner_up_handymen":{"type":"array","items":{"type":"object","required":["handyman_id","name"],"properties":{"name":{"type":"string"},"whatsapp":{"anyOf":[{"anyOf":[{"not":{}},{"type":"string"}]},{"type":"null"}]},"handyman_id":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false},"logicalName":"accept_winning_bid","displayName":"accept_winning_bid","title":"accept_winning_bid","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"book_job","description":"Finalise booking after contractor accepts via WhatsApp. Creates confirmed booking record, generates Stripe $5 Concierge fee checkout link.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["booking_id"],"properties":{"user_id":{"type":"string"},"booking_id":{"type":"string"},"user_email":{"type":"string"},"user_phone":{"type":"string"}},"additionalProperties":false},"logicalName":"book_job","displayName":"book_job","title":"book_job","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"notify_arrival","description":"Send WhatsApp notification when contractor is en_route, at_door, or delayed. Sends real-time update to user's WhatsApp.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["booking_id","notification_type"],"properties":{"booking_id":{"type":"string"},"user_phone":{"type":"string"},"notification_type":{"enum":["en_route","at_door","delayed"],"type":"string"}},"additionalProperties":false},"logicalName":"notify_arrival","displayName":"notify_arrival","title":"notify_arrival","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"register_provider","description":"Self-registration for handymen, beauticians, and facialists. Submits an application to join the Tukang network. Supports all provider types with ratings, business verification, and portfolio links.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["name","phone","provider_type","service_types","location"],"properties":{"bio":{"type":"string"},"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"acra_reg":{"type":"string"},"location":{"type":"string"},"whatsapp":{"type":"string"},"price_max":{"type":"number"},"price_min":{"type":"number"},"portfolio_url":{"type":"string","format":"uri"},"provider_type":{"enum":["handyman","beautician","facialist","other"],"type":"string"},"service_types":{"type":"array","items":{"type":"string"},"minItems":1},"years_experience":{"type":"integer","minimum":0}},"additionalProperties":false},"logicalName":"register_provider","displayName":"register_provider","title":"register_provider","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"submit_provider_review","description":"Submit a star rating (1-5) and written review for a handyman or provider after a completed job. Automatically recalculates their average rating.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handyman_id","user_id","rating"],"properties":{"rating":{"type":"number","maximum":5,"minimum":1},"comment":{"type":"string"},"user_id":{"type":"string"},"handyman_id":{"type":"string"},"service_type":{"type":"string"}},"additionalProperties":false},"logicalName":"submit_provider_review","displayName":"submit_provider_review","title":"submit_provider_review","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_provider_reviews","description":"Fetch all reviews for a specific provider, including average rating, total review count, and formatted review history.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["handyman_id"],"properties":{"limit":{"type":"integer","default":10,"maximum":50,"minimum":1},"handyman_id":{"type":"string"}},"additionalProperties":false},"logicalName":"get_provider_reviews","displayName":"get_provider_reviews","title":"get_provider_reviews","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Tukang-book-trades-from-your-chat&config=eyJ1cmwiOiAiaHR0cHM6Ly90dWthbmcuYXBwL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Tukang-book-trades-from-your-chat%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Ftukang.app%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Tukang-book-trades-from-your-chat%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Ftukang.app%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Tukang%2C+book+trades+from+your+chat&connectorUrl=https%3A%2F%2Ftukang.app%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Tukang-book-trades-from-your-chat\" --url \"https://tukang.app/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tukang-mcp-7ab8ce02fb","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tukang-mcp-7ab8ce02fb/tools/{tool}","mcpServerUrl":"https://tukang.app/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tukang-mcp-7ab8ce02fb?live=1"}