UpKeep MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.17.4Updated Nov 7, 2026

Read UpKeep work orders, assets, parts and meters; create requests and work orders.

The publisher's own server: Ably MCP by usefulapi

Overview

AI-generated overview

Connects an assistant to UpKeep maintenance management to read work orders, assets, parts and meters, and to create requests and work orders.

What you can do
  • Browse and inspect work orders, work requests and preventive maintenance schedules, including checklists, time logs and parts
  • Look up assets, locations, meters and meter readings, and record new readings
  • Check spare parts stock levels, costs and reorder thresholds, and set part quantities
  • Review users, teams, vendors, customers and purchase orders
  • Create and approve work requests, create or update work orders, and post comments on them
  • Check API token status and monthly tool-call usage
When to use it
Useful when you manage maintenance operations in UpKeep and want an assistant to answer questions about overdue or high-priority work orders, asset and inventory status, or to file and approve requests and work orders without switching apps.
Requirements
A remote MCP endpoint added by URL only; the server signs in with OAuth and the login page asks for UpKeep credentials. On first connect you paste an UpKeep organization API token (from Settings, API Tokens). No API key or Authorization header goes in the client config. A paid plan is needed beyond the free monthly call allowance.
Before you install
Write tools change UpKeep data: creating and approving requests, creating and updating work orders, posting messages, adding meter readings and overwriting part quantities. Approving a request converts it into a work order, and completing a work order can trigger account integrations; notifications may reach assignees and approvers. The UpKeep organization API token is a credential. Usage is metered and paid plans are billed through a payment link.

Installation

In SourceWeft

  1. Open UpKeep MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fupkeep/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "upkeep-by-usefulapi": {
      "type": "http",
      "url": "https://upkeep.usefulapi.io/mcp"
    }
  }
}

README

UpKeep MCP by usefulapi

Read UpKeep work orders, assets, parts and meters; create requests and work orders.

Live endpoint: https://upkeep.usefulapi.io/mcp · Homepage: https://usefulapi.io/upkeep

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://upkeep.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http upkeep https://upkeep.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "upkeep": {      "url": "https://upkeep.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your UpKeep credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/upkeep/

On first connect you'll paste an UpKeep organization API token (Settings → API Tokens; it starts with uk_pat_).

Tools

ToolTypeWhat it does
upkeep_get_accountreadCheck API token
upkeep_list_work_ordersreadList work orders
upkeep_get_work_orderreadGet work order
upkeep_list_assetsreadList assets
upkeep_get_assetreadGet asset
upkeep_list_locationsreadList locations
upkeep_get_locationreadGet location
upkeep_list_partsreadList parts (inventory)
upkeep_get_partreadGet part
upkeep_list_metersreadList meters
upkeep_get_meterreadGet meter
upkeep_list_meter_readingsreadList meter readings
upkeep_add_meter_readingwriteAdd meter reading
upkeep_list_requestsreadList work requests
upkeep_get_requestreadGet work request
upkeep_create_requestwriteCreate work request
upkeep_approve_requestwriteApprove work request
upkeep_create_work_orderwriteCreate work order
upkeep_update_work_orderwriteUpdate work order
upkeep_add_work_order_messagewriteAdd work order message
upkeep_update_part_quantitywriteUpdate part quantity
upkeep_list_usersreadList users
upkeep_get_userreadGet user
upkeep_list_teamsreadList teams
upkeep_list_vendorsreadList vendors
upkeep_list_customersreadList customers
upkeep_list_purchase_ordersreadList purchase orders
upkeep_get_purchase_orderreadGet purchase order
upkeep_list_preventive_maintenancereadList preventive maintenance plans
upkeep_usage_statusmetaUsage status (free-tier meter)
upkeep_request_featuremetaRequest a missing feature
upkeep_upgrademetaUpgrade to Pro or Pro+
upkeep_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with upkeep_upgrade (it returns a Stripe Checkout link). Cancel any time with upkeep_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running upkeep_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by UpKeep.

