Sortly MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.39.1Updated Nov 14, 2026

Search inventory items and folders, low-stock alerts, jobs and purchase orders, and update stock.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server for Sortly inventory: search items and folders, check stock and alerts, follow jobs and purchase orders, and update stock.

What you can do
  • Browse and search items and folders, read one item's quantity, price, tags, barcodes and custom fields, and list what changed since a timestamp
  • List stock and date alerts, custom fields and units of measure
  • List jobs and read a single job's status, notes and custom fields
  • List purchase orders, read one with its lines and totals, and check its receive status
  • Create and update items or folders, move stock between folders, and create alerts
  • Create jobs, pull items into a job and return them, and draft purchase orders
When to use it
Useful when you keep inventory in Sortly and want an assistant to answer questions like which items are low on stock, what is in a given folder, or which purchase orders are still awaiting receipt, and to record stock changes, job usage or draft orders without opening Sortly.
Requirements
Remote endpoint at sortly.usefulapi.io/mcp; no local install. Connect with the URL only and sign in through OAuth, supplying your Sortly API secret key from app.sortly.com/public-api when prompted. Keys are stored per user. Purchase order tools need Purchase Orders on your Sortly plan. Free tier allows 50 tool calls per month.
Before you install
Write tools create and change Sortly data: items, folders, stock moves, alerts, jobs and draft purchase orders; confirm before running them. Your Sortly API secret key is given to the hosted service and stored per user. The service meters calls and sells paid plans: upgrade returns a Stripe checkout link, plan changes charge the price difference immediately, and cancellation has no refund for the current period. Feature requests are sent to the provider.

Installation

In SourceWeft

  1. Open Sortly 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%2Fsortly/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": {
    "sortly-by-usefulapi": {
      "type": "http",
      "url": "https://sortly.usefulapi.io/mcp"
    }
  }
}

README

Sortly MCP by usefulapi

Use Sortly from Claude, Cursor, or any MCP client — search items and folders, check stock levels and low-stock alerts, and follow jobs and purchase orders. Hosted, no local install: connect with your own Sortly credentials.

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

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://sortly.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http sortly https://sortly.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": {    "sortly": {      "url": "https://sortly.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 Sortly credentials.

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

On first connect you'll provide your Sortly API secret key (app.sortly.com/public-api). They're validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
sortly_list_itemsreadList items and folders
sortly_get_itemreadGet one item or folder
sortly_search_itemsreadSearch inventory
sortly_list_recently_updated_itemsreadList recently updated items
sortly_list_custom_fieldsreadList custom fields
sortly_list_unitsreadList units of measure
sortly_list_alertsreadList alerts
sortly_list_jobsreadList jobs
sortly_get_jobreadGet one job
sortly_list_purchase_ordersreadList purchase orders
sortly_get_purchase_orderreadGet one purchase order
sortly_get_purchase_order_receive_statusreadGet a purchase order's receive status
sortly_create_itemwriteCreate an item or folder
sortly_update_itemwriteUpdate an item or folder
sortly_move_itemwriteMove stock to another folder
sortly_create_alertwriteCreate an alert
sortly_create_jobwriteCreate a job
sortly_pull_items_into_jobwritePull items into a job
sortly_return_items_from_jobwriteReturn items from a job
sortly_create_purchase_orderwriteDraft a purchase order
sortly_usage_statusmetaUsage status (free-tier meter)
sortly_request_featuremetaRequest a missing feature
sortly_upgrademetaUpgrade to Pro or Pro+
sortly_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)10,000 tool calls / month
Pro+ (per user)$39/mo or $390/yr (2 months free)100,000 tool calls / month

Each paid plan covers this server only. Ask your AI to run sortly_upgrade and choose Pro or Pro+, billed monthly or yearly (it returns a Stripe Checkout link). If you already have Pro, ask to change it to Pro+. The change requires your confirmation, keeps your billing interval and charges the price difference for the rest of the period immediately. Cancel any time with sortly_cancel_subscription: your paid plan continues to the end of the paid period, with no refund for the current period, and asking to resume the same plan with sortly_upgrade before then undoes the cancel. Or write to [email protected].

