Is the Commontape Booking MCP server down?

mcp-registry/com.commontape/booking · v1.0.0

healthy
Last checked 2026-10-23 16:25 UTC · handshake 196ms

As of 2026-10-23 16:25 UTC, the Commontape Booking MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

uptime (30d checks)
100%
checks observed
2,694
outages (90d)
0
tools
10

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

Install Commontape Booking MCP server

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http commontape-booking-mcp-server https://commontape.com/api/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "commontape-booking-mcp-server": {
      "type": "http",
      "url": "https://commontape.com/api/mcp"
    }
  }
}

Third-party server, listed as discovered. Review its source before installing.

Agent-readiness: D (68/100)

D (68/100): 0 error(s), 4 warning(s) across 10 tool(s); ~5,177 tokens of tool definitions.
Scores higher than 3% of 15,585 MCP servers Glimind has audited.
Its tool list costs an agent ~5,177 tokens per session — more than 60% of servers.
66 → 68 since 2026-10-17
no tool-poisoning patterns
Schemas100
Descriptions48
Safety hints4
Token cost80
Client compatibility70
Protocol100
Reliability100
Stability96

What to fix (6)

2 tool definition(s) exceed ~1,200 tokens each (largest: search, ~1,855).

Move long reference material out of descriptions (link a doc or expose a resource), drop repeated examples, and collapse large enums. Trimming these to ~600 tokens saves ~1,921 tokens every session. How to fix →

Tools: search, quote · saves ~1,921 tokens/session

10 of 10 tool(s) carry no readOnlyHint/destructiveHint annotations.

Annotate read-only tools with {"readOnlyHint": true}. Agents and gateways can then run them without a confirmation prompt, and route around destructive ones. How to fix →

Tools: book, cancel, discover, hold, modify and 5 more

10 parameter(s) across 6 tool(s) have no description.

Add a "description" to each parameter with its format and an example ("ISO 8601 date, e.g. 2026-10-17"). This is the commonest cause of wrong arguments on the first call. How to fix →

Tools: book, cancel, discover, hold, modify and 1 more

2 tool(s) look like they change state (create/send/delete/pay…) but declare no destructiveHint.

Set annotations {"readOnlyHint": false, "destructiveHint": true|false, "idempotentHint": …}. Clients use these to ask the user before a side effect and to auto-approve safe reads. How to fix →

Tools: book, cancel

No tool declares an outputSchema.

Declare outputSchema and return structuredContent (MCP 2025-06-18+). Agents can then parse results without guessing, and chain tools reliably. How to fix →

In the last 30 days: 0 tool(s) removed and 1 schema change(s).

Add new tools or optional parameters instead of renaming or removing; deprecate first (say so in the description) and remove later. Agents cache tool contracts. How to fix →

Auto-fix: 4 corrected tool definitions

Paste-ready definitions with the problems above fixed. Changes marked verify need a human look. 6 tool(s) still need parameter descriptions written by someone who knows the API. All of them as JSON: /v1/readiness/mcp-registry%2Fcom.commontape%2Fbooking/fixes

