RepairDesk MCP by usefulapi
Read tickets, customers, stock and invoices; add confirmed internal ticket notes.
Should I use this
Quality & Safety
Findings (3)
- LOWin repairdesk_list_repair_categories
- LOWin repairdesk_get_inventory_options
- LOWin repairdesk_add_internal_ticket_note
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"repairdesk": {
"url": "https://repairdesk.usefulapi.io/mcp"
}
}
}Remote endpoints
https://repairdesk.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (17)
🟢repairdesk_list_customers(page, pagesize, keyword, referredby)
Search customer records by keyword or referral source. Returns one page. GET /customers.
Input Schema
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"pagesize": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"referredby": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_get_customer(customer_id)
Get one customer using its ID from customer or ticket lookup. GET /customers/{customerId}.
Input Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"pattern": "^[1-9]\\d{0,14}$"
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_tickets(page, pagesize, keyword, status, from_date, ...)
Find ticket/order numbers, customer/device context, status and assignments. keyword searches the ticket list. Returns one page (page defaults0). GET /tickets.
Input Schema
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"pagesize": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"from_date": {
"description": "Unix timestamp in seconds, not milliseconds.",
"type": "integer",
"minimum": 0,
"maximum": 9999999999
},
"to_date": {
"description": "Unix timestamp in seconds, not milliseconds.",
"type": "integer",
"minimum": 0,
"maximum": 9999999999
},
"assigned_to": {
"type": "string",
"pattern": "^[1-9]\\d{0,14}$"
},
"created_by": {
"type": "string",
"pattern": "^[1-9]\\d{0,14}$"
},
"default_order": {
"type": "string",
"enum": [
"0",
"1",
"2"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_get_ticket(ticket_id)
Read ticket summary, customer, repair devices, notes, line items and invoice context. GET /tickets/{Ticket-Id}. The vendor checks store ownership, including transfers into this store.
Input Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "string",
"pattern": "^[1-9]\\d{0,14}$"
}
},
"required": [
"ticket_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_invoices(page, pagesize, keyword, status, from_date, ...)
Search invoice numbers and customers; inspect totals, paid status and available balances. One page (page defaults0). GET /invoices.
Input Schema
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"pagesize": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"from_date": {
"description": "Unix timestamp in seconds, not milliseconds.",
"type": "integer",
"minimum": 0,
"maximum": 9999999999
},
"to_date": {
"description": "Unix timestamp in seconds, not milliseconds.",
"type": "integer",
"minimum": 0,
"maximum": 9999999999
},
"payment_method": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_get_invoice(invoice_id)
Read a single invoice; no payment or invoice creation occurs. GET /invoices/{Invoice-Id}.
Input Schema
{
"type": "object",
"properties": {
"invoice_id": {
"type": "string",
"pattern": "^[1-9]\\d{0,14}$"
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_get_invoice_due(invoice_id)
Read outstanding invoice amount and paid flag. GET /invoices/{Invoice-Id}/dueamount.
Input Schema
{
"type": "object",
"properties": {
"invoice_id": {
"type": "string",
"pattern": "^[1-9]\\d{0,14}$"
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_inventory(pagesize, keyword, missing_cost_price)
Look up inventory by ID, name or SKU in keyword. Returns the vendor's items list; this endpoint documents pagesize but no page parameter. GET /inventory.
Input Schema
{
"type": "object",
"properties": {
"pagesize": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"missing_cost_price": {
"type": "string",
"enum": [
"0",
"1"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_devices(brand, device_name)
Read device catalogue by manufacturer/brand or device name. GET /devices.
Input Schema
{
"type": "object",
"properties": {
"brand": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"device_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_parts
Read parts names, SKU, stock and pricing. GET /parts.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_statuses
Find the store's available ticket status names. GET /statuses.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_repair_categories
Read available repair categories. GET /repaircategories.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_networks
Read the device network catalogue. GET /networks.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_get_inventory_options
Read available item conditions and physical storage locations. GET /inventory/additionalinfo.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_employees
Read only staff ID, display name and role for assignment lookup. Access PINs, permissions, private employee data and payroll are omitted. GET /employees.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢repairdesk_list_appointments(page, pagesize, keyword, status, from_date, ...)
Search leads/appointments with customer/device context and assignment. Returns one page. GET /appointment.
Input Schema
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"pagesize": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"keyword": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"status": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"from_date": {
"description": "Unix timestamp in seconds, not milliseconds.",
"type": "integer",
"minimum": 0,
"maximum": 9999999999
},
"to_date": {
"description": "Unix timestamp in seconds, not milliseconds.",
"type": "integer",
"minimum": 0,
"maximum": 9999999999
},
"assigned_to": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"created_by": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"repairType": {
"type": "string",
"enum": [
"0",
"1"
]
},
"serviceType": {
"type": "string",
"enum": [
"1",
"2",
"3",
"4",
"5"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴repairdesk_add_internal_ticket_note(ticket_id, device_id, note, confirm)
Append an internal note (type0) after explicit confirmation. First reads the ticket and verifies its ID and optional repair/device line ID. No status, timer, messaging, payment or delete endpoint is called. POST /ticket/addnote. On an uncertain response, inspect notes before retrying; writes are attempted once.
Input Schema
{
"type": "object",
"properties": {
"ticket_id": {
"type": "string",
"pattern": "^[1-9]\\d{0,14}$"
},
"device_id": {
"type": "string",
"pattern": "^[1-9]\\d{0,14}$"
},
"note": {
"type": "string",
"minLength": 1,
"maxLength": 20000
},
"confirm": {
"default": false,
"description": "Set true only after the user reviews the target ticket and exact note text.",
"type": "boolean"
}
},
"required": [
"ticket_id",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence