Workiz MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Manage Workiz jobs and leads: create, update, assign team members and convert leads to jobs.
19 tools: 11 can delete or cancel things and 8 only read.
Scanned Oct 21, 2026
- Deletes or cancels11Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads8Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http workiz https://workiz.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
19 tools
Deletes or cancels 11Claude Code: deny
workiz_activate_leadWRITE: change a lost lead back to active.No findings
Why it is in this group
- The description's first verb is "write": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change a lost lead back to active. Workiz: POST /lead/activate/{UUID}/.
Annotations the server declares
- title: Reactivate a lost lead
- destructiveHint: true
workiz_assign_jobWRITE: assign a team member (by name) to a job.No findings
Why it is in this group
- The name "workiz_assign_job" says "assign": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: assign a team member (by name) to a job. Reversible with workiz_unassign_job. Workiz: POST /job/assign/.
Annotations the server declares
- title: Assign a team member to a job
- destructiveHint: true
workiz_assign_leadWRITE: assign a team member (by name) to a lead.No findings
Why it is in this group
- The name "workiz_assign_lead" says "assign": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: assign a team member (by name) to a lead. Reversible with workiz_unassign_lead. Workiz: POST /lead/assign/.
Annotations the server declares
- title: Assign a team member to a lead
- destructiveHint: true
workiz_convert_lead_to_jobWRITE (no API undo): convert a lead into a job.No findings
Why it is in this group
- The name "workiz_convert_lead_to_job" says "convert": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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/.
Annotations the server declares
- title: Convert a lead to a job
- destructiveHint: true
workiz_create_jobWRITE: create a new job (schedule, client contact and address, type, source, notes).No findings
Why it is in this group
- The name "workiz_create_job" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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/.
Annotations the server declares
- title: Create a job
- destructiveHint: true
workiz_create_leadWRITE: create a new lead (client contact and address, requested time, job type, source, notes).No findings
Why it is in this group
- The name "workiz_create_lead" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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/.
Annotations the server declares
- title: Create a lead
- destructiveHint: true
workiz_mark_lead_lostWRITE: mark a lead as lost.No findings
Why it is in this group
- The name "workiz_mark_lead_lost" says "mark": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: mark a lead as lost. Reversible with workiz_activate_lead. Workiz: POST /lead/markLost/{UUID}/.
Annotations the server declares
- title: Mark a lead as lost
- destructiveHint: true
workiz_unassign_jobWRITE: remove a team member (by name) from a job.No findings
Why it is in this group
- The name "workiz_unassign_job" says "unassign": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: remove a team member (by name) from a job. Reversible with workiz_assign_job. Workiz: POST /job/unassign/.
Annotations the server declares
- title: Unassign a team member from a job
- destructiveHint: true
workiz_unassign_leadWRITE: remove a team member (by name) from a lead.No findings
Why it is in this group
- The name "workiz_unassign_lead" says "unassign": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: remove a team member (by name) from a lead. Reversible with workiz_assign_lead. Workiz: POST /lead/unassign/.
Annotations the server declares
- title: Unassign a team member from a lead
- destructiveHint: true
workiz_update_jobWRITE: update fields on an existing job — status/sub-status, reschedule (JobDateTime/JobEndDateTime), contact, address, type, source, notes, tags.No findings
Why it is in this group
- The name "workiz_update_job" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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/.
Annotations the server declares
- title: Update a job
- destructiveHint: true
workiz_update_leadWRITE: update fields on an existing lead — status, schedule, contact, address, type, source, notes, tags.No findings
Why it is in this group
- The name "workiz_update_lead" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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/.
Annotations the server declares
- title: Update a lead
- destructiveHint: true
Only reads 8Claude Code: allow
workiz_get_jobFetch one job by UUID: schedule, status, client contact and address, totals and amount due, notes, tags and assigned team.No findings
Why it is in this group
- The name "workiz_get_job" says "get": a word for reading.
Description, as the server wrote it 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}/.
Annotations the server declares
- title: Get one job
- readOnlyHint: true
workiz_get_leadFetch one lead by UUID: schedule, status, client contact and address, source, notes and assigned team.No findings
Why it is in this group
- The name "workiz_get_lead" says "get": a word for reading.
Description, as the server wrote it Fetch one lead by UUID: schedule, status, client contact and address, source, notes and assigned team. Workiz: GET /lead/get/{UUID}/.
Annotations the server declares
- title: Get one lead
- readOnlyHint: true
workiz_get_team_memberFetch one team member by user id: name, role, field-tech flag, email, service areas, skills and active status.No findings
Why it is in this group
- The name "workiz_get_team_member" says "get": a word for reading.
Description, as the server wrote it 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}.
Annotations the server declares
- title: Get one team member
- readOnlyHint: true
workiz_get_user_time_offList one team member's FUTURE time off, by their name.No findings
Why it is in this group
- The name "workiz_get_user_time_off" says "get": a word for reading.
Description, as the server wrote it List one team member's FUTURE time off, by their name. Workiz: GET /TimeOff/get/{USER_NAME}.
Annotations the server declares
- title: Get a team member's time off
- readOnlyHint: true
workiz_list_jobsList jobs, most recently scheduled first (sorted by JobDateTime, descending).No findings
Why it is in this group
- The name "workiz_list_jobs" says "list": a word for reading.
Description, as the server wrote it 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/.
Annotations the server declares
- title: List jobs
- readOnlyHint: true
workiz_list_leadsList leads, most recent first (sorted by LeadDateTime, descending).No findings
Why it is in this group
- The name "workiz_list_leads" says "list": a word for reading.
Description, as the server wrote it 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/.
Annotations the server declares
- title: List leads
- readOnlyHint: true
workiz_list_teamList the account's active team members: id, name, role, whether they are a field tech, email, service areas and skills.No findings
Why it is in this group
- The name "workiz_list_team" says "list": a word for reading.
Description, as the server wrote it 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/.
Annotations the server declares
- title: List team members
- readOnlyHint: true
workiz_list_time_offList FUTURE time off (start, end, userName — 'Entire Business' for company-wide closures).No findings
Why it is in this group
- The name "workiz_list_time_off" says "list": a word for reading.
Description, as the server wrote it 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/.
Annotations the server declares
- title: List upcoming time off
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http workiz https://workiz.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__workiz__workiz_list_jobs",
"mcp__workiz__workiz_get_job",
"mcp__workiz__workiz_list_leads",
"mcp__workiz__workiz_get_lead",
"mcp__workiz__workiz_list_team",
"mcp__workiz__workiz_get_team_member",
"mcp__workiz__workiz_list_time_off",
"mcp__workiz__workiz_get_user_time_off"
],
"ask": [],
"deny": [
"mcp__workiz__workiz_create_job",
"mcp__workiz__workiz_update_job",
"mcp__workiz__workiz_assign_job",
"mcp__workiz__workiz_unassign_job",
"mcp__workiz__workiz_create_lead",
"mcp__workiz__workiz_update_lead",
"mcp__workiz__workiz_assign_lead",
"mcp__workiz__workiz_unassign_lead",
"mcp__workiz__workiz_convert_lead_to_job",
"mcp__workiz__workiz_mark_lead_lost",
"mcp__workiz__workiz_activate_lead"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as workiz. Review it before you use it.