License

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

Source: servers/sortly/README.md at commit f22f848

Tools

20

sortly_list_items

List items and folders

List items and folders, newest first. By default the root level; pass folder_id for a folder's direct contents, plus include_subfolders for everything nested under it. Paginated via meta.next_page_url / total_pages. Sortly: GET /api/v1/items.

Parameterspageincludeper_pagefolder_idinclude_subfolders

sortly_get_item

Get one item or folder

Fetch a single item or folder by numeric id: quantity, min_quantity, price, tags, sid, barcodes, and optionally custom field values and photos. Sortly: GET /api/v1/items/{item_id}.

Parametersincludeitem_idrequired

sortly_search_items

Search inventory

Search items and folders by name, optionally limited to items or folders and scoped to specific folders. Read-only despite being a POST. Paginated: send the same arguments with the next page number. Sortly: POST /api/v1/items/search.

Parametersnamepagesorttypeincludeper_pagefolder_idsinclude_subfolders

sortly_list_recently_updated_items

List recently updated items

List items and folders changed since a Unix timestamp — the incremental-sync read ('what moved since yesterday?'). Without updated_since it behaves like sortly_list_items. Sortly: GET /api/v1/items/recent.

Parameterspageincludeper_pagefolder_idupdated_sinceinclude_subfolders

sortly_list_custom_fields

List custom fields

List the account's custom fields (id, name, type, applies_to). Call this before writing custom_attribute_values to get the right custom_attribute_id. Sortly: GET /api/v1/custom_fields.

Parameterspageper_page

sortly_list_units

List units of measure

List the units of measure available to the account (unit_name, unit_type, scale) — the values measured_quantity and purchase-order lines expect. Sortly: GET /api/v1/units.

Takes no parameters.

sortly_list_alerts

List alerts

List stock (Quantity) and date (DateReminder) alerts, with is_fired showing which have already triggered — the quick way to find low-stock items. Sortly: GET /api/v1/alerts.

Parameterspageper_page

sortly_list_jobs

List jobs

List jobs (work orders that pull stock out), most recently updated first, filterable by name prefix and status. Paginated via meta.pagination.has_next. Sortly: GET /api/v1/jobs.

Parametersnamepagestatussort_byper_pagesort_direction

sortly_get_job

Get one job

Fetch a single job: status, folder_id (where its pulled items sit), dates, notes, custom field values and the version needed for updates. Sortly: GET /api/v1/jobs/{job_id}.

Parametersjob_idrequired

sortly_list_purchase_orders

List purchase orders

List purchase orders, most recently updated first, filterable by PO number and status. The list leaves out notes, terms, sub_total and line_items — use sortly_get_purchase_order for those. Needs Purchase Orders on the plan (else 402). Sortly: GET /api/v1/purchase_orders.

Parameterspagestatussort_byper_pagesort_directionpurchase_order_number

sortly_get_purchase_order

Get one purchase order

Fetch a single purchase order with its line_items (quantity vs received_quantity), vendor, addresses, charges, totals and version. Sortly: GET /api/v1/purchase_orders/{purchase_order_id}.

Parameterspurchase_order_idrequired

sortly_get_purchase_order_receive_status

Get a purchase order's receive status

Report the most recent receive against a purchase order: pending / completed / failed, with the line ids received, pending and failed (and why). Returns 404 until something has been received. Sortly: GET /api/v1/purchase_orders/{purchase_order_id}/receive/status.

Parameterspurchase_order_idrequired

sortly_create_item

Create an item or folder

Create a trackable item (type item) or a folder (type folder), optionally inside a folder via parent_id, with quantity, price, tags, custom fields, barcodes and a measured quantity. WRITE. Sortly: POST /api/v1/items.

Parametersnamerequiredtagstyperequirednotespricequantitylabel_urlparent_idphoto_idsmin_quantitylabel_url_typelabel_url_extra+3 more

sortly_update_item

Update an item or folder

