For home service shops on Doing Work: see today's jobs and draft quotes and invoices from chat. Drafts wait for the owner's review.
Encrypted at rest, isolated from the model
Resolved from an AES-256-GCM vault at the moment of the call and attached to the request — the model never sees the secrets.
Try asking
Use this when a homeowner describes a home project they want quoted or priced by a local pro, for example "my water heater is leaking", "get me quotes to fix my fence", "I need a roofer", or "how much to add an outlet in my garage?". Creates or updates the job: trade, short title, description, timing, access notes, and address. Leave out quoteRequestId to start a new request. Changes only the fields you send. Ask only what a shop needs to price the job. Does not contact any shop. Do not use this for do-it-yourself advice or for a shop managing its own jobs.
Use this when the homeowner shares a photo of the problem or the work area, like a leak, damage, or the spot for a new fixture. Adds one photo to the request (JPEG, PNG, WebP, or HEIC as base64). Photos help shops price the job. Does not contact any shop.
Use this when the job details are complete and the homeowner should check them before any shop sees them. The first call returns the summary, address, likely timing, and a confirmToken and changes nothing. If something a shop needs is missing (for example the ZIP), it returns status needs_info with the missing fields and no confirmToken: ask the homeowner, save it with quote_request_update, and call this again. Call again with confirmToken only after the homeowner says it is right. Does not contact any shop.
Use this when the homeowner has confirmed the job and wants to see which local shops could quote it, or asks "who would you send this to?". Returns a short list with a plain-language reason for each shop. Shops are ranked on license, reviews, service area, and fit for the job; Doing Work membership is never a ranking input. Does not email or call any shop.
Use this when the homeowner is ready to send the job to the shops on their list and get quotes back. The first call returns a preview of the message and the shop list plus a confirmToken, and sends nothing. Call again with the same details and confirmToken only after the homeowner approves. Shops see only the homeowner's first name, town and job details. Shops only get the homeowner's phone and email if the homeowner picks them, and Doing Work doesn't sell their contact info.
Use this when the homeowner asks about the jobs they already asked for quotes on, like "what requests do I have open?". Lists their quote requests, newest first, with each request id and status (draft, ready, verified, sent, quoted or closed). Read only. Does not contact any shop.
Use this when the homeowner asks if any quotes came back, like "did anyone quote my gutter job?" or "what did the shops say?". Reads the request, its status (sent while waiting on quotes, quoted once one is in) and any quotes shops sent, in the order they arrived. Membership does not change the order. Read only. Does not contact any shop.
Use this when the homeowner wants to hire one of the shops that sent a quote. The first call returns a confirmToken and does not pick. Call again with confirmToken after the homeowner decides. The chosen shop then gets the homeowner's phone and email, the other shops get a short note, and the request closes.
One endpoint, the same key, whichever client you use.
~/Library/Application Support/Claude/claude_desktop_config.json (Mac) · %APPDATA%\Claude\claude_desktop_config.json (Windows)
Replace API_KEY with your own key.
Already have an "mcpServers" section in your config? Just add the server entry inside it.
Discovery, routing, credentials, tool scoping and execution logs all happen at the gateway→connections stay ACTIVE with no work from you
DoingWork MCP runs through a gateway that holds the credentials, scopes the access and records every call.
Managed auth, hosted MCP servers, and every DoingWork MCP tool your agent needs.
Free to start.