Workiz MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Workiz MCP Serverpull leads from last 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Workiz MCP Server
A remote MCP (Model Context Protocol) server that exposes your Workiz CRM/Field Service data — jobs, leads, team, time off — as tools Claude can call directly. Once deployed and added as a custom connector, you can ask Claude things like:
"Pull all leads from the last 30 days and flag any where the lead source looks miscategorized, then fix the ones you're confident about."
and it will call these tools to read and write your Workiz data.
What this does / doesn't do
✅ Read and write existing Workiz records (jobs, leads) via the same endpoints Workiz's own integrations use.
✅ Create leads, convert leads to jobs, assign/unassign team members, log payments, pull team & time-off data.
❌ Does not let you create new object types or custom modules inside Workiz itself — it only reads/writes fields that already exist on your account (including custom fields, once you know their names).
Related MCP server: MCP Officegest
1. Get your Workiz credentials
In Workiz, open Feature Center and enable the Developer API add-on.
Go to your profile icon > Settings > Integrations > Developer.
Copy the API token.
2. Local setup
cd workiz-mcp-server
npm install
cp .env.example .envEdit .env:
WORKIZ_API_TOKEN=<paste your token>
MCP_SERVER_KEY=<make up a long random string>Run it locally:
npm startYou should see:
Workiz MCP server listening on port 3000
MCP endpoint: http://localhost:3000/mcpTest locally before deploying
Use the official MCP Inspector to sanity-check the tools without needing a public URL yet:
npx @modelcontextprotocol/inspectorPoint it at http://localhost:3000/mcp, set the Authorization header to
Bearer <your MCP_SERVER_KEY>, and try calling workiz_list_jobs or
workiz_list_team to confirm your token works and see real field names
(including any custom fields) for your account.
3. Deploy it somewhere public
Claude connects to custom connectors from Anthropic's cloud, not your laptop, so the server needs a public URL. Pick whichever you're comfortable with — this code is plain Node/Express, so any of these work with no changes:
Render (
render.com) — easiest: "New Web Service" > connect this repo > build commandnpm install, start commandnpm start> add the two env vars in the dashboard.Railway (
railway.app) — similar one-click flow.Fly.io —
fly launch, thenfly secrets set WORKIZ_API_TOKEN=... MCP_SERVER_KEY=....Cloudflare Workers — possible but requires adapting the Express app to Workers' fetch-handler style; use one of the above if you want the code as-is to just work.
Whichever you choose, set WORKIZ_API_TOKEN and MCP_SERVER_KEY as
environment variables/secrets in that platform's dashboard — never commit
.env to source control.
After deploying, confirm https://your-app-url/health returns {"status":"ok"}.
4. Add it to Claude as a custom connector
In Claude (claude.ai, Cowork, or the app), go to Settings/Customize > Connectors. (Team/Enterprise: an Owner does this once under Organization Settings > Connectors, then members connect individually.)
Click + Add custom connector.
Enter your server's MCP URL:
https://your-app-url/mcpUnder Advanced settings, there's no standard field for a raw bearer token in every client version — if you don't see one, the simplest workaround is to temporarily leave
MCP_SERVER_KEYunset for initial testing (fine short-term, not for production), or front the server with an OAuth layer later. If your Claude client does expose a token/header field, put yourMCP_SERVER_KEYvalue there.Click Add, then enable the connector for your conversation via the "+" button > Connectors.
5. Recommended workflow for the "miscategorized data" cleanup
Ask Claude (in Cowork or claude.ai, connector enabled) to call
workiz_list_jobsorworkiz_list_leadsfor a date range.Have it summarize/flag records it thinks are miscategorized, and show you its reasoning before changing anything.
Review the proposed changes.
Approve, and have Claude call
workiz_update_job/workiz_update_leadfor the confirmed corrections.
This keeps a human in the loop rather than letting bulk writes happen unsupervised — Workiz has no "undo" for bulk API updates.
Notes & limitations
Workiz's rate limits aren't fully published; if you get HTTP 429s, back off and retry. Consider adding request throttling in
workizClient.jsif you'll be paging through large datasets.Custom field names vary by Workiz account — call
workiz_get_job/workiz_get_leadon a real record first to see your actual field names before writing update logic that depends on them.This server currently exposes one tool per Workiz endpoint (a "thin" wrapper). If you want higher-level tools later (e.g. a single
workiz_find_miscategorized_leadstool with your team's specific business rules baked in), that logic is best added as an additional tool insrc/tools.jsonce we know the exact rules you want applied.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hoffnerheatingandair/workiz-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server