Skip to main content
Glama

Server Details

Book a San Francisco apartment cleaning. $40/hr, weekends 8am-6pm PT, SF only.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
GetColby/claw-cleaning
GitHub Stars
0
Server Listing
Claw-Cleaning

Available Tools

3 tools
check_availabilityAInspect

List available cleaning slots. Saturdays and Sundays only, 8 AM – 6 PM PT, San Francisco only. Omit date for the next 8 upcoming weekend days.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional YYYY-MM-DD date (must be Saturday or Sunday).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full behavioral disclosure. It reveals important traits: weekends-only availability, specific time window, geographic limitation, and the behavior when omitting `date` (returns next 8 weekend days). This goes beyond the schema and gives the agent actionable expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the purpose, followed by constraints, and ending with parameter usage. Every sentence contributes necessary information with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter, no output schema, and no annotations, the description covers purpose, operational constraints, and parameter behavior well. It does not describe the structural details of the returned slots, but the core usage is fully addressed, making it complete enough for straightforward selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers the `date` parameter with 100% description coverage. The description adds the critical behavior that omitting the parameter returns the next 8 upcoming weekend days, which is not in the schema. This extra semantic guidance elevates the parameter understanding above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'List available cleaning slots,' a specific verb+resource pair that clearly states the tool's function. It distinguishes itself from sibling tools (check_booking_status, initiate_booking) by focusing on availability, and the additional details (weekends, time, location) further sharpen its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear operational constraints: 'Saturdays and Sundays only, 8 AM – 6 PM PT, San Francisco only.' It also gives a concrete usage instruction: 'Omit `date` for the next 8 upcoming weekend days.' While it doesn't explicitly mention alternatives or when not to use it, the context strongly implies its role among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_booking_statusAInspect

List upcoming bookings for a customer by email. Queries Google Calendar directly, so results are live and reflect any bookings in the next ~20 events.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesCustomer email used when booking.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden. It discloses that it queries Google Calendar directly, results are live, and it reflects the next ~20 events, which sets expectations for freshness and scope. It stops short of describing auth requirements or error behavior, but for a read-only list tool these disclosures are meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with the primary action and key behavioral caveat. No redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter list tool, the description is sufficient: it states the purpose, data source, and result window. It doesn't describe the return payload shape, but given no output schema and the straightforward nature of 'list upcoming bookings', this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers the single parameter 'email' with 100% coverage, so the description adds little beyond confirming filtering 'by email'. No additional semantics about format or validation are needed given the schema is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb 'List' with resource 'upcoming bookings' and clarifies scope 'for a customer by email'. This clearly distinguishes from sibling tools check_availability and initiate_booking, which focus on availability checking and booking creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this tool to list a customer's upcoming bookings, with live results from Google Calendar. It does not explicitly state when not to use it or name alternatives, but the sibling names and the stated purpose make usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

initiate_bookingAInspect

Reserve a cleaning slot. No payment is collected up front — the customer pays the cleaner in cash or card at the appointment. Returns { status: "booked" }, the slot is locked in the calendar, and a calendar invite is sent to the email. Always ask the customer for full details (date, start time, hours, address, name, email) and confirm the booking preview before calling this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesYYYY-MM-DD. Must be Saturday or Sunday.
nameYesCustomer's full name.
emailYesCustomer email. Calendar invite goes here.
hoursYesNumber of hours (1–8). $40/hour.
sourceNoOptional caller surface. Defaults to `mcp` when omitted.
addressYesFull street address. Must be in San Francisco, CA.
startTimeYes24h HH:MM, between 08:00 and 18:00 PT.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it excels: it discloses no upfront payment, the locked slot, calendar invite sending, and the expected return value. It also instructs the agent on required customer interactions, going beyond a simple operation summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet information-dense, with the core action front-loaded and supporting details neatly organized. Every sentence adds value—payment policy, return value, side effects, and required pre-checks—without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 7 parameters, no output schema, and sibling tools for related actions, this description covers the essential context: what it does, what it returns, what side effects occur, and what the agent must do before invoking. It is sufficiently complete for an agent to decide when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter having a description, so the schema already handles parameter meaning. The description adds no extra parameter-level detail beyond what the schema provides, such as formatting or constraints, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Reserve a cleaning slot,' which is a specific verb+resource pair that clearly states the tool's function. It distinguishes itself from siblings (check_availability, check_booking_status) by focusing on the booking action and its side effects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool: after gathering full details and confirming the booking preview. It doesn't explicitly name alternatives or say when not to use it, but the 'Always ask...' instruction implies a precondition rather than a contrast with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updates
    • Changedcheck_availability1 field changed
      • changedInput schema / properties / date / description
        Previous value: -"Optional YYYY-MM-DD date. Before 2026-05-05 must be Saturday or Sunday; on or after, any day."New value: +"Optional YYYY-MM-DD date (must be Saturday or Sunday)."
    • Changedinitiate_booking2 fields changed
      • changedInput schema / properties / date / description
        Previous value: -"YYYY-MM-DD. Any day on or after 2026-05-05; before that date, Saturday or Sunday only."New value: +"YYYY-MM-DD. Must be Saturday or Sunday."
      • addedInput schema / properties / source
        Added value: +{
        +  "description": "Optional caller surface. Defaults to `mcp` when omitted.",
        +  "enum": [
        +    "mcp",
        +    "web",
        +    "direct",
        +    "agent"
        +  ],
        +  "type": "string"
        +}
  2. 2 tool updates
    • Changedcheck_availability1 field changed
      • changedInput schema / properties / date / description
        Previous value: -"Optional YYYY-MM-DD date (must be Saturday or Sunday)."New value: +"Optional YYYY-MM-DD date. Before 2026-05-05 must be Saturday or Sunday; on or after, any day."
    • Changedinitiate_booking1 field changed
      • changedInput schema / properties / date / description
        Previous value: -"YYYY-MM-DD. Must be Saturday or Sunday."New value: +"YYYY-MM-DD. Any day on or after 2026-05-05; before that date, Saturday or Sunday only."
  3. 2 tool updates
    • Changedcheck_booking_status1 field changed
      • changedInput schema / properties / email / description
        Previous value: -"Customer email used during checkout."New value: +"Customer email used when booking."
    • Changedinitiate_booking1 field changed
      • removedInput schema / properties / payInPerson
        Removed value: -{
        -  "description": "If true, book without taking payment — customer pays the cleaner at the appointment. Defaults to false (Stripe checkout).",
        -  "type": "boolean"
        -}
  4. 4 tool updates
    • Removedclaim_credentials
    • Removedforce_checkout_booking
    • Changedinitiate_booking4 fields changed
      • changedInput schema / properties / email / description
        Previous value: -"Customer email. Used to identify repeat customers and deliver the calendar invite."New value: +"Customer email. Calendar invite goes here."
      • removedInput schema / properties / password
        Removed value: -{
        -  "description": "Per-customer password issued by claw.cleaning on the first successful Stripe checkout. Only needed for returning customers auto-charging a saved card; must be passed together with `username`. Recall from memory. Omit for first-time or pay-in-person.",
        -  "type": "string"
        -}
      • changedInput schema / properties / payInPerson / description
        Previous value: -"If true, book without taking payment — customer pays the cleaner in cash or card at the appointment. Defaults to false (Stripe flow)."New value: +"If true, book without taking payment — customer pays the cleaner at the appointment. Defaults to false (Stripe checkout)."
      • removedInput schema / properties / username
        Removed value: -{
        -  "description": "Per-customer username issued by claw.cleaning on the first successful Stripe checkout. Only needed for returning customers auto-charging a saved card; must be passed together with `password`. Recall from memory (key like `claw.cleaning credentials for <email>`). Omit for first-time or pay-in-person.",
        -  "type": "string"
        -}
    • Removedrevoke_credentials
  5. 1 tool update
    • Addedrevoke_credentials
  6. 2 tool updates
    • Addedclaim_credentials
    • Changedinitiate_booking3 fields changed
      • addedInput schema / properties / password
        Added value: +{
        +  "description": "Per-customer password issued by claw.cleaning on the first successful Stripe checkout. Only needed for returning customers auto-charging a saved card; must be passed together with `username`. Recall from memory. Omit for first-time or pay-in-person.",
        +  "type": "string"
        +}
      • addedInput schema / properties / payInPerson
        Added value: +{
        +  "description": "If true, book without taking payment — customer pays the cleaner in cash or card at the appointment. Defaults to false (Stripe flow).",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / username
        Added value: +{
        +  "description": "Per-customer username issued by claw.cleaning on the first successful Stripe checkout. Only needed for returning customers auto-charging a saved card; must be passed together with `password`. Recall from memory (key like `claw.cleaning credentials for <email>`). Omit for first-time or pay-in-person.",
        +  "type": "string"
        +}
  7. 4 tool updates
    • First observedcheck_availability
    • First observedcheck_booking_status
    • First observedforce_checkout_booking
    • First observedinitiate_booking

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    Not graded
    maintenance
    Enables booking cleaning services in San Francisco by collecting customer details and automatically sending booking requests via email to service partners.
    1
    -
  • A
    license
    A
    quality
    D
    maintenance
    Books professional home cleaning services anywhere in metropolitan France end-to-end (coverage check, firm quote, booking creation, URSSAF "avance immédiate" enrollment, status polling). End users pay only 50% via SEPA direct debit thanks to the URSSAF immediate tax credit advance — no card payment required.
    5
    21
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides deterministic cleaning cost, time, crew, and chemical usage estimates for homes and offices via MCP and HTTP endpoints.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: checking availability, checking booking status, and initiating a booking. There is no overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (check_availability, check_booking_status, initiate_booking), making them predictable and readable.

Tool Count4/5

With 3 tools, the set is on the lower end but appropriate for the narrow domain of booking cleaning slots. Each tool serves an essential function without unnecessary bloat.

Completeness3/5

The surface covers create (initiate_booking), read (check_booking_status), and availability (check_availability), but lacks cancellation or rescheduling capabilities, which are common needs for booking services.