Source: servers/upkeep/README.md at commit 4046075

Tools

29

upkeep_get_account

Check API token

Confirm the UpKeep API token is active: returns the company id, the token's name, when it was created and when it was last used. GET /api/v1/organization-api-tokens/introspect.

Takes no parameters.

upkeep_list_work_orders

List work orders

List work orders (reactive and preventive), newest first, with status, priority, due date, asset, location, assignee, parts, time and cost. Filter by status, completion, priority, category, asset, location, assignee, title or date ranges. GET /work-orders.

Parametersassetlimittitleoffsetstatusarchivedcategoryincludeslocationorder_byprioritydue_after+11 more

upkeep_get_work_order

Get work order

One work order by id with its checklist items, custom fields, time log, parts and files. GET /work-orders/{id}.

Parametersincludeswork_order_idrequired

upkeep_list_assets

List assets

List assets (equipment) with name, model, serial and barcode, location, status, downtime status, warranty and number of open work orders. Filter by name, serial number, barcode, location, status, category or assignee. GET /assets.

Parametersnamelimitoffsetstatusbarcodecategoryincludeslocationorder_bycreated_afterserial_numberupdated_after+4 more

upkeep_get_asset

Get asset

One asset by id with purchase and warranty details, custom fields and (optionally) assigned users, teams, vendors, parts, files and sub-assets. GET /assets/{id}.

Parametersasset_idrequiredincludes

upkeep_list_locations

List locations

List locations (sites, buildings, rooms) with address, barcode, parent location and hierarchy level. GET /locations.

Parametersnamelimitoffsetbarcodeincludesorder_bycreated_afterupdated_aftercreated_beforeupdated_beforehierarchy_levelparent_location

upkeep_get_location

Get location

One location by id. GET /locations/{id}.

Parameterslocation_idrequired

upkeep_list_parts

List parts (inventory)

List spare parts with quantity on hand, minimum quantity, cost, category, location and part number. Compare quantity with minimumQuantity to find parts to reorder. GET /parts.

Parametersnamelimitoffsetcategoryincludeslocationorder_bypart_numbercreated_afterupdated_aftercreated_beforeupdated_before

upkeep_get_part

Get part

One part by id with quantity, cost, location and custom fields. GET /parts/{id}.

Parameterspart_idrequired

upkeep_list_meters

List meters

List meters (usage counters such as hours, mileage, temperature) with units, reading frequency and the asset or location they belong to. GET /meters.

Parametersnameassetlimitoffsetincludeslocationorder_bycreated_afterupdated_aftercreated_beforeupdated_before

upkeep_get_meter

Get meter

One meter by id. GET /meters/{id}.

Parametersmeter_idrequired

upkeep_list_meter_readings

List meter readings

Readings recorded for one meter (value, date, who recorded it), newest first. GET /meters/{id}/readings.

Parameterslimitoffsetmeter_idrequiredorder_byread_afterread_before

upkeep_add_meter_reading

Add meter reading

WRITE: record a new reading on a meter (for example engine hours or mileage). A reading cannot be removed with this server, and a meter notification can create a work order automatically when its condition is met. POST /meters/{id}/readings.

Parametersdatevaluerequiredmeter_idrequired

upkeep_list_requests

List work requests

List work requests submitted by staff or through the request portal (before they become work orders), with status open/approved/rejected. GET /requests.

Parametersteamassetlimitoffsetcategoryincludeslocationorder_bycreated_afterupdated_aftercreated_beforerequest_status+4 more

upkeep_get_request

Get work request

One work request by id with its form fields and, once approved, the linked work order id. GET /requests/{id}.

Parametersrequest_idrequired

upkeep_create_request

Create work request

