Zuper's Model Context Protocol (MCP) Server
Zuper offers a Model Context Protocol (MCP) server enabling AI assistants and other applications to access the Zuper platform from beyond the Zuper interface. This server provides a way to interact with your Zuper workspace through various AI platforms and tools that support MCP.
Available Tools
Zuper MCP server offers 290 tools across 28 modules including:
Job Tools
- list_jobs - List and filter jobs in Zuper with advanced filtering capabilities
- get_job - Get details of a specific job by UID
- create_job - Create a single one-off job
- update_job - Update an existing job
- update_job_status - Transition a job forward to a new status
- rollback_job_status - Revert a job to a previous status
- assign_job - Assign or reassign technicians/teams to a job
- reschedule_job - Change when a job is scheduled
- create_revisit_job - Create a follow-up (revisit) job linked to a parent job
- create_child_job - Create a new sub-job under an existing parent job
- set_parent_job - Link an existing job to a parent job
- create_recurring_job_rule - Create a recurring job series not linked to an asset
- convert_sr_to_job - Convert a service request into a job
- list_job_statuses - Get job status definitions for a job category
- list_job_categories - List all job categories with UIDs
- get_job_category - Get details of a specific job category by category UID
- get_assisted_scheduling - Get AI scheduling slots & technician availability
- get_job_notes - Get notes for a specific job by job UID with optional sorting
- add_job_note - Add a note to a job
- update_job_note - Edit the text of an existing job note
- get_service_tasks - List service tasks (checklist items) on a job
- create_service_task - Add service tasks to a job
- log_timelog - Record a clock-in/clock-out event on a job
- get_job_timelogs - Get full timelog history for a job
- get_job_timelog_summary - Get summarised timelog by user and type
- update_job_custom_fields - Set/update custom field values on a job
- update_job_address - Change service or billing address of a job
- get_job_line_items - Get parts/services added to a job
- update_job_line_items - Add or replace parts/services on a job
- send_job_card - Share a job card PDF with a customer via email
- list_job_templates - List job card PDF report templates
- create_job_invoice - Generate an invoice linked to a job
- get_module_filters - Get valid filter fields for the jobs module
- log_job_expense - Record a field expense against a job
- get_unscheduled_jobs - List unscheduled jobs (dispatcher queue)
- check_schedule_conflict - Check whether a technician has a scheduling conflict
- list_recurring_jobs - List recurring job templates
- list_tags - List tags for any/all modules
- list_business_units - List trade types (business units)
Customer / Organization / Property Tools
- list_customers - List or filter customers
- get_customer - Get full customer profile by UID
- create_customer - Create a new customer record
- find_or_create_customer - Find a customer by email/name or create one
- update_customer - Update an existing customer
- activate_customer - Activate or deactivate a customer
- get_customer_summary - Get summary counts for a customer
- update_customer_accounts - Update receivables and credits for a customer
- list_customer_categories - List all customer categories
- create_customer_category - Create a new customer category
- search_customers - Full-text search across customer name/email/phone/company
- update_customer_custom_fields - Set/update custom field values on a customer
- add_customer_attachment - Attach a file to a customer record
- list_properties - List or filter service properties/locations
- get_property - Get full details of a single property
- create_property - Create a new property (service location)
- update_property - Update a property record
- activate_property - Activate or deactivate a property
- get_property_summary - Get summary counts for a property
- list_organizations - List or filter organizations
- get_organization - Get full details of a single organization
- create_organization - Create a new organization
- update_organization - Update an existing organization
- activate_organization - Activate or deactivate an organization
- get_organization_summary - Get summary counts for an organization
- find_or_create_organization - Find an org by name or create one
- link_customer_to_org - Add/remove a customer contact from an organization
- assign_organization - Assign/unassign users to an organization
- list_organization_contacts - List customer contacts for an organization
Invoice Tools
- list_invoices - List and filter invoices in Zuper using advanced filter rules
- get_invoice - Get details of a specific invoice by ID
- create_invoice - Create a standalone invoice
- update_invoice - Update an existing invoice
- update_invoice_status - Transition an invoice to a new status
- send_invoice - Send an invoice to a customer via email
- add_invoice_note - Add a text note to an invoice
- convert_estimate_to_invoice - Convert an estimate into an invoice
- get_invoice_statement - Get invoice statement for a customer/organization
- get_account_receivables - Get accounts receivable aging summary
- list_payment_transactions - List or filter payment transactions
- get_payment_transaction - Get full details of a single payment transaction
- list_payment_modes - List all payment modes
- list_payment_terms - List all payment terms
- list_tax_rates - List all tax rates
- list_tax_groups - List all tax groups
- create_tax - Create a new tax rate
- update_tax - Update an existing tax rate
- create_tax_group - Create a new tax group
- update_tax_group - Replace a tax group's rates
- list_discount_fees - List discount and fee templates
- list_document_templates - List document/PDF templates for sending
- list_email_templates - List pre-built email body templates
- list_packages - List or filter invoice/estimate packages
Estimate Tools
- list_estimates - List and filter estimates in Zuper using advanced filter rules
- get_estimate - Get details of a specific estimate by ID
- create_estimate - Create a new quote/estimate
- update_estimate - Update an existing estimate
- update_estimate_status - Transition an estimate to a new status
- send_estimate - Send an estimate to a customer via email
- list_proposal_templates - List proposal templates
- record_estimate_deposit - Record a deposit collection against an estimate
- recompute_estimate_cpq - Recompute CPQ formulas on an estimate
Service Contract Tools
- list_service_contracts - List or filter service contracts
- get_service_contract - Get full details of a single service contract
- create_service_contract - Create a new service contract
- update_service_contract - Update an existing service contract
- renew_service_contract - Renew (extend) a service contract
- send_contract_to_customer - Email a service contract to the customer
- approve_service_contract - Approve or reset approval status of a contract
- list_contract_templates - List service contract document templates
Service Request Tools
- list_service_requests - List or filter service requests
- get_service_request - Get full details of a single service request
- create_service_request - Create a new service request
- update_service_request - Update a service request
- update_service_request_status - Transition a service request to a new status
- list_request_statuses - List configured service request statuses
- list_request_sources - List configured request sources
Service Task Tools
- create_service_tasks - Create one or more service tasks
- list_service_tasks - List or filter service tasks
- get_service_task - Get full details of a single service task
- get_service_task_count - Get task counts grouped by status
- update_service_task - Update a service task
- update_service_task_status - Update the status of a service task
- assign_service_task - Assign/unassign users from a service task
- create_service_task_master - Create a reusable service task master template
- list_service_task_masters - List all service task masters
- get_service_task_master - Get full details of a single service task master
- update_service_task_master - Update a service task master template
- get_job_category_service_tasks - Get service task config for a job category
- set_job_category_service_tasks - Create/replace service task config for a category
Asset / PPM / Inspection Tools
- list_assets - List or filter assets
- get_asset - Get full details of a single asset
- create_asset - Create a new asset
- update_asset - Update an existing asset
- update_asset_status - Update an asset's status
- get_asset_history - Get history records for an asset
- get_asset_summary - Get 360° summary of transactions linked to an asset
- create_asset_action - Record a lifecycle event on an asset
- assign_asset_users - Assign/unassign users from an asset
- link_asset_to_customer - Assign/reassign an asset to a customer
- list_asset_categories - List all asset categories
- create_asset_category - Create a new asset category
- update_asset_category - Update an asset category
- list_asset_templates - List all asset templates
- get_asset_template - Get full details for a single asset template
- list_inspection_form_definitions - List/filter asset inspection form definitions
- get_inspection_form_definition - Get a single inspection form definition
- update_inspection_form - Update an inspection form
- add_inspection_form_field - Add a question/field to an inspection form
- update_inspection_form_field - Update an individual inspection form field
- reorder_inspection_form_fields - Reorder fields in an inspection form
- submit_inspection_form - Submit a filled inspection form against an asset
- get_inspection_form_submissions - Get history of inspection form submissions
- list_ppm - List/filter Planned Preventive Maintenance schedules
- get_ppm - Get full details for a single PPM plan
- create_ppm - Create a PPM plan for an asset
- update_ppm - Update a PPM plan
Project Tools
- list_projects - List or filter projects
- get_project - Get full details of a single project
- create_project - Create a new project
- update_project - Update an existing project
- add_job_to_project - Link an existing job to a project
- remove_job_from_project - Unlink a job from a project
- list_project_categories - List all project categories
- create_project_category - Create a new project category
Product / Inventory / Pricelist Tools
- list_products - List or filter products
- get_product - Get full detail of a single product
- search_products - Find products by name fragment or SKU (ranked)
- create_product - Create a new product/service/bundle
- update_product - Update an existing product
- list_product_categories - Get all product categories
- create_product_category - Create a new product category
- update_product_category - Update a product category
- list_product_groups - Get all product groups
- get_product_group - Get full details of a single product group
- create_product_group - Create a new product group
- update_product_group - Update a product group
- get_product_transactions - Get inventory movement history for a product
- list_product_locations - List/filter inventory locations (warehouses)
- create_product_location - Create a new inventory location
- update_product_location - Update an existing inventory location
- adjust_inventory - Create an inventory stock transaction
- list_pricelists - List or filter pricelists
- get_pricelist - Get full details of a pricelist with line items
- create_pricelist - Create a new pricelist
- update_pricelist - Update an existing pricelist
Purchase Order Tools
- list_purchase_orders - List or filter purchase orders
- filter_purchase_orders - Advanced filter of POs via filter rules
- get_purchase_order - Get full details of a purchase order
- create_purchase_order - Create an external PO sent to a vendor
- update_purchase_order - Update a purchase order (DRAFT only)
- update_purchase_order_status - Transition a PO to a new status
Material Request Tools
- create_material_request - Create an internal material/parts request for a job
- list_material_requests - List material requests
- get_material_request - Get full details of a single material request
- update_material_request - Update a material request
- update_material_request_status - Transition a material request to a new status
- get_material_request_line_items - Get line items for a material request
Transfer Order Tools
- list_transfer_orders - List or filter transfer orders
- get_transfer_order - Get full details of a single transfer order
- create_transfer_order - Create a stock transfer between locations
- update_transfer_order - Update a transfer order
- update_transfer_order_status - Transition a transfer order's status
- get_transfer_order_card - Get the printable card/summary view
Vendor Tools
- list_vendors - List all vendors (suppliers)
- get_vendor - Get full details of a single vendor
- create_vendor - Create a new vendor/supplier record
- update_vendor - Update vendor details
- activate_vendor - Activate or deactivate a vendor
- list_vendor_catalogs - List vendor catalog entries (product↔vendor pricing)
- create_vendor_catalog_entries - Add products to a vendor's catalog
- update_vendor_catalog_entry - Update a vendor catalog entry
Route Tools
- list_routes - List or filter dispatch routes
- get_route - Get full details of a single route
- create_route - Create a new dispatch route
- update_route - Update route metadata
- lock_route - Lock or unlock a route
- optimize_route - Optimize job stop order for minimum travel
- add_job_to_route - Add a job to a route at a sequence position
- remove_jobs_from_route - Remove jobs from a route
- reorder_route_jobs - Reorder the job sequence in a route
User / Team / Skillset Tools
- list_users - List or filter company users (also maps user → team)
- get_user - Get full user profile including work hours
- update_user - Update a user's details
- find_available_technician - Find technicians with skills available in a window
- find_technicians_by_skill - List technicians who hold a specific skill
- assign_skillset_to_user - Assign a skillset/certification to a user
- list_teams - List or filter teams with member rosters
- get_team - Get team detail including full member list
- add_users_to_team - Add users to a team
- list_skillsets - Get all skillset definitions
- create_skillset - Create a new skillset
- update_skillset - Update an existing skillset
- list_access_roles - Get all RBAC access roles
Commission Tools
- list_commission_structures - List commission structure templates (rules)
- get_commission_structure - Get a single commission structure template
- list_commissions - List commission instances (earned amounts)
- get_commission - Get full details of a single commission record
- create_commission - Create a commission record on a job
- update_commission - Update a commission record
- list_commission_payouts - List commission payout summaries
Credit Note Tools
- list_credit_notes - List or filter customer credit notes
- get_credit_note - Get full details of a single credit note
- create_credit_note - Create a new credit note for a customer
- delete_credit_note - Soft-delete an unapplied credit note
- list_credit_history - List credit balance change events (audit trail)
Timesheet / Attendance / Time-off Tools
- list_timesheets - List company-wide attendance records (punch in/out)
- clock_in - Record punch-in (start of workday)
- clock_out - Record punch-out (end of workday)
- take_break - Record a break start for a user
- resume_work - Resume work after a break
- list_timeoff_requests - List time-off requests
- create_timeoff_request - Create a time-off request for a user
- approve_timeoff - Approve a pending leave/time-off request
- reject_timeoff - Reject a pending leave/time-off request
- list_timeoff_types - List all configured time-off types
- list_user_locations - List GPS location check-ins for a user
- list_shifts - List shift schedules for users
- create_shift - Create a shift schedule entry
- list_timesheet_approvals - List or filter timesheet approval records
- list_overtime_rules - List configured overtime rules
- approve_timesheet - Approve or reject a timesheet approval request
Non-Job Event Tools
- create_non_job_event - Create a non-job calendar event
- list_non_job_event_categories - List non-job event categories
- list_non_job_events - List non-job calendar events within a date range
- get_non_job_event - Get full details of a single non-job event
- update_non_job_event - Update a non-job event
- delete_non_job_event - Delete a non-job event
Business Unit Tools
- list_business_units - List all business units (trade types)
- get_business_unit - Get a specific business unit by UID
- create_business_unit - Create a new business unit/trade type
- update_business_unit - Update a business unit
Checklist Tools
- list_checklists - List checklist items for a job category + status
- list_status_checklists - Master view: all statuses + checklist counts for a category
- get_checklist - Get a specific checklist item by UID
- create_checklist_item - Add a single new field/question to a checklist
- update_checklist_item - Update an existing checklist field
- delete_checklist_item - Delete a single checklist field
- set_checklist - Full-replace all checklist fields for a category + status
- reorder_checklist - Reorder checklist fields for a category + status
Custom Field Tools
- list_custom_field_definitions - List custom field definitions (master schema) for a module
- list_custom_field_groups - List custom field groups for a module
Email Template Tools
- get_email_template - Get a single email/SMS template by UID
Approval Tools
- list_approvals - List approval requests across all modules (read-only)
- get_approval - Get full details of a single approval record
Settings Tools
- get_company_info - Get the company's info
- get_company_config - Get the company's config
- list_company_modules - List enabled Zuper modules for the company
- list_timezones - List supported IANA timezones
- list_currencies - List supported currencies
Connecting to Zuper MCP Server
You can connect to our MCP server natively via Claude Integration, or by using the mcp-remote module in Cursor, Windsurf, and other MCP compatible clients. Zuper MCP server is available at: https://mcp.zuperpro.com/sse
Our MCP Server requires authentication with your Zuper account to use. When connecting, you will be prompted to authorize the application to access your Zuper data. You can also connect by sending authorization headers under x-api-key to the MCP server.
Setup Instructions
Cursor
- Open Cursor Settings -
CTRL/CMD + Shift + J - Select MCP
- Click on Add new global MCP server
- Add the following
{
"mcpServers": {
"zuper": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.zuperpro.com/sse", "--header", "x-api-key: ${ZUPER_API_KEY}", "--header", "x-account-region: ${ZUPER_API_REGION}"],
"env": {
"ZUPER_API_KEY": "...",
"ZUPER_API_REGION": "..."
}
}
}
}Note: If MCP is not working for you, please check the Cursor version you are using.
Some Cursor versions have known issues with MCP server connectivity and tool discovery.
We recommend using Cursor v2.2, which works reliably. Until Cursor resolves this issue, you may need to downgrade.
VS Code
Create or open the .vscode/mcp.json file in your workspace. (CTRL/CMD + p, type mcp.json)
Add the following
{
"mcpServers": {
"zuper": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.zuperpro.com/sse", "--header", "x-api-key: ${ZUPER_API_KEY}", "--header", "x-account-region: ${ZUPER_API_REGION}"],
"env": {
"ZUPER_API_KEY": "...",
"ZUPER_API_REGION": "..."
}
}
}
}Windsurf
- Open Windsurf Settings -
CTRL/CMD + Shift + J - Go to Cascade -> MCP servers
- Click on Add Server -> Add custom server
- Add the following,
{
"mcpServers": {
"zuper": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.zuperpro.com/sse", "--header", "x-api-key: ${ZUPER_API_KEY}", "--header", "x-account-region: ${ZUPER_API_REGION}"]
},
"env": {
"ZUPER_API_KEY": "...",
"ZUPER_API_REGION": "..."
}
}
}ChatGPT Agent
-
Step 1: Create a Workflow
Visit OpenAI Agent Builder and create a new workflow.
-
Configure the “My Agent” Node
Select the "My agent" node and configure it to connect with the Zuper MCP Server.
(Refer to pictures below)


-
Step 3: Enter Connection Details
You’ll be prompted to provide the following information (Refer below picture):

URL: https://mcp.zuperpro.com/sse
Label: Zuper_MCP
Description: Zuper MCP Server
Authentication: Custom HeadersUnder Custom Headers, add the following key-value pairs:
| Header Name | Value Description |
|---|---|
x-api-key | <YOUR API KEY> |
x-account-region | <Your account region> |
Available Regions:
us-west-1c, us-east-1, ap-south-1, ap-southeast-2, eu-central-1
To determine which region applies to your account, please refer to the documentation below:
https://developers.zuper.co/docs/getting-started#what-is-my-base-api-urlThe API response includes a field named dc_name, which represents your data center region (for example, us-west-1c).
Use this value when setting up MCP.
-
Step 4: Complete Connection
Once configured, your agent will successfully connect to Zuper MCP.
Troubleshooting
- If authentication fails, ensure you are using the correct header names — x-api-key and x-account-region
- If authentication fails, ensure your API key is valid & API region is set right
- Ensure your MCP client supports SSE-based servers (not Streamable HTTP)
- Check that your client can handle header based authentication flows
- As of now Zuper MCP is not supported in Claude.ai
