Product APIs on app.syspos.ae, as MCP tools
MCP protocol via Server-Sent Events.
REST API — call any tool with a simple JSON POST.
List all tools with full parameter schemas (JSON).
Machine-readable docs for AI agents (JSON).
Human-readable API documentation page.
Server health check.
curl -X POST https://pos-mcp.syspos.ae/api/call \
-H "Authorization: Bearer syspos_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"tool": "list_products"
}'
Settings → Connectors → Add custom connector
Name: SysPOS Product Tools
URL: https://pos-mcp.syspos.ae/mcp
(leave OAuth Client ID / Secret blank)
→ Add → Connect → paste your syspos_... key → Authorize
| # | Tool | Description |
|---|---|---|
| 1 | list_products_web | Calls GET /api/products/webProducts on https://app |
| 2 | list_products | Calls GET /api/products on https://app |
| 3 | list_products_pos | Calls GET /api/v2/products on https://app |
| 4 | get_product | Calls GET /api/products/:id on https://app |
| 5 | search_products_for_assign | Calls GET /api/products/search-assign on https://app |
| 6 | get_products_from_ids | Calls POST /api/products/products-from-ids on https://app |
| 7 | create_product | Calls POST /api/products on https://app |
| 8 | update_product | Calls PUT /api/products/:id on https://app |
| 9 | delete_product | Soft delete: SET is_deleted = 1 Calls DELETE /api/products/:id on https://app |
| 10 | archive_product | Calls PUT /api/products/archive_product/:id on https://app |
| 11 | bulk_archive_products | Calls POST /api/products/bulk-archive on https://app |
| 12 | delete_all_products | Master only |
| 13 | assign_product_locations | Calls POST /api/products/assign-locations on https://app |
| 14 | bulk_update_prices_preview | Calls POST /api/products/bulk-update-prices/preview on https://app |
| 15 | bulk_update_prices | Calls POST /api/products/bulk-update-prices on https://app |
| 16 | bulk_update_channel_prices_preview | Calls POST /api/products/bulk-update-channel-prices/preview on https://app |
| 17 | bulk_update_channel_prices | Calls POST /api/products/bulk-update-channel-prices on https://app |
| 18 | bulk_update_sort_order | Calls POST /api/products/bulk-update-sort-order on https://app |
| 19 | bulk_update_tax | Calls POST /api/products/bulk-update-tax on https://app |
| 20 | match_products_by_name | Calls POST /api/products/match-by-name on https://app |
| 21 | get_product_pricing_summary | Calls GET /api/products/:id/pricing-summary on https://app |
| 22 | get_products_recipe_costs | Also accepts the same fields on JSON body (req |
| 23 | get_product_materials | Calls GET /api/products/:id/materials on https://app |
| 24 | create_product_materials | Path :id is not read |
| 25 | edit_product_materials | Not in the 528 client list |
| 26 | upload_product_image | Calls POST /api/products/:productId/upload-image on https://app |
| 27 | bulk_upload_product_image | Despite the name, exactly one product id per request |
| 28 | remove_product_image | Path :id is unused |
| 29 | verify_product_plu | Calls GET /api/products/unique-verification-plu on https://app |
| 30 | get_product_units | Calls GET /api/products/units on https://app |
| 31 | get_product_tax_groups_enhanced | Calls GET /api/products/tax-groups-enhanced on https://app |
| 32 | get_pos_product | Calls GET /api/v2/products/:id on https://app |
| 33 | list_products_pos_list | Calls GET /api/v2/products/list on https://app |
| 34 | list_products_pos_web | Calls GET /api/v2/products/web on https://app |
| 35 | get_product_modifier_ordering | Calls GET /api/v2/products/modifier-ordering on https://app |
| 36 | update_product_availability | Calls POST /api/v2/products/availability on https://app |
| 37 | get_top_saled_products | Calls GET /api/v2/products/top-saled on https://app |
| 38 | quick_update_product | Not in the 528 client list |
See full documentation for parameters, examples, and response shapes.