Change fields on an existing item or folder — e.g. set a new quantity after a stock count, rename it, or relocate a folder via parent_id. Only the fields you pass change; pass null to clear a nullable field. Sending tags or custom_attribute_values replaces them. WRITE. Sortly: PUT /api/v1/items/{item_id} (returns 204).

Parametersnametagsnotespriceitem_idrequiredquantitylabel_urlparent_idphoto_idsmin_quantitylabel_url_typelabel_url_extra+3 more

sortly_move_item

Move stock to another folder

Move some or all of an item's quantity to another folder (items only — relocate a folder with sortly_update_item parent_id). A partial move splits off a new item with the same sid; a full move relocates the item; a matching item at the destination is merged, and the returned id is the destination's. Undo by moving it back. WRITE. Sortly: POST /api/v1/items/{item_id}/move.

Parametersitem_idrequiredquantityrequiredfolder_idleave_zero_quantity

sortly_create_alert

Create an alert

Create a stock alert on an item (type Quantity, e.g. threshold_method quantity_less_than with threshold_value 5, or less_than_or_equal_to_min_quantity), or a DateReminder on a datetime custom field (custom_attribute_id + before/after/same_day + threshold_interval). WRITE. Sortly: POST /api/v1/alerts.

Parameterstyperequireditem_idrequiredthreshold_valuerecipient_groupsthreshold_methodrequiredthreshold_intervalcustom_attribute_id

sortly_create_job

Create a job

Create a job (and its job folder) in not_started status. Name must be unique in the company. Then use sortly_pull_items_into_job to record the stock it uses. WRITE. Sortly: POST /api/v1/jobs.

Parametersnamerequirednotesend_datestart_datesubfoldersexternal_job_linkcustom_field_values

sortly_pull_items_into_job

Pull items into a job

Move quantities of existing items (from any folders) into a job's folder — how usage on a job is recorded. Up to 100 items per call; items are processed independently, so ALWAYS check data.errors (a partial failure still returns 200). Undo with sortly_return_items_from_job. Returns 403 on a completed job. WRITE. Sortly: POST /api/v1/jobs/{job_id}/items.

Parametersitemsrequirednotesjob_idrequired

sortly_return_items_from_job

Return items from a job

Move items off a job's folder back into inventory (destination_folder_id, or All Items if omitted). Up to 100 per call; check data.errors — items are processed one by one. WRITE. Sortly: POST /api/v1/jobs/{job_id}/items/return.

Parametersitemsrequirednotesjob_idrequired

sortly_create_purchase_order

Draft a purchase order

Create a purchase order in draft status (no stock or ordering happens until it is moved on in Sortly). Sortly computes amounts, sub_total and total from the lines; omit purchase_order_number to have one generated. Needs Purchase Orders on the plan (else 402). WRITE. Sortly: POST /api/v1/purchase_orders.

Parametersnotestermsvendorbill_tochargesship_toline_itemscurrency_coderequiredpurchase_order_numberexpected_delivery_date

Version history

25
  1. v1.39.1LatestNov 13, 2026
  2. v1.38.0Nov 12, 2026
  3. v1.37.3Nov 11, 2026
  4. v1.36.5Nov 8, 2026
  5. v1.36.4Nov 7, 2026
  6. v1.35.3Nov 5, 2026
  7. v1.35.2Nov 5, 2026
  8. v1.35.1Nov 4, 2026
  9. v1.35.0Nov 3, 2026
  10. v1.34.1Nov 3, 2026
  11. v1.33.0Nov 1, 2026
  12. v1.31.0Oct 31, 2026
  13. v1.30.0Oct 31, 2026
  14. v1.29.2Oct 30, 2026
  15. v1.29.0Oct 30, 2026
  16. v1.24.0Oct 26, 2026
  17. v1.21.3Oct 25, 2026
  18. v1.21.0Oct 25, 2026
  19. v1.20.0Oct 24, 2026
  20. v1.17.0Oct 23, 2026
  21. v1.16.4Oct 22, 2026
  22. v1.16.3Oct 21, 2026
  23. v1.11.1Oct 9, 2026
  24. v1.10.0Oct 9, 2026
  25. v1.0.0Sep 30, 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