book 1 change
{
  "name": "book",
  "description": "Commit a hold with the customer's details. Returns booked, or pending_approval (the owner must say yes: the quote's booking_authority was approval_required, or the owner's booking setting tightened since; the time stays reserved; poll status until decide_by, about once a minute: the owner has up to 2 hours, never later than an hour before the job (a job starting within about an hour keeps its hold's time); jobs waiting count toward your open holds; with no answer by then the job is expired: the ",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "transaction_id",
      "customer",
      "idempotency_key"
    ],
    "properties": {
      "customer": {
        "type": "object",
        "required": [
          "name",
          "phone",
          "service_address"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "service_address": {
            "type": "string"
          },
          "access_instructions": {
            "type": "string",
            "maxLength": 500,
            "description": "How the cleaner gets in (gate or door code, where the key or lockbox is). Shown to the owner only after they say yes; never returned to you."
          }
        }
      },
      "transaction_id": {
        "type": "string",
        "description": "transaction_id from quote or hold"
      },
      "idempotency_key": {
        "type": "string",
        "description": "Unique per write request (a UUID). Retrying with the same key returns the original result."
      }
    }
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": false
  }
}
cancel 1 change
{
  "name": "cancel",
  "description": "Cancel your own held, waiting (pending_approval) or booked job and release the slot. Optional reason: customer_changed_plans, customer_booked_elsewhere, booked_in_error, customer_other. The answer carries cancellation (by, at, reason, fee null, policy, capacity_released): CommonTape takes no cancellation fee. Already cancelled answers ALREADY_CANCELLED (with recovery when the business called it off).",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "transaction_id",
      "idempotency_key"
    ],
    "properties": {
      "reason": {
        "enum": [
          "customer_changed_plans",
          "customer_booked_elsewhere",
          "booked_in_error",
          "customer_other"
        ],
        "type": "string"
      },
      "transaction_id": {
        "type": "string",
        "description": "transaction_id from quote or hold"
      },
      "idempotency_key": {
        "type": "string",
        "description": "Unique per write request (a UUID). Retrying with the same key returns the original result."
      }
    }
  },
  "annotations": {
    "readOnlyHint": false,
    "destructiveHint": true,
    "idempotentHint": true
  }
}
search 1 change
{
  "name": "search",
  "description": "Start here. Every result carries trust (facts with who vouches for each and until when, lapsed facts, the job record); trust never changes the order, the price, who is eligible or what needs approval. A search result is not a promise: prices and windows are as of availability_checked_at, and only a booked job is committed. Every business line carries facts_confirmed_at (when its owner last confirmed its facts: a save, CommonTape's switch-on or a Yes on the daily email; null if never), stale (tru",
  "inputSchema": {
    "type": "object",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "zip"
    ],
    "properties": {
      "zip": {
        "type": "string",
        "description": "The customer's 5-digit US ZIP"
      },
      "scope": {
        "type": "object",
        "properties": {
          "leave_out": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "clean_only": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "The 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.",
        "additionalProperties": {}
      },
      "inputs": {
        "type": "object",
        "properties": {
          "hours": {
            "type": "number"
          },
          "addons": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Task keys the customer must have, e.g. task.fridge_interior; each is priced in, or included by the package quoted."
          },
          "people": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "bedrooms": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "bathrooms": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "frequency": {
            "enum": [
              "once",
              "weekly",
              "biweekly",
              "monthly"
            ],
            "type": "string"
          },
          "conditions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "quantities": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": -9007199254740991
            }
          },
          "surcharges": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "square_feet": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "customer_zip": {
            "type": "string"
          }
        },
        "description": "The 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.",
        "additionalProperties": {}
      },
      "must_not": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Tasks to leave out, a way to pay the customer cannot use, or crew.solo."
      },
      "property": {
        "type": "object",
        "properties": {
          "size": {
            "type": "object",
            "required": [
              "square_feet"
            ],
            "properties": {
              "approximate": {
                "type": "boolean"
              },
              "square_feet": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              }
            },
            "additionalProperties": {}
          },
          "type": {
            "type": "string",
            "description": "Kind of home: property.studio | property.apartment | property.condo | property.townhouse | property.detached_house | property.duplex | property.villa | property.other_residential"
          },
          "floors": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "description": "Floors inside the home"
          },
          "spaces": {
            "type": "object",
            "description": "space.* 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.",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": -9007199254740991
            }
          },
          "occupancy": {
            "type": "string",
            "description": "occupied | vacant"
          },
          "furnishing": {
            "type": "string",
            "description": "furnished | partly_furnished | unfurnished"
          },
          "floor_level": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "description": "Floor of the home's front door; street level = 1, below it = 0"
          }
        },
        "description": "The 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).",
        "additionalProperties": {}
      },
      "arrive_by": {
        "type": "string",
        "description": "Optional. 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_by": {
        "type": "string",
        "description": "Optional. 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_total": {
        "type": "number",
        "description": "Optional. 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_have": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Words 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_key": {
        "type": "string",
        "description": "house_cleaning.standard | house_cleaning.deep | house_cleaning.move_in_out. Omit to consider all three."
      },
      "customer_ref": {
        "type": "string",
        "pattern": "^[A-Za-z0-9._:-]{1,64}$",
        "description": "Optional. 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_have": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Words that rank a business higher but never exclude it."
      },
      "special_requests": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Up to 5 plain-text requests not on the word list. Always needs the owner's approval."
      },
      "id_to_security_hours_before": {
        "type": "integer",
        "maximum": 9007199254740991,
        "minimum": -9007199254740991,
        "description": "Optional, 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."
      }
    },
    "additionalProperties": {}
  },
  "annotations": {
    "readOnlyHint": true
  }
}

