MaidCentral MCP by usefulapi

Read services, prices and open dates; create leads, quotes, bookings and notes in MaidCentral.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
72%
Qualität der Benennung
74%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (6)

  • LOWTool 'maidcentral_list_scope_frequencies' name length outside 3-30 rangein maidcentral_list_scope_frequencies
  • LOWTool 'maidcentral_list_rate_modifications' name length outside 3-30 rangein maidcentral_list_rate_modifications
  • LOWTool 'maidcentral_list_available_dates' name length outside 3-30 rangein maidcentral_list_available_dates
  • LOWTool 'maidcentral_list_customer_sources' name length outside 3-30 rangein maidcentral_list_customer_sources
  • LOWTool 'maidcentral_create_or_update_lead' name length outside 3-30 rangein maidcentral_create_or_update_lead
  • LOWTool 'maidcentral_create_or_update_quote' name length outside 3-30 rangein maidcentral_create_or_update_quote

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,376Tokens (Tool-Definitionen)
~1.8 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.42% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "maidcentral": {
      "url": "https://maidcentral.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

https://maidcentral.usefulapi.io/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (20)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢maidcentral_list_scope_groups

List service categories (scope groups) with their scopes of work and frequency ids. Start here: the ids feed quotes, pricing and bookings. API: GET /api/Lead/ScopeGroups.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_scopes(scope_group_id)

List the scopes of work (and frequencies) of one scope group. API: GET /api/Lead/Scopes.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "scope_group_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Scope group id."
    }
  },
  "required": [
    "scope_group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_scope_frequencies(scope_id)

List the frequency options (one-time, weekly, ...) of one scope. API: GET /api/Lead/ScopeFrequencies.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "scope_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Scope id."
    }
  },
  "required": [
    "scope_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_questions(scope_ids)

List the questions (home size, bedrooms, ...) and answer options for one or more scopes. Required questions must be answered in quotes and pricing. API: GET /api/Lead/Questions.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "scope_ids": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "description": "Scope ids."
    }
  },
  "required": [
    "scope_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_rate_modifications(scope_group_id)

List the extras, discounts and other rate modifications available for a scope group. API: GET /api/Lead/RateModifications.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "scope_group_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Scope group id."
    }
  },
  "required": [
    "scope_group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_available_dates(scope_group_id, hours, amount, start_date, end_date)

List dates on which a quoted job of a given length or price can be booked for a scope group. Give hours or amount. API: GET /api/Lead/Availability.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "scope_group_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Scope group id."
    },
    "hours": {
      "description": "Job length in hours (hours or amount is required).",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "amount": {
      "description": "Job amount (hours or amount is required).",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "start_date": {
      "description": "Start date, ISO 8601. Default today.",
      "type": "string"
    },
    "end_date": {
      "description": "End date, ISO 8601. Default one month from today.",
      "type": "string"
    }
  },
  "required": [
    "scope_group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_postal_codes

List the postal codes the company serves, with their home zone. API: GET /api/Lead/PostalCodes.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_customer_sources

List customer (lead) sources. API: GET /api/Lead/CustomerSources.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_billing_terms

List billing terms usable when booking. API: GET /api/Lead/BillingTerms.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_teams

List teams that jobs can be scheduled to. API: GET /api/Lead/Teams.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_tags

List tags with their category ids (lead tags = category 8, service set tags = 5, first job tags = 6). API: GET /api/Lead/Tags.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_list_note_types

List note types (Email = 1, Note = 2, PhoneCall = 3, TextMessage = 4). API: GET /api/Note/Types.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_get_lead(lead_id)

Get a lead by id: contact details, status, source, scope group and addresses. API: GET /api/Lead/Lead.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "lead_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Lead id."
    }
  },
  "required": [
    "lead_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_get_quote(quote_id)

Get a quote by id: status, addresses, and per-scope and per-frequency prices, hours and booked state. API: GET /api/Lead/Quote.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F-]{36}$",
      "description": "Quote id (uuid)."
    }
  },
  "required": [
    "quote_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢maidcentral_calculate_price(scope_group_id, postal_code, scopes_of_work, questions)

Calculate a price for scopes, frequencies, extras and question answers without creating a lead or quote. Stores nothing. API: POST /api/Lead/CalculatePrice.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "scope_group_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Scope group id."
    },
    "postal_code": {
      "description": "Service postal code.",
      "type": "string"
    },
    "scopes_of_work": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ScopeOfWorkId": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Scope id (from maidcentral_list_scope_groups)."
          },
          "FrequencyId": {
            "type": "string",
            "description": "Frequency id for this scope (from maidcentral_list_scope_groups)."
          },
          "BaseFee": {
            "description": "Optional: override the calculated price for this scope/frequency.",
            "type": "number"
          },
          "RateModifications": {
            "description": "Optional extras/discounts (from maidcentral_list_rate_modifications).",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "RateModificationId": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "Quantity": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991,
                  "description": "Quantity, must not be 0."
                },
                "IsRecurring": {
                  "type": "boolean"
                }
              },
              "required": [
                "RateModificationId",
                "Quantity"
              ]
            }
          }
        },
        "required": [
          "ScopeOfWorkId",
          "FrequencyId"
        ]
      },
      "description": "Scopes and frequencies to price."
    },
    "questions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "QuestionId": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "Answer": {
            "type": "string",
            "description": "Select lists: the AnswerId. Multiple select: comma-separated AnswerIds. Else plain text."
          }
        },
        "required": [
          "QuestionId",
          "Answer"
        ]
      },
      "description": "Answers to the scope questions (use [] if none)."
    }
  },
  "required": [
    "scope_group_id",
    "scopes_of_work",
    "questions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴maidcentral_create_or_update_lead(first_name, last_name, email, phone, postal_code, ...)

WRITE: create a lead, or update one when lead_id is given. The postal code must be in a home zone. By default MaidCentral may send the lead email, add the lead to campaigns and trigger webhooks: set send_lead_email, add_to_campaigns and trigger_webhook to false to avoid that. Without allow_duplicates, a matching contact links to the existing lead. API: POST /api/Lead/CreateOrUpdate.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "first_name": {
      "type": "string"
    },
    "last_name": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "postal_code": {
      "type": "string",
      "description": "Must be inside the company's home zones."
    },
    "lead_id": {
      "description": "Existing lead id to update.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "notes": {
      "description": "One note to attach to the lead.",
      "type": "string"
    },
    "customer_source_id": {
      "description": "From maidcentral_list_customer_sources.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "lead_tag_ids": {
      "description": "Tag ids of category 8 (maidcentral_list_tags).",
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      }
    },
    "send_lead_email": {
      "description": "Send the lead email (vendor default true).",
      "type": "boolean"
    },
    "add_to_campaigns": {
      "description": "Add to MaidCentral campaigns (vendor default true).",
      "type": "boolean"
    },
    "trigger_webhook": {
      "description": "Trigger Keap/Zapier webhooks (vendor default true).",
      "type": "boolean"
    },
    "allow_duplicates": {
      "description": "Create a new lead even when contact info matches (vendor default false).",
      "type": "boolean"
    },
    "utm_source": {
      "type": "string"
    },
    "utm_medium": {
      "type": "string"
    },
    "utm_campaign": {
      "type": "string"
    },
    "utm_term": {
      "type": "string"
    },
    "utm_content": {
      "type": "string"
    }
  },
  "required": [
    "first_name",
    "last_name",
    "email",
    "phone",
    "postal_code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴maidcentral_create_or_update_quote(lead_id, quote_id, scope_group_id, home_address1, home_address2, ...)

WRITE: create a quote for a lead (or update one when quote_id is given) with service address, scopes, frequencies and question answers. Optionally emails the quote 5 minutes later (send_quote_email, default false). API: POST /api/Lead/CreateOrUpdateQuote.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "lead_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Lead id (from maidcentral_create_or_update_lead)."
    },
    "quote_id": {
      "description": "Existing quote id to update.",
      "type": "string",
      "pattern": "^[0-9a-fA-F-]{36}$"
    },
    "scope_group_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "home_address1": {
      "type": "string"
    },
    "home_address2": {
      "type": "string"
    },
    "home_city": {
      "type": "string"
    },
    "home_region": {
      "type": "string",
      "description": "2-letter state or region code."
    },
    "home_postal_code": {
      "type": "string"
    },
    "billing_address1": {
      "description": "Optional billing address (default: the service address).",
      "type": "string"
    },
    "billing_address2": {
      "type": "string"
    },
    "billing_city": {
      "type": "string"
    },
    "billing_region": {
      "type": "string"
    },
    "billing_postal_code": {
      "type": "string"
    },
    "scopes_of_work": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ScopeOfWorkId": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Scope id (from maidcentral_list_scope_groups)."
          },
          "FrequencyId": {
            "type": "string",
            "description": "Frequency id for this scope (from maidcentral_list_scope_groups)."
          },
          "BaseFee": {
            "description": "Optional: override the calculated price for this scope/frequency.",
            "type": "number"
          },
          "RateModifications": {
            "description": "Optional extras/discounts (from maidcentral_list_rate_modifications).",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "RateModificationId": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "Quantity": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991,
                  "description": "Quantity, must not be 0."
                },
                "IsRecurring": {
                  "type": "boolean"
                }
              },
              "required": [
                "RateModificationId",
                "Quantity"
              ]
            }
          }
        },
        "required": [
          "ScopeOfWorkId",
          "FrequencyId"
        ]
      }
    },
    "questions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "QuestionId": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "Answer": {
            "type": "string",
            "description": "Select lists: the AnswerId. Multiple select: comma-separated AnswerIds. Else plain text."
          }
        },
        "required": [
          "QuestionId",
          "Answer"
        ]
      },
      "description": "Answers to the scope questions (use [] if none)."
    },
    "send_quote_email": {
      "description": "Email the quote to the lead after 5 minutes.",
      "type": "boolean"
    },
    "add_to_campaigns": {
      "type": "boolean"
    },
    "trigger_webhook": {
      "type": "boolean"
    }
  },
  "required": [
    "lead_id",
    "scope_group_id",
    "home_address1",
    "home_city",
    "home_region",
    "home_postal_code",
    "scopes_of_work",
    "questions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴maidcentral_book_quote(lead_id, quote_id, scope_group_id, scopes_of_work, billing_terms_id, ...)

WRITE: convert a quote into a customer and schedule the first job on first_job_date. Check dates with maidcentral_list_available_dates first. Booking emails default to the vendor setting: set send_booked_email and send_customer_portal_invite to false to stay silent. API: POST /api/Lead/BookQuote.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "lead_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "quote_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F-]{36}$"
    },
    "scope_group_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "scopes_of_work": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "ScopeOfWorkId": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991,
            "description": "Scope id (from maidcentral_list_scope_groups)."
          },
          "FrequencyId": {
            "type": "string",
            "description": "Frequency id for this scope (from maidcentral_list_scope_groups)."
          },
          "BaseFee": {
            "description": "Optional: override the calculated price for this scope/frequency.",
            "type": "number"
          },
          "RateModifications": {
            "description": "Optional extras/discounts (from maidcentral_list_rate_modifications).",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "RateModificationId": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "Quantity": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991,
                  "description": "Quantity, must not be 0."
                },
                "IsRecurring": {
                  "type": "boolean"
                }
              },
              "required": [
                "RateModificationId",
                "Quantity"
              ]
            }
          },
          "FirstJobDate": {
            "type": "string",
            "description": "First job date, ISO 8601 (defaults to 9:00 AM; add a time to change it)."
          },
          "FirstJobInstructions": {
            "type": "string"
          },
          "FirstJobTagIds": {
            "description": "Tag ids of category 6.",
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          },
          "ServiceSetTagIds": {
            "description": "Tag ids of category 5.",
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          },
          "TeamIds": {
            "description": "Team ids (maidcentral_list_teams).",
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          }
        },
        "required": [
          "ScopeOfWorkId",
          "FrequencyId",
          "FirstJobDate"
        ]
      }
    },
    "billing_terms_id": {
      "description": "From maidcentral_list_billing_terms.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "send_booked_email": {
      "type": "boolean"
    },
    "send_customer_portal_invite": {
      "type": "boolean"
    },
    "add_to_campaigns": {
      "type": "boolean"
    },
    "trigger_webhook": {
      "type": "boolean"
    }
  },
  "required": [
    "lead_id",
    "quote_id",
    "scope_group_id",
    "scopes_of_work"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴maidcentral_create_note(content, entity_type_id, entity_id, entity_contact_info, note_type_id, ...)

WRITE: add a note (or logged email, call, text) to a quote, customer or employee. Give entity_id with entity_type_id, or entity_contact_info (email or phone). API: POST /api/Note/Create.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "Note text."
    },
    "entity_type_id": {
      "description": "Quote = 0, Customer = 1, Employee = 2.",
      "type": "integer",
      "minimum": 0,
      "maximum": 2
    },
    "entity_id": {
      "description": "Id of the entity (needs entity_type_id).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "entity_contact_info": {
      "description": "Email or phone; searched in customers, leads, then employees.",
      "type": "string"
    },
    "note_type_id": {
      "description": "Email = 1, Note = 2 (default), PhoneCall = 3, TextMessage = 4.",
      "type": "integer",
      "minimum": 1,
      "maximum": 4
    },
    "subject": {
      "description": "Required unless the note type is Email.",
      "type": "string"
    },
    "create_ticket": {
      "description": "For communication notes: also create a ticket.",
      "type": "boolean"
    },
    "communication_direction_id": {
      "description": "InternalNote = 0 (default), Incoming = 1, Outgoing = 2.",
      "type": "integer",
      "minimum": 0,
      "maximum": 2
    }
  },
  "required": [
    "content"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡maidcentral_add_utm_data(lead_id, email, phone, utm_source, utm_medium, ...)

WRITE: attach UTM campaign data to a lead or quote. Give lead_id, email or phone. API: POST /api/Lead/Utm.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "lead_id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "email": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "utm_source": {
      "type": "string"
    },
    "utm_medium": {
      "type": "string"
    },
    "utm_campaign": {
      "type": "string"
    },
    "utm_term": {
      "type": "string"
    },
    "utm_content": {
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet20 Tools