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
Befunde (6)
- LOWin maidcentral_list_scope_frequencies
- LOWin maidcentral_list_rate_modifications
- LOWin maidcentral_list_available_dates
- LOWin maidcentral_list_customer_sources
- LOWin maidcentral_create_or_update_lead
- LOWin maidcentral_create_or_update_quote
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
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-httpWas es kann
Tool-Inventar
Tools (20)
🟢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
Nachweis