Get alerted

Get an email or webhook when this server's readiness drops by 10+ points, tool-poisoning text appears, or a tool breaks:

curl -X POST https://glimind.com/v1/subscriptions -H 'content-type: application/json' -d '{"tools":["mcp-registry/com.commontape/booking"],"email":"[email protected]"}'

Agents: watch_tool({"toolId": "mcp-registry/com.commontape/booking"}) over MCP.

Passed

Largest tool definitions

Static checks of the advertised tools/list (schema, descriptions, annotations, tool-poisoning patterns, names, size) plus observed protocol, uptime, latency and contract changes. Read-only: no tool is ever called. Weights: schema 15, docs 20, safety 15, efficiency 15, compatibility 15, protocol 5, reliability 10, stability 5. Token counts are estimates (~3.6 characters per token).

Operator? Fix these, then re-check live. Embed the readiness badge:

Markdown
[![MCP agent-readiness](https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.commontape%2Fbooking.svg)](https://glimind.com/server/mcp-registry%2Fcom.commontape%2Fbooking?ref=badge)
HTML
<a href="https://glimind.com/server/mcp-registry%2Fcom.commontape%2Fbooking?ref=badge"><img src="https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.commontape%2Fbooking.svg" alt="MCP agent-readiness"></a>
reStructuredText
.. image:: https://glimind.com/v1/readiness/badge/mcp-registry%2Fcom.commontape%2Fbooking.svg
   :target: https://glimind.com/server/mcp-registry%2Fcom.commontape%2Fbooking?ref=badge
   :alt: MCP agent-readiness

Tool-definition log

Glimind records every version of this server's tool definitions in a signed, append-only transparency log. Current manifest sha256:6d071afabccf9ee9…, first seen 2026-10-17, included at leaf 10005 of 53,053. Version history · verify what your client received.

Tools (10)

Compare: most reliable other servers · most reliable search servers · most reliable security servers · most reliable knowledge servers

Know before your agent calls it

Glimind tells agents whether a server is up right now and how to call it, then fails over to a live alternative when it isn't.

Add Glimind — free, no signup:

Add to Cursor Add to VS Code

Claude Code

claude mcp add --transport http glimind https://glimind.com/mcp

Claude Desktop · Windsurf · Cline (mcpServers JSON)

{
  "mcpServers": {
    "glimind": {
      "type": "http",
      "url": "https://glimind.com/mcp"
    }
  }
}

FAQ

Is the Commontape Booking MCP server down right now?

As of 2026-10-23 16:25 UTC, the Commontape Booking MCP server is up with a Glimind reliability score of 100/100 (grade A). Over the last 30 days it answered 100% of Glimind's liveness checks.

How many tools does Commontape Booking MCP server provide?

Commontape Booking MCP server advertises 10 tools, including book, cancel, discover, hold, modify.

How do I install Commontape Booking MCP server?

Point your MCP client at this streamable-http endpoint: https://commontape.com/api/mcp

Is the Commontape Booking MCP server safe to connect to an AI agent?

Glimind scanned all 10 tool definitions for tool-poisoning patterns — hidden or invisible characters, instructions that override the model, concealment from the user, requests to read credential or MCP config files, conversation exfiltration and cross-tool shadowing — and found none. This checks what the server tells the model, not what its code does; review the source before granting access to sensitive data.

Operator of Commontape Booking MCP server?

Status page: 90-day uptime, every outage and how long it lasted.

Claim this listing to get the Verified operator marker, a remediation checklist and owner analytics, or embed the live badge from any of the tool pages above. Maintainers: alerts, deploy attestation and monthly reports.

Status is an automated estimate from Glimind's liveness checks (handshake and tool listing only; no tool is ever called) and may lag or differ from your network. Glimind is not affiliated with this server or its operator. Operator? Request a correction or opt out at https://glimind.com/opt-out.

Feedback
Help us improve