ServiceMonster MCP by usefulapi
Read ServiceMonster customers, jobs, orders and schedules, and add customer notes.
Should I use this
Quality & Safety
Findings (12)
- LOWin servicemonster_list_serviceitems
- LOWin servicemonster_list_account_orders
- LOWin servicemonster_list_account_sites
- LOWin servicemonster_list_account_notes
- LOWin servicemonster_list_account_tasks
- LOWin servicemonster_list_order_lineitems
- LOWin servicemonster_list_order_notes
- LOWin servicemonster_list_order_tasks
- LOWin servicemonster_list_job_timelogs
- LOWin servicemonster_list_site_noteactivities
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": {
"servicemonster": {
"url": "https://servicemonster.usefulapi.io/mcp"
}
}
}Remote endpoints
https://servicemonster.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (29)
🟢servicemonster_list_accounts(limit, pageIndex, fields, wField, wValue, ...)
Customer accounts with names, contact details and account status. GET /v1/accounts; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_jobs(limit, pageIndex, fields, wField, wValue, ...)
Jobs with account/order/route IDs, estimated times and status. GET /v1/jobs; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_orders(limit, pageIndex, fields, wField, wValue, ...)
Orders including estimates/invoices and available totals and balance information. GET /v1/orders; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_sites(limit, pageIndex, fields, wField, wValue, ...)
Customer service locations and their addresses. GET /v1/sites; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_notes(limit, pageIndex, fields, wField, wValue, ...)
Notes attached to accounts, orders and sites. GET /v1/notes; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_tasks(limit, pageIndex, fields, wField, wValue, ...)
Tasks; use returned fields to inspect assignments and follow-ups. GET /v1/tasks; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_routes(limit, pageIndex, fields, wField, wValue, ...)
Service routes; their IDs can filter the scheduling view. GET /v1/routes; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_employees(limit, pageIndex, fields, wField, wValue, ...)
Team members to resolve scheduling employee IDs. GET /v1/employees; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_serviceitems(limit, pageIndex, fields, wField, wValue, ...)
The company's service-item catalogue. GET /v1/serviceitems; returns one page, not all matching records.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_get_account(id)
Read the selected record. GET /v1/accounts/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_get_job(id)
Read the selected record. GET /v1/jobs/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_get_order(id)
Read the selected record. GET /v1/orders/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_get_site(id)
Read the selected record. GET /v1/sites/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_get_note(id)
Read the selected record. GET /v1/notes/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_get_route(id)
Read the selected record. GET /v1/routes/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_account_orders(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/accounts/{id}/orders.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_account_sites(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/accounts/{id}/sites.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_account_notes(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/accounts/{id}/notes.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_account_tasks(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/accounts/{id}/tasks.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_order_jobs(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/orders/{id}/jobs.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_order_lineitems(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/orders/{id}/lineitems.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_order_notes(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/orders/{id}/notes.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_order_tasks(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/orders/{id}/tasks.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_job_timelogs(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/jobs/{id}/timelogs.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_site_noteactivities(id, limit, pageIndex, fields, wField, ...)
Read one page of related records. GET /v1/sites/{id}/noteactivities.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"limit": {
"description": "Records per page (default25, maximum100 here).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"pageIndex": {
"description": "Zero-based page index (default0); advance it to retrieve more records.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"fields": {
"description": "Optional comma-separated field names to return.",
"type": "string",
"minLength": 1,
"maxLength": 1000,
"pattern": "^[A-Za-z_][A-Za-z0-9_,]*$"
},
"wField": {
"description": "One documented field to filter, e.g. accountName or balanceDue. Requires wValue.",
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
},
"wValue": {
"description": "Filter value; provide together with wField.",
"type": "string",
"maxLength": 1000
},
"wOperator": {
"description": "Comparison; omit for equality. 'like' matches a substring.",
"type": "string",
"enum": [
"gt",
"lt",
"like"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_get_account_profile(id)
Read the account's service/order history statistics and available balance information. GET /v1/accounts/{id}/profile.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_scheduling(startDate, endDate, routeID, getJobColor)
GET /v1/scheduling. Defaults to today through7days ahead at the vendor. Use startDate/endDate for a bounded period; dates follow the company's scheduling context. Flattened event view, optionally one route.
Input Schema
{
"type": "object",
"properties": {
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
},
"routeID": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"getJobColor": {
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicemonster_list_scheduleitems(startDate, endDate)
GET /v1/scheduleitems. Defaults to today through7days ahead at the vendor. Use startDate/endDate for a bounded period; dates follow the company's scheduling context. Returns each event and its associated job/activity/reminder/event details.
Input Schema
{
"type": "object",
"properties": {
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?(?:Z|[+-]\\d{2}:\\d{2})?)?$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴servicemonster_create_note(subject, note, accountID, orderID, siteID)
Create a note immediately (POST /v1/notes); no preview or separate confirmation is enforced. Requires an API User permitted to create notes; Read Only cannot write. Specify accountID, orderID or siteID; orderID and siteID cannot be combined. Ask the user to review the exact record and text before calling. No scheduling or messaging is performed.
Input Schema
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"note": {
"type": "string",
"maxLength": 20000
},
"accountID": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"orderID": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
},
"siteID": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "ServiceMonster record GUID, obtained from a preceding read."
}
},
"required": [
"subject"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence