workiz
Manage Workiz jobs and leads: create, update, assign team members and convert leads to jobs.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"workiz": {
"url": "https://workiz.usefulapi.io/mcp"
}
}
}远程端点
https://workiz.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(19)
🟢workiz_list_jobs(start_date, offset, records, only_open, status)
List jobs, most recently scheduled first (sorted by JobDateTime, descending). Filter by start date, open-only, and status; page with offset/records (max 100). Without start_date Workiz returns the last 14 days. Workiz: GET /job/all/.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"description": "Return records from this date (yyyy-MM-dd) until today. For jobs, Workiz defaults to the last 14 days when omitted.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"offset": {
"description": "Record offset for paging (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"records": {
"description": "Number of records to return, 1-100 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"only_open": {
"description": "Only open records, excluding Done and Canceled statuses (Workiz default: true).",
"type": "boolean"
},
"status": {
"description": "Only these statuses, e.g. [\"Submitted\", \"In progress\"].",
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢workiz_get_job(uuid)
Fetch one job by UUID: schedule, status, client contact and address, totals and amount due, notes, tags and assigned team. Workiz: GET /job/get/{UUID}/.
输入模式
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"minLength": 1,
"description": "The job's UUID (e.g. XYZ56X)."
}
},
"required": [
"uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢workiz_list_leads(start_date, offset, records, only_open, status)
List leads, most recent first (sorted by LeadDateTime, descending). Filter by start date, open-only, and status; page with offset/records (max 100). Workiz: GET /lead/all/.
输入模式
{
"type": "object",
"properties": {
"start_date": {
"description": "Return records from this date (yyyy-MM-dd) until today. For jobs, Workiz defaults to the last 14 days when omitted.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"offset": {
"description": "Record offset for paging (default 0).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"records": {
"description": "Number of records to return, 1-100 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"only_open": {
"description": "Only open records, excluding Done and Canceled statuses (Workiz default: true).",
"type": "boolean"
},
"status": {
"description": "Only these statuses, e.g. [\"Submitted\", \"In progress\"].",
"type": "array",
"items": {
"type": "string"
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢workiz_get_lead(uuid)
Fetch one lead by UUID: schedule, status, client contact and address, source, notes and assigned team. Workiz: GET /lead/get/{UUID}/.
输入模式
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"minLength": 1,
"description": "The lead's UUID (e.g. XYZ56X)."
}
},
"required": [
"uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢workiz_list_team
List the account's active team members: id, name, role, whether they are a field tech, email, service areas and skills. Use the name to assign people to jobs or leads. Workiz: GET /team/all/.
输入模式
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢workiz_get_team_member(user_id)
Fetch one team member by user id: name, role, field-tech flag, email, service areas, skills and active status. Workiz: GET /team/get/{USER_ID}.
输入模式
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"minLength": 1,
"description": "The user's id, from workiz_list_team."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢workiz_list_time_off(all)
List FUTURE time off (start, end, userName — 'Entire Business' for company-wide closures). Set all=true to include every user and company time off. Useful before scheduling. Workiz: GET /TimeOff/get/.
输入模式
{
"type": "object",
"properties": {
"all": {
"description": "Include all users' and company time off (Workiz default: false).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢workiz_get_user_time_off(user_name)
List one team member's FUTURE time off, by their name. Workiz: GET /TimeOff/get/{USER_NAME}.
输入模式
{
"type": "object",
"properties": {
"user_name": {
"type": "string",
"minLength": 1,
"description": "The team member's name as Workiz shows it, e.g. Joe Acme."
}
},
"required": [
"user_name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_create_job(JobDateTime, JobEndDateTime, ClientId, FirstName, LastName, ...)
WRITE: create a new job (schedule, client contact and address, type, source, notes). Returns the new job's UUID, ClientId and app link. Workiz: POST /job/create/.
输入模式
{
"type": "object",
"properties": {
"JobDateTime": {
"description": "Scheduled start. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
},
"JobEndDateTime": {
"description": "Scheduled end. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
},
"ClientId": {
"description": "Existing Workiz client id to attach this to.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"FirstName": {
"description": "Client first name.",
"type": "string"
},
"LastName": {
"description": "Client last name.",
"type": "string"
},
"Company": {
"description": "Client company name.",
"type": "string"
},
"Phone": {
"description": "Primary phone, digits only, e.g. 6195555555.",
"type": "string"
},
"PhoneExt": {
"description": "Primary phone extension.",
"type": "string"
},
"SecondPhone": {
"description": "Secondary phone.",
"type": "string"
},
"SecondPhoneExt": {
"description": "Secondary phone extension.",
"type": "string"
},
"Email": {
"description": "Client email.",
"type": "string"
},
"Address": {
"description": "Street address, e.g. 123 W Main Street.",
"type": "string"
},
"Unit": {
"description": "Unit / apartment.",
"type": "string"
},
"City": {
"description": "City.",
"type": "string"
},
"State": {
"description": "State, e.g. CA.",
"type": "string"
},
"PostalCode": {
"description": "Postal / ZIP code.",
"type": "string"
},
"Country": {
"description": "Country code, e.g. US.",
"type": "string"
},
"JobType": {
"description": "Job type, e.g. Repair.",
"type": "string"
},
"JobSource": {
"description": "Lead/job source, e.g. Google.",
"type": "string"
},
"Timezone": {
"description": "Timezone, e.g. US/Pacific.",
"type": "string"
},
"ServiceArea": {
"description": "Service area, e.g. metro1.",
"type": "string"
},
"CreatedBy": {
"description": "Name recorded as the creator.",
"type": "string"
},
"ReferralCompany": {
"description": "Referral company, e.g. Thumbtack.",
"type": "string"
},
"JobNotes": {
"description": "Internal job notes.",
"type": "string"
},
"Created": {
"description": "Creation timestamp to record. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_update_job(UUID, Status, SubStatus, JobDateTime, JobEndDateTime, ...)
WRITE: update fields on an existing job — status/sub-status, reschedule (JobDateTime/JobEndDateTime), contact, address, type, source, notes, tags. Only the fields you pass are sent. Workiz: POST /job/update/.
输入模式
{
"type": "object",
"properties": {
"UUID": {
"type": "string",
"minLength": 1,
"description": "The job's UUID (e.g. XYZ56X)."
},
"Status": {
"description": "New job status, e.g. \"In progress\".",
"type": "string"
},
"SubStatus": {
"description": "New job sub-status.",
"type": "string"
},
"JobDateTime": {
"description": "New scheduled start. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
},
"JobEndDateTime": {
"description": "New scheduled end. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
},
"ClientId": {
"description": "Existing Workiz client id to attach this to.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"FirstName": {
"description": "Client first name.",
"type": "string"
},
"LastName": {
"description": "Client last name.",
"type": "string"
},
"Company": {
"description": "Client company name.",
"type": "string"
},
"Phone": {
"description": "Primary phone, digits only, e.g. 6195555555.",
"type": "string"
},
"PhoneExt": {
"description": "Primary phone extension.",
"type": "string"
},
"SecondPhone": {
"description": "Secondary phone.",
"type": "string"
},
"SecondPhoneExt": {
"description": "Secondary phone extension.",
"type": "string"
},
"Email": {
"description": "Client email.",
"type": "string"
},
"Address": {
"description": "Street address, e.g. 123 W Main Street.",
"type": "string"
},
"Unit": {
"description": "Unit / apartment.",
"type": "string"
},
"City": {
"description": "City.",
"type": "string"
},
"State": {
"description": "State, e.g. CA.",
"type": "string"
},
"PostalCode": {
"description": "Postal / ZIP code.",
"type": "string"
},
"Country": {
"description": "Country code, e.g. US.",
"type": "string"
},
"JobType": {
"description": "Job type, e.g. Repair.",
"type": "string"
},
"JobSource": {
"description": "Lead/job source, e.g. Google.",
"type": "string"
},
"Timezone": {
"description": "Timezone, e.g. US/Pacific.",
"type": "string"
},
"ServiceArea": {
"description": "Service area, e.g. metro1.",
"type": "string"
},
"CreatedBy": {
"description": "Name recorded as the creator.",
"type": "string"
},
"JobNotes": {
"description": "Internal job notes.",
"type": "string"
},
"Tags": {
"description": "Job tags, e.g. [\"estimate\", \"callback\"].",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"UUID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_assign_job(UUID, User)
WRITE: assign a team member (by name) to a job. Reversible with workiz_unassign_job. Workiz: POST /job/assign/.
输入模式
{
"type": "object",
"properties": {
"UUID": {
"type": "string",
"minLength": 1,
"description": "The job's UUID (e.g. XYZ56X)."
},
"User": {
"type": "string",
"minLength": 1,
"description": "The team member's NAME exactly as Workiz shows it (e.g. Alex Wilson) — see workiz_list_team."
}
},
"required": [
"UUID",
"User"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_unassign_job(UUID, User)
WRITE: remove a team member (by name) from a job. Reversible with workiz_assign_job. Workiz: POST /job/unassign/.
输入模式
{
"type": "object",
"properties": {
"UUID": {
"type": "string",
"minLength": 1,
"description": "The job's UUID (e.g. XYZ56X)."
},
"User": {
"type": "string",
"minLength": 1,
"description": "The team member's NAME exactly as Workiz shows it (e.g. Alex Wilson) — see workiz_list_team."
}
},
"required": [
"UUID",
"User"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_create_lead(LeadDateTime, LeadEndDateTime, ClientId, FirstName, LastName, ...)
WRITE: create a new lead (client contact and address, requested time, job type, source, notes). Returns the new lead's UUID, ClientId and app link. Workiz: POST /lead/create/.
输入模式
{
"type": "object",
"properties": {
"LeadDateTime": {
"description": "Scheduled start of the lead appointment. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
},
"LeadEndDateTime": {
"description": "Scheduled end of the lead appointment. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
},
"ClientId": {
"description": "Existing Workiz client id to attach this to.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"FirstName": {
"description": "Client first name.",
"type": "string"
},
"LastName": {
"description": "Client last name.",
"type": "string"
},
"Company": {
"description": "Client company name.",
"type": "string"
},
"Phone": {
"description": "Primary phone, digits only, e.g. 6195555555.",
"type": "string"
},
"PhoneExt": {
"description": "Primary phone extension.",
"type": "string"
},
"SecondPhone": {
"description": "Secondary phone.",
"type": "string"
},
"SecondPhoneExt": {
"description": "Secondary phone extension.",
"type": "string"
},
"Email": {
"description": "Client email.",
"type": "string"
},
"Address": {
"description": "Street address, e.g. 123 W Main Street.",
"type": "string"
},
"Unit": {
"description": "Unit / apartment.",
"type": "string"
},
"City": {
"description": "City.",
"type": "string"
},
"State": {
"description": "State, e.g. CA.",
"type": "string"
},
"PostalCode": {
"description": "Postal / ZIP code.",
"type": "string"
},
"Country": {
"description": "Country code, e.g. US.",
"type": "string"
},
"JobType": {
"description": "Job type, e.g. Repair.",
"type": "string"
},
"JobSource": {
"description": "Lead/job source, e.g. Google.",
"type": "string"
},
"Timezone": {
"description": "Timezone, e.g. US/Pacific.",
"type": "string"
},
"ServiceArea": {
"description": "Service area, e.g. metro1.",
"type": "string"
},
"CreatedBy": {
"description": "Name recorded as the creator.",
"type": "string"
},
"ReferralCompany": {
"description": "Referral company, e.g. Thumbtack.",
"type": "string"
},
"LeadNotes": {
"description": "Internal lead notes.",
"type": "string"
},
"Created": {
"description": "Creation timestamp to record. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_update_lead(UUID, Status, LeadDateTime, LeadEndDateTime, ClientId, ...)
WRITE: update fields on an existing lead — status, schedule, contact, address, type, source, notes, tags. Only the fields you pass are sent. Workiz: POST /lead/update/.
输入模式
{
"type": "object",
"properties": {
"UUID": {
"type": "string",
"minLength": 1,
"description": "The lead's UUID (e.g. XYZ56X)."
},
"Status": {
"description": "New lead status, e.g. \"In progress\".",
"type": "string"
},
"LeadDateTime": {
"description": "New scheduled start. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
},
"LeadEndDateTime": {
"description": "New scheduled end. Date-time string, e.g. 2026-10-01T09:00:00.000Z.",
"type": "string"
},
"ClientId": {
"description": "Existing Workiz client id to attach this to.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"FirstName": {
"description": "Client first name.",
"type": "string"
},
"LastName": {
"description": "Client last name.",
"type": "string"
},
"Company": {
"description": "Client company name.",
"type": "string"
},
"Phone": {
"description": "Primary phone, digits only, e.g. 6195555555.",
"type": "string"
},
"PhoneExt": {
"description": "Primary phone extension.",
"type": "string"
},
"SecondPhone": {
"description": "Secondary phone.",
"type": "string"
},
"SecondPhoneExt": {
"description": "Secondary phone extension.",
"type": "string"
},
"Email": {
"description": "Client email.",
"type": "string"
},
"Address": {
"description": "Street address, e.g. 123 W Main Street.",
"type": "string"
},
"Unit": {
"description": "Unit / apartment.",
"type": "string"
},
"City": {
"description": "City.",
"type": "string"
},
"State": {
"description": "State, e.g. CA.",
"type": "string"
},
"PostalCode": {
"description": "Postal / ZIP code.",
"type": "string"
},
"Country": {
"description": "Country code, e.g. US.",
"type": "string"
},
"JobType": {
"description": "Job type, e.g. Repair.",
"type": "string"
},
"JobSource": {
"description": "Lead/job source, e.g. Google.",
"type": "string"
},
"Timezone": {
"description": "Timezone, e.g. US/Pacific.",
"type": "string"
},
"ServiceArea": {
"description": "Service area, e.g. metro1.",
"type": "string"
},
"CreatedBy": {
"description": "Name recorded as the creator.",
"type": "string"
},
"LeadNotes": {
"description": "Internal lead notes.",
"type": "string"
},
"Tags": {
"description": "Lead tags, e.g. [\"estimate\", \"callback\"].",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"UUID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_assign_lead(UUID, User)
WRITE: assign a team member (by name) to a lead. Reversible with workiz_unassign_lead. Workiz: POST /lead/assign/.
输入模式
{
"type": "object",
"properties": {
"UUID": {
"type": "string",
"minLength": 1,
"description": "The lead's UUID (e.g. XYZ56X)."
},
"User": {
"type": "string",
"minLength": 1,
"description": "The team member's NAME exactly as Workiz shows it (e.g. Alex Wilson) — see workiz_list_team."
}
},
"required": [
"UUID",
"User"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_unassign_lead(UUID, User)
WRITE: remove a team member (by name) from a lead. Reversible with workiz_assign_lead. Workiz: POST /lead/unassign/.
输入模式
{
"type": "object",
"properties": {
"UUID": {
"type": "string",
"minLength": 1,
"description": "The lead's UUID (e.g. XYZ56X)."
},
"User": {
"type": "string",
"minLength": 1,
"description": "The team member's NAME exactly as Workiz shows it (e.g. Alex Wilson) — see workiz_list_team."
}
},
"required": [
"UUID",
"User"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_convert_lead_to_job(UUID)
WRITE (no API undo): convert a lead into a job. Creates a new job from the lead and returns its UUID and link; the API cannot reverse the conversion. Workiz: POST /lead/convert/.
输入模式
{
"type": "object",
"properties": {
"UUID": {
"type": "string",
"minLength": 1,
"description": "The lead's UUID (e.g. XYZ56X)."
}
},
"required": [
"UUID"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_mark_lead_lost(uuid)
WRITE: mark a lead as lost. Reversible with workiz_activate_lead. Workiz: POST /lead/markLost/{UUID}/.
输入模式
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"minLength": 1,
"description": "The lead's UUID (e.g. XYZ56X)."
}
},
"required": [
"uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴workiz_activate_lead(uuid)
WRITE: change a lost lead back to active. Workiz: POST /lead/activate/{UUID}/.
输入模式
{
"type": "object",
"properties": {
"uuid": {
"type": "string",
"minLength": 1,
"description": "The lead's UUID (e.g. XYZ56X)."
}
},
"required": [
"uuid"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社区
证据