Workiz Server
FreeNot checkedProvides tools to read and write Workiz CRM/Field Service data (jobs, leads, team, time off) enabling Claude to manage records via natural language.
About
Provides tools to read and write Workiz CRM/Field Service data (jobs, leads, team, time off) enabling Claude to manage records via natural language.
README
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).
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 .env
Edit .env:
WORKIZ_API_TOKEN=<paste your token>
MCP_SERVER_KEY=<make up a long random string>
Run it locally:
npm start
You should see:
Workiz MCP server listening on port 3000
MCP endpoint: http://localhost:3000/mcp
Test locally before deploying
Use the official MCP Inspector to sanity-check the tools without needing a public URL yet:
npx @modelcontextprotocol/inspector
Point 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/mcp - Under 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.
Installing Workiz Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/hoffnerheatingandair/workiz-mcp-serverFAQ
Is Workiz Server MCP free?
Yes, Workiz Server MCP is free — one-click install via Unyly at no cost.
Does Workiz Server need an API key?
No, Workiz Server runs without API keys or environment variables.
Is Workiz Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Workiz Server in Claude Desktop, Claude Code or Cursor?
Open Workiz Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Workiz Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
