usefulapi

Workiz MCP server. Manage Workiz jobs and leads: create, update, assign team members and convert leads to jobs.

Claude

  1. Open Settings → Connectors → Add custom connector
  2. Paste this URL:
    https://workiz.usefulapi.io/mcp
  3. Authenticate with Workiz when prompted

Cursor · VS Code · Windsurf · Cline

Add to your MCP config, then reload & authorize:

{
  "mcpServers": {
    "workiz": {
      "url": "https://workiz.usefulapi.io/mcp"
    }
  }
}
live21 toolsFree 100 tool calls / monthPro $9/mo · $90/yr

Tools 21

ToolTypeWhat it does
workiz_list_jobsread
List jobs
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/.
workiz_get_jobread
Get one job
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}/.
workiz_list_leadsread
List leads
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/.
workiz_get_leadread
Get one lead
Fetch one lead by UUID: schedule, status, client contact and address, source, notes and assigned team. Workiz: GET /lead/get/{UUID}/.
workiz_list_teamread
List team members
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/.
workiz_get_team_memberread
Get one team member
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}.
workiz_list_time_offread
List upcoming time off
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/.
workiz_get_user_time_offread
Get a team member's time off
List one team member's FUTURE time off, by their name. Workiz: GET /TimeOff/get/{USER_NAME}.
workiz_create_jobwrite
Create a job
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/.
workiz_update_jobwrite
Update a job
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/.
workiz_assign_jobwrite
Assign a team member to a job
WRITE: assign a team member (by name) to a job. Reversible with workiz_unassign_job. Workiz: POST /job/assign/.
workiz_unassign_jobwrite
Unassign a team member from a job
WRITE: remove a team member (by name) from a job. Reversible with workiz_assign_job. Workiz: POST /job/unassign/.
workiz_create_leadwrite
Create a lead
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/.
workiz_update_leadwrite
Update a lead
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/.
workiz_assign_leadwrite
Assign a team member to a lead
WRITE: assign a team member (by name) to a lead. Reversible with workiz_unassign_lead. Workiz: POST /lead/assign/.
workiz_unassign_leadwrite
Unassign a team member from a lead
WRITE: remove a team member (by name) from a lead. Reversible with workiz_assign_lead. Workiz: POST /lead/unassign/.
workiz_convert_lead_to_jobwrite
Convert a lead to a job
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/.
workiz_mark_lead_lostwrite
Mark a lead as lost
WRITE: mark a lead as lost. Reversible with workiz_activate_lead. Workiz: POST /lead/markLost/{UUID}/.
workiz_activate_leadwrite
Reactivate a lost lead
WRITE: change a lost lead back to active. Workiz: POST /lead/activate/{UUID}/.
workiz_usage_statusmeta
Usage status (free-tier meter)
Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached. Read-only; does not count against the meter.
workiz_upgrademeta
Upgrade to Pro (unlimited)
Subscribe to the Pro plan for UNLIMITED Workiz tool calls (the free tier caps monthly usage). Choose monthly ($9/month) or yearly ($90/year — 2 months free) billing. Returns a Stripe Checkout link to open in your browser; after payment your account upgrades automatically. Read-only; does not count against the meter.

Pricing

PlanPriceLimit
Free$0100 tool calls / month
Proper user$9/mo · $90/yrUnlimited

This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.