WRITE: submit a new work request for the maintenance team to approve (it appears in UpKeep's Requests list and may notify the approvers or the assignee). It is not a work order until approved. If the account has a request form configured, pass its field labels in `fields`. POST /requests.

Parametersteamassettitlerequiredfieldscategorydue_datelocationprioritydescriptionassigned_to_user

upkeep_approve_request

Approve work request

WRITE: approve a pending work request, which converts it into a work order (it may notify the assignee). Needs a token whose role may approve requests. Approving a request that is already approved or declined fails with HTTP 409. POST /requests/{id}/approve.

Parametersrequest_idrequired

upkeep_create_work_order

Create work order

WRITE: create a new work order (it may notify the assignee and appears in UpKeep's work order board). Ids for asset, location and assignee come from the list tools. POST /work-orders.

Parametersassettitlerequiredcategorydue_datelocationprioritystart_datedescriptionassigned_to_userestimated_duration_hours

upkeep_update_work_order

Update work order

WRITE: change fields of an existing work order: status (open, onHold, inProgress, complete), title, description, priority, due date or assignee. Only the fields you pass change; completing a work order may trigger the account's integrations (for example Zapier). Archiving and deleting are not offered. PATCH /work-orders/{id}.

Parameterstitlestatusdue_dateprioritydescriptionwork_order_idrequiredassigned_to_user

upkeep_add_work_order_message

Add work order message

WRITE: post a message (comment) on a work order's activity thread; people following the work order may be notified. POST /work-orders/{id}/update-messages.

Parameterstextrequiredwork_order_idrequired

upkeep_update_part_quantity

Update part quantity

WRITE: set the quantity on hand (and optionally the minimum quantity that triggers a low-stock notification) of a part. This overwrites the stored number: read the part first and pass the new total, not the difference. PATCH /parts/{id}.

Parameterspart_idrequiredquantityrequiredminimum_quantity

upkeep_list_users

List users

List UpKeep users (technicians, admins, requesters) with account type, job title, status and last login. Use the ids to assign work orders. GET /users.

Parametersemaillimitoffsetorder_byaccount_typecreated_afterupdated_aftercreated_beforeupdated_before

upkeep_get_user

Get user

One user by id. GET /users/{id}.

Parametersuser_idrequired

upkeep_list_teams

List teams

List teams with name and description. Use the ids to assign work. GET /teams.

Parametersnamelimitoffset

upkeep_list_vendors

List vendors

List vendors (suppliers and contractors) with contact details. GET /vendors.

Parameterslimitoffsetbusiness_name

upkeep_list_customers

List customers

List customers (the parties whose assets or locations you maintain) with contact details. GET /customers.

Parametersnamelimitoffset

upkeep_list_purchase_orders

List purchase orders

List purchase orders with status (awaiting, approved, declined, fulfilled), vendor, dates, total cost and quantities. GET /purchase-orders.

Parameterslimittitleoffsetstatusvendorcategoryincludesorder_bydue_afterdue_beforecreated_afterupdated_after+2 more

upkeep_get_purchase_order

Get purchase order

One purchase order by id with its parts, quantities, costs and shipping details. GET /purchase-orders/{id}.

Parameterspurchase_order_idrequired

upkeep_list_preventive_maintenance

List preventive maintenance plans

List preventive maintenance (PM) templates, the recurring work that generates scheduled work orders, with their schedules. Filter by text, asset, location, assignee, team or priority. Pages are 1-based. GET /pm.

Parameterspageteamassetsearchassigneelocationprioritypage_sizeinclude_schedules

Version history

15
  1. v1.17.4LatestNov 7, 2026
  2. v1.16.3Nov 5, 2026
  3. v1.16.2Nov 5, 2026
  4. v1.16.1Nov 4, 2026
  5. v1.16.0Nov 3, 2026
  6. v1.15.1Nov 3, 2026
  7. v1.14.0Nov 1, 2026
  8. v1.12.0Oct 31, 2026
  9. v1.11.0Oct 31, 2026
  10. v1.10.2Oct 30, 2026
  11. v1.10.0Oct 30, 2026
  12. v1.5.0Oct 26, 2026
  13. v1.2.3Oct 25, 2026
  14. v1.2.0Oct 25, 2026
  15. v1.1.0Oct 24, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations