mcpField
C

CommonTape

Remote
commontape.comBusiness & Marketing

About CommonTape

Quote, hold and book US house cleaning jobs on a customer's behalf, at each business's own prices

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://commontape.com/api/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

All endpoints
Streamable HTTPhttps://commontape.com/api/mcpAuth required

Tools

10
ParameterTypeRequiredDescription
zipstringYesThe customer's 5-digit US ZIP
scopeobjectNoThe rooms the job covers: leave_out (rooms not to clean) or clean_only (the only rooms to clean), never both, by space.* key. Under a by_rooms price a room left out comes off the price; other prices do not change. Echoed on every answer and shown to the owner.
scope.leave_outarrayNo
scope.clean_onlyarrayNo
inputsobjectNoThe job's price inputs: hours, people, frequency, conditions, and bedrooms, bathrooms, square_feet when not stated in property. Each service uses only what its price needs.
inputs.hoursnumberNo
inputs.addonsarrayNoTask keys the customer must have, e.g. task.fridge_interior; each is priced in, or included by the package quoted.
inputs.peopleintegerNo
inputs.bedroomsintegerNo
inputs.bathroomsintegerNo
inputs.frequencyenumNoonce | weekly | biweekly | monthly
inputs.conditionsarrayNo
inputs.quantitiesobjectNo
inputs.surchargesarrayNo
inputs.square_feetintegerNo
inputs.customer_zipstringNo
must_notarrayNoTasks to leave out, a way to pay the customer cannot use, or crew.solo.
propertyobjectNoThe home, stated once with the words at /api/v1/taxonomy/house_cleaning (property). Unknown or unclear words are refused with the word meant or the question to ask. Bedrooms, bathrooms (when there is no half bathroom) and square feet feed each price that uses them; no need to repeat them in inputs. A by_rooms price and a fixed price's limits read property.spaces only (state every kind the price counts, 0 included; a living area is living + family + formal living rooms).
property.sizeobjectNo
property.size.approximatebooleanNo
property.size.square_feetintegerYes
property.typestringNoKind of home: property.studio | property.apartment | property.condo | property.townhouse | property.detached_house | property.duplex | property.villa | property.other_residential
property.floorsintegerNoFloors inside the home
property.spacesobjectNospace.* key -> how many, e.g. {"space.bedroom": 2, "space.bathroom.full": 2, "space.bathroom.half": 1}. A room that exists is a fact, not a request to clean it.
property.occupancystringNooccupied | vacant
property.furnishingstringNofurnished | partly_furnished | unfurnished
property.floor_levelintegerNoFloor of the home's front door; street level = 1, below it = 0
arrive_bystringNoOptional. The latest start: a date and time like 2026-10-09T10:00 (wall clock in the job ZIP's time zone, the business's zone) or with an offset (2026-10-09T14:00Z). Only windows that start by then are offered; none left is a near miss no_window_fits. Refused: a time that does not exist (clocks going forward), the past, more than 60 days ahead.
finish_bystringNoOptional. The latest finish, written like arrive_by: a window is offered only if it starts early enough to end by then (window start plus job_hours, else the window's end). After arrive_by when both are sent.
max_totalnumberNoOptional. The most the customer will pay in all, in dollars (travel and extra charges included). A priced business above it is a near miss over_max_total with the gap in dollars; a window whose own day or hour charge would take the price over it is left out; a business with no price yet (needs_more, owner_must_quote) is listed with max_total not_checked in statuses.
must_havearrayNoWords the business must offer, e.g. task.fridge_interior, pay.card. Tasks at extra cost, or done only inside a package, are priced in.
service_keystringNohouse_cleaning.standard | house_cleaning.deep | house_cleaning.move_in_out. Omit to consider all three.
customer_refstringNoOptional. Your own label for your customer, so two customers with the same job are not the same job. Never shown to the owner.
nice_to_havearrayNoWords that rank a business higher but never exclude it.
special_requestsarrayNoUp to 5 plain-text requests not on the word list. Always needs the owner's approval.
id_to_security_hours_beforeintegerNoOptional, with cond.id_to_security in inputs.conditions. How many hours before the job the building wants each cleaner's name and photo ID (1 to 168). A business that can send them at least this far ahead meets it; one that cannot is a near miss id_notice_too_short; one that has not said is not_said in statuses.

Details

The maintainer has not added details yet. Check the README in the repository.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.