{"name":"goodhand","description":"Find a pro near you. See real jobs, not stars. Ask pros about a job; follow it through the proof ladder. Same reach as the REST API, minus the phone-only acts.","transport":"streamable-http","url":"https://goodhand.app/mcp","authentication":{"type":"bearer","description":"API key from POST /api/v1/agents (an agent creates itself; a person claims it to grant more scopes).","signup":"https://goodhand.app/api/v1/agents"},"tools":[{"name":"accept_offer","title":"Accept an offer","route":"POST /api/v1/offers/{offer_id}/accept","readOnly":false,"destructive":false},{"name":"add_firm_member","title":"Add a pro to my firm","route":"POST /api/v1/me/firm/members","readOnly":false,"destructive":false},{"name":"ask_masters","title":"Ask up to 3 pros","route":"POST /api/v1/requests","readOnly":false,"destructive":false},{"name":"assign_request","title":"Assign a request to a firm member","route":"POST /api/v1/requests/{request_id}/assign","readOnly":false,"destructive":false},{"name":"bind_assistant","title":"Bind an assistant agent to a pro","route":"PUT /api/v1/me/master/assistant","readOnly":false,"destructive":false},{"name":"cancel_job","title":"Cancel a job","route":"POST /api/v1/jobs/{job_id}/cancel","readOnly":false,"destructive":true},{"name":"claim_status","title":"Am I claimed, and with what scopes","route":"GET /api/v1/me","readOnly":true,"destructive":false},{"name":"create_firm","title":"Start a firm","route":"POST /api/v1/me/master/firm","readOnly":false,"destructive":false},{"name":"create_master","title":"Create a pro profile","route":"POST /api/v1/me/master","readOnly":false,"destructive":false},{"name":"create_watch","title":"Tell me when a pro joins near a place","route":"POST /api/v1/watches","readOnly":false,"destructive":false},{"name":"create_webhook","title":"Register a webhook","route":"POST /api/v1/me/webhooks","readOnly":false,"destructive":false},{"name":"decline_offer","title":"Decline an offer","route":"POST /api/v1/offers/{offer_id}/decline","readOnly":false,"destructive":false},{"name":"decline_request","title":"Decline a request (pro or assistant)","route":"POST /api/v1/requests/{request_id}/decline","readOnly":false,"destructive":false},{"name":"delete_my_account","title":"Delete my own account","route":"DELETE /api/v1/me","readOnly":false,"destructive":true},{"name":"delete_watch","title":"Stop a watch","route":"DELETE /api/v1/watches/{watch_id}","readOnly":false,"destructive":true},{"name":"delete_webhook","title":"Delete a webhook","route":"DELETE /api/v1/me/webhooks/{webhook_id}","readOnly":false,"destructive":true},{"name":"disconnect","title":"Disconnect a mailbox or contacts account","route":"DELETE /api/v1/me/master/connect/{provider}","readOnly":false,"destructive":true},{"name":"explain_fault_code","title":"Explain an appliance fault code","route":"GET /api/v1/fault-codes/{brand}/{code}","readOnly":true,"destructive":false},{"name":"check_slug","title":"Check a page address","route":"GET /api/v1/masters/slug-available","readOnly":true,"destructive":false},{"name":"find_city","title":"Find a city","route":"GET /api/v1/cities","readOnly":true,"destructive":false},{"name":"find_masters","title":"Find pros","route":"GET /api/v1/masters","readOnly":true,"destructive":false},{"name":"get_connection_contacts","title":"Read contacts from a connected account","route":"GET /api/v1/me/master/connect/{provider}/contacts","readOnly":true,"destructive":false},{"name":"get_inbox_address","title":"Get the forwarding address","route":"GET /api/v1/me/master/inbox-address","readOnly":true,"destructive":false},{"name":"get_job","title":"Get a job","route":"GET /api/v1/jobs/{job_id}","readOnly":true,"destructive":false},{"name":"grant_request_status","title":"Did my person answer","route":"GET /api/v1/me/grant-requests","readOnly":true,"destructive":false},{"name":"get_master","title":"Get a pro","route":"GET /api/v1/masters/{slug}","readOnly":true,"destructive":false},{"name":"get_my_firm","title":"Get my firm","route":"GET /api/v1/me/firm","readOnly":true,"destructive":false},{"name":"get_my_master_profile","title":"My pro profile","route":"GET /api/v1/me/master","readOnly":true,"destructive":false},{"name":"import_clients","title":"Import past clients","route":"POST /api/v1/me/master/clients/import","readOnly":false,"destructive":false},{"name":"import_from_connection","title":"Import ticked contacts as past clients","route":"POST /api/v1/me/master/connect/import","readOnly":false,"destructive":false},{"name":"list_connections","title":"List mailbox and contacts connections","route":"GET /api/v1/me/master/connect","readOnly":true,"destructive":false},{"name":"list_master_jobs","title":"List a pro's public jobs","route":"GET /api/v1/masters/{slug}/jobs","readOnly":true,"destructive":false},{"name":"list_my_jobs","title":"List my booked jobs","route":"GET /api/v1/me/master/jobs","readOnly":true,"destructive":false},{"name":"list_my_requests","title":"List my requests","route":"GET /api/v1/me/requests","readOnly":true,"destructive":false},{"name":"list_notifications","title":"List notifications","route":"GET /api/v1/me/notifications","readOnly":true,"destructive":false},{"name":"notification_prefs","title":"Notification preferences","route":"PUT /api/v1/me/notifications/prefs","readOnly":false,"destructive":false},{"name":"list_offers","title":"List offers on a request","route":"GET /api/v1/me/requests","readOnly":true,"destructive":false},{"name":"list_fault_codes","title":"List appliance fault codes","route":"GET /api/v1/fault-codes","readOnly":true,"destructive":false},{"name":"list_trades","title":"List trades","route":"GET /api/v1/trades","readOnly":true,"destructive":false},{"name":"list_watches","title":"List my watches","route":"GET /api/v1/watches","readOnly":true,"destructive":false},{"name":"list_webhooks","title":"List webhooks","route":"GET /api/v1/me/webhooks","readOnly":true,"destructive":false},{"name":"master_inbox","title":"Pro inbox","route":"GET /api/v1/me/inbox","readOnly":true,"destructive":false},{"name":"my_earnings","title":"My earnings","route":"GET /api/v1/me/master/earnings","readOnly":true,"destructive":false},{"name":"my_home","title":"My home","route":"GET /api/v1/me/home","readOnly":true,"destructive":false},{"name":"my_standing","title":"My standing","route":"GET /api/v1/me/master/standing","readOnly":true,"destructive":false},{"name":"parse_contacts","title":"Parse a contacts export","route":"POST /api/v1/me/master/connect/contacts/parse","readOnly":false,"destructive":false},{"name":"price_range","title":"Price range for a job in a city","route":"GET /api/v1/prices","readOnly":true,"destructive":false},{"name":"read_problem","title":"Read a problem","route":"POST /api/v1/problems","readOnly":true,"destructive":false},{"name":"remove_firm_member","title":"Remove a pro from my firm","route":"DELETE /api/v1/me/firm/members/{master_id}","readOnly":false,"destructive":true},{"name":"request_grant","title":"Ask your person for scopes","route":"POST /api/v1/me/grant-requests","readOnly":false,"destructive":false},{"name":"report_master","title":"Report a pro","route":"POST /api/v1/masters/{master}/reports","readOnly":false,"destructive":false},{"name":"report_no_show","title":"Report a no-show","route":"POST /api/v1/jobs/{job_id}/no-show","readOnly":false,"destructive":false},{"name":"request_upload_url","title":"Get a photo upload URL","route":"POST /api/v1/uploads","readOnly":false,"destructive":false},{"name":"resend_client_confirmation","title":"Resend a client's confirm link","route":"POST /api/v1/me/master/clients/{job_id}/resend","readOnly":false,"destructive":false},{"name":"rotate_inbox_address","title":"Rotate the forwarding address","route":"POST /api/v1/me/master/inbox-address/rotate","readOnly":false,"destructive":true},{"name":"scan_past_clients","title":"Suggest past clients from the mailbox","route":"POST /api/v1/me/master/connect/{provider}/scan-past-clients","readOnly":false,"destructive":false},{"name":"search_job_types","title":"Search job types","route":"GET /api/v1/job-types","readOnly":true,"destructive":false},{"name":"send_offer","title":"Send an offer (pro or assistant)","route":"POST /api/v1/requests/{request_id}/offers","readOnly":false,"destructive":false},{"name":"signup_agent","title":"Sign yourself up as an agent","route":"POST /api/v1/agents","readOnly":false,"destructive":false},{"name":"unbind_assistant","title":"Unbind the assistant agent","route":"DELETE /api/v1/me/master/assistant","readOnly":false,"destructive":true},{"name":"update_my_master_profile","title":"Update my pro profile","route":"PATCH /api/v1/me/master","readOnly":false,"destructive":false},{"name":"withdraw_offer","title":"Withdraw an offer","route":"POST /api/v1/offers/{offer_id}/withdraw","readOnly":false,"destructive":false}],"documentation":{"openapi":"https://goodhand.app/openapi.json","llms":"https://goodhand.app/llms.txt"}}