MCP 服务器

current-rms

io.usefulapi/current-rms
商业与运营 电商与零售 公开且可连接 MCP 2026-07-28

此 MCP 可以做什么

Manages Current RMS rental opportunities, products, inventory, availability, customers, activities, invoices and quotes.

current_rms_check_product_availability
Check a product's availability
Rental availability for ONE product over a date range: arrays of quantity held, booked, unavailable, available, on sub-rent and quoted — one entry per availability period (hour, quarter day, half day or day depending on the range and system setting) — plus the opportunities that book it. Read-only, even though the API uses POST. Current RMS: POST /availability/product.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['product_id', 'starts_at', 'days_period'], 'properties': {'starts_at': {'type': 'string', 'description': 'Start date, ISO 8601, e.g. 2026-10-01.'}, 'store_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'description': 'Only these stores.'}, 'product_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The product id.', 'exclusiveMinimum': 0}, 'days_period': {'type': 'integer', 'maximum': 366, 'minimum': 1, 'description': 'Number of days to report on.'}}}
current_rms_create_activity
Log an activity
Log an activity (call, meeting, task, note) against a member, opportunity or project, optionally with participants. Current RMS: POST /activities.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['subject'], 'properties': {'ends_at': {'type': 'string', 'description': 'End (UTC).'}, 'subject': {'type': 'string', 'minLength': 1, 'description': "The activity's subject."}, 'type_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Activity type list-value id.'}, 'location': {'type': 'string', 'description': 'Where it takes place.'}, 'owned_by': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'User member id of the owner.', 'exclusiveMinimum': 0}, 'priority': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Priority, 1-5.'}, 'completed': {'type': 'boolean', 'description': 'Mark as already completed.'}, 'starts_at': {'type': 'string', 'description': 'Start (UTC).'}, 'status_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Activity status list-value id.'}, 'description': {'type': 'string', 'description': 'Details.'}, 'time_status': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}], 'description': '0 = Free, 1 = Busy.'}, 'regarding_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The id of that record.', 'exclusiveMinimum': 0}, 'regarding_type': {'type': 'string', 'description': 'The kind of record it concerns, e.g. "Opportunity", "Member" or "Project".'}, 'participant_member_ids': {'type': 'array', 'items': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'description': 'Member ids to add as participants.'}}}
current_rms_create_member
Create a member
Create an Organisation, Contact or Venue. To link a new Contact to its Organisation, pass parent_member_id. Current RMS: POST /members.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['name', 'membership_type'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': "The member's name."}, 'title': {'type': 'string', 'description': 'Job title (Contacts only).'}, 'emails': {'type': 'array', 'items': {'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Email address.'}, 'type_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Email type list-value id (4001 = Work in a default setup).'}}}, 'description': 'Email addresses to add.'}, 'phones': {'type': 'array', 'items': {'type': 'object', 'required': ['number'], 'properties': {'number': {'type': 'string', 'description': 'Phone number.'}, 'type_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Phone type list-value id (6001 = Work in a default setup).'}}}, 'description': 'Phone numbers to add.'}, 'tag_list': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags.'}, 'department': {'type': 'string', 'description': 'Department (Contacts only).'}, 'description': {'type': 'string', 'description': 'Notes about the member.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values by field name.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'membership_type': {'enum': ['Organisation', 'Contact', 'Venue'], 'type': 'string', 'description': 'The kind of member.'}, 'parent_member_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Organisation (or Venue) member id to link this Contact to.', 'exclusiveMinimum': 0}}}
current_rms_create_opportunity
Create an opportunity
Create an opportunity (a rental job) as an Enquiry, Draft or Quotation. store_id is required (see current_rms_list_stores); set member_id for the customer and starts_at/ends_at for the job dates. Line items are added in Current RMS. Current RMS: POST /opportunities.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['store_id'], 'properties': {'state': {'anyOf': [{'type': 'number', 'const': 0}, {'type': 'number', 'const': 1}, {'type': 'number', 'const': 2}], 'description': '0 = Enquiry, 1 = Draft, 2 = Quotation. Converting to an Order is left to Current RMS.'}, 'rating': {'type': 'integer', 'maximum': 5, 'minimum': 0, 'description': 'Rating, 0-5.'}, 'ends_at': {'type': 'string', 'description': 'Overall end / collection date-time (UTC).'}, 'subject': {'type': 'string', 'description': "The opportunity's subject (title)."}, 'owned_by': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'User member id of the owner.', 'exclusiveMinimum': 0}, 'store_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The store the job is served from.', 'exclusiveMinimum': 0}, 'tag_list': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags.'}, 'venue_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The Venue member id.', 'exclusiveMinimum': 0}, 'member_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The customer (Organisation/Contact member) id.', 'exclusiveMinimum': 0}, 'reference': {'type': 'string', 'description': 'Customer reference, e.g. their PO number.'}, 'starts_at': {'type': 'string', 'description': 'Overall start / delivery date-time (UTC).'}, 'project_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The project this opportunity belongs to.', 'exclusiveMinimum': 0}, 'description': {'type': 'string', 'description': 'Internal description.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values by field name.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'charge_ends_at': {'type': 'string', 'description': 'Charging period end (UTC).'}, 'charge_starts_at': {'type': 'string', 'description': 'Charging period start (UTC).'}, 'billing_address_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': "The member's address id used for billing.", 'exclusiveMinimum': 0}, 'customer_returning': {'type': 'boolean', 'description': 'The customer returns the goods themselves.'}, 'customer_collecting': {'type': 'boolean', 'description': 'The customer collects the goods themselves.'}, 'external_description': {'type': 'string', 'description': 'Description shown on customer documents.'}, 'delivery_instructions': {'type': 'string', 'description': 'Delivery instructions.'}, 'collection_instructions': {'type': 'string', 'description': 'Collection instructions.'}}}
current_rms_get_invoice
Get one invoice
Fetch one invoice or credit note with its status, due date and totals; include invoice_items for the lines. Current RMS: GET /invoices/{id}.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['invoice_id'], 'properties': {'include': {'type': 'array', 'items': {'enum': ['owner', 'member', 'billing_address', 'destination', 'venue', 'invoice_taxes', 'tax_class', 'invoice_items'], 'type': 'string'}, 'description': 'Associations to embed, e.g. ["invoice_items"].'}, 'invoice_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The invoice id.', 'exclusiveMinimum': 0}}}
current_rms_get_member
Get one member
Fetch one member (organisation, contact, venue or user) with its addresses, emails, phones, links, linked parent/child members and custom fields. Current RMS: GET /members/{id}.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['member_id'], 'properties': {'member_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The member id.', 'exclusiveMinimum': 0}}}
current_rms_get_opportunity
Get one opportunity
Fetch one opportunity with its dates, state (0 Enquiry, 1 Draft, 2 Quotation, 3 Order), status and charge/cost totals. Associations (customer, venue, line items, assets, participants) are only returned when named in include. Current RMS: GET /opportunities/{id}.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['opportunity_id'], 'properties': {'include': {'type': 'array', 'items': {'enum': ['owner', 'member', 'billing_address', 'destination', 'collection', 'venue', 'opportunity_surcharges', 'participants', 'opportunity_items', 'item_assets', 'return_item_assets'], 'type': 'string'}, 'description': 'Associations to embed, e.g. ["member", "venue", "opportunity_items"].'}, 'opportunity_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The opportunity id.', 'exclusiveMinimum': 0}}}
current_rms_get_product
Get one product
Fetch one product with its rates, stock settings and custom fields. Current RMS: GET /products/{id}.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['product_id'], 'properties': {'include': {'type': 'array', 'items': {'enum': ['accessories', 'icon', 'product_group'], 'type': 'string'}, 'description': 'Associations to embed.'}, 'product_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The product id.', 'exclusiveMinimum': 0}}}
current_rms_list_activities
List activities
List activities — calls, meetings, tasks and notes logged against members, opportunities and projects. filtermode: pending, completed, all. Example filters for one person's busy time in a window: {"time_status_eq": 1, "starts_at_lt": "2026-10-02T00:00:00.000Z", "ends_at_gteq": "2026-10-01T00:00:00.000Z", "participants_member_id_eq": [123]}. Current RMS: GET /activities.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+ (asc|desc)$'}, 'description': 'Sort order, e.g. ["name asc"] or ["updated_at desc", "id asc"]. Add "id asc" when paging so the order is deterministic.'}, 'search': {'type': 'string', 'description': 'Free-text search on subject, description, location or tags.'}, 'filters': {'type': 'object', 'description': 'Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {"updated_at_gt": "2026-01-01T00:00:00.000Z"}, {"number_eq": "003664"}, {"status_not_eq": 40}, {"work_email_address_eq": "abc@test.com"}, {"asset_number_eq": "ABC-1"}. Unknown predicates are silently ignored by the API.', 'propertyNames': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': ['string', 'number']}}]}}, 'include': {'type': 'array', 'items': {'enum': ['regarding', 'owner', 'opportunity_item_asset', 'participants'], 'type': 'string'}, 'description': 'Associations to embed.'}, 'view_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Record id of a saved custom view to apply.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page, 1-100 (default 20).'}, 'filtermode': {'enum': ['pending', 'completed', 'all'], 'type': 'string', 'description': 'Which activities to return.'}}}
current_rms_list_invoices
List invoices and credit notes
List invoices and credit notes with number, dates, status and totals. Free-text search covers subject, number, description, customer name and tags. filtermode: live, inactive, all, invoices, credits. To find one opportunity's invoices pass filters {"invoice_items_source_type_eq": "Opportunity", "invoice_items_source_id_eq": <opportunity id>} with filtermode all. Current RMS: GET /invoices.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+ (asc|desc)$'}, 'description': 'Sort order, e.g. ["name asc"] or ["updated_at desc", "id asc"]. Add "id asc" when paging so the order is deterministic.'}, 'search': {'type': 'string', 'description': 'Free-text search on subject, number, description, customer name or tags.'}, 'filters': {'type': 'object', 'description': 'Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {"updated_at_gt": "2026-01-01T00:00:00.000Z"}, {"number_eq": "003664"}, {"status_not_eq": 40}, {"work_email_address_eq": "abc@test.com"}, {"asset_number_eq": "ABC-1"}. Unknown predicates are silently ignored by the API.', 'propertyNames': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': ['string', 'number']}}]}}, 'include': {'type': 'array', 'items': {'enum': ['owner', 'member', 'billing_address', 'destination', 'venue', 'invoice_taxes', 'tax_class', 'invoice_items'], 'type': 'string'}, 'description': 'Associations to embed.'}, 'view_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Record id of a saved custom view to apply.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page, 1-100 (default 20).'}, 'filtermode': {'type': 'string', 'description': 'Built-in filter: live, inactive, all, invoices, credits.'}}}
current_rms_list_members
List members
List members — Current RMS's single record type for Organisations, Contacts, Venues and Users. Free-text search covers name, street, work phone, work email and tags. Defaults to active records; filtermode can be active, inactive, all, organisation, contact, venue, user, with_pending_activities, with_live_opportunities, bookable. Current RMS: GET /members.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+ (asc|desc)$'}, 'description': 'Sort order, e.g. ["name asc"] or ["updated_at desc", "id asc"]. Add "id asc" when paging so the order is deterministic.'}, 'search': {'type': 'string', 'description': 'Free-text search on name, street, work phone, work email, user email or tags.'}, 'filters': {'type': 'object', 'description': 'Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {"updated_at_gt": "2026-01-01T00:00:00.000Z"}, {"number_eq": "003664"}, {"status_not_eq": 40}, {"work_email_address_eq": "abc@test.com"}, {"asset_number_eq": "ABC-1"}. Unknown predicates are silently ignored by the API.', 'propertyNames': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': ['string', 'number']}}]}}, 'view_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Record id of a saved custom view to apply.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page, 1-100 (default 20).'}, 'filtermode': {'type': 'string', 'description': 'Built-in filter, e.g. all, organisation, contact, venue, user, inactive.'}}}
current_rms_list_opportunities
List opportunities
List opportunities — the enquiries, drafts, quotations and orders for a rental job — with their dates, state and charge totals. Free-text search covers subject, description, number, customer name and tags. filtermode e.g. live, all, inactive, enquiries, drafts, quotations, orders, invoiced, not_invoiced, needing_prep. Line items are NOT included here: use current_rms_get_opportunity or current_rms_list_opportunity_items. Max 25 per page. Current RMS: GET /opportunities.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+ (asc|desc)$'}, 'description': 'Sort order, e.g. ["name asc"] or ["updated_at desc", "id asc"]. Add "id asc" when paging so the order is deterministic.'}, 'search': {'type': 'string', 'description': 'Free-text search on subject, description, number, customer name or tags.'}, 'filters': {'type': 'object', 'description': 'Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {"updated_at_gt": "2026-01-01T00:00:00.000Z"}, {"number_eq": "003664"}, {"status_not_eq": 40}, {"work_email_address_eq": "abc@test.com"}, {"asset_number_eq": "ABC-1"}. Unknown predicates are silently ignored by the API.', 'propertyNames': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': ['string', 'number']}}]}}, 'include': {'type': 'array', 'items': {'enum': ['owner', 'member', 'billing_address', 'destination', 'collection', 'venue', 'opportunity_surcharges'], 'type': 'string'}, 'description': 'Associations to embed in each record.'}, 'view_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Record id of a saved custom view to apply.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'Records per page, 1-25.'}, 'filtermode': {'type': 'string', 'description': 'Built-in filter, e.g. live, all, quotations, orders, not_invoiced.'}}}
current_rms_list_opportunity_items
List an opportunity's line items
List the line items on one opportunity — products, services and groups, with quantity, rate, discount, dates and charge totals. Current RMS: GET /opportunities/{opportunity_id}/opportunity_items.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['opportunity_id'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'include': {'type': 'array', 'items': {'enum': ['item', 'item_assets', 'rate_definition', 'item_surcharges'], 'type': 'string'}, 'description': 'Associations to embed on each line.'}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page, 1-100 (default 20).'}, 'opportunity_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The opportunity id.', 'exclusiveMinimum': 0}}}
current_rms_list_product_inventories
List product inventory
Stock snapshot per product: rental quantity held, booked, unavailable, on sub-rent and AVAILABLE, plus sale stock and prices. Pass starts_at/ends_at to compute rental availability for a job's dates instead of today, and store_id to restrict to one store. filtermode: active, inactive, all, rental, sale. Current RMS: GET /product_inventories.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+ (asc|desc)$'}, 'description': 'Sort order, e.g. ["name asc"] or ["updated_at desc", "id asc"]. Add "id asc" when paging so the order is deterministic.'}, 'search': {'type': 'string', 'description': 'Free-text search on name, product group name or tags.'}, 'ends_at': {'type': 'string', 'description': 'End of the period to compute rental availability for (UTC).'}, 'filters': {'type': 'object', 'description': 'Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {"updated_at_gt": "2026-01-01T00:00:00.000Z"}, {"number_eq": "003664"}, {"status_not_eq": 40}, {"work_email_address_eq": "abc@test.com"}, {"asset_number_eq": "ABC-1"}. Unknown predicates are silently ignored by the API.', 'propertyNames': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': ['string', 'number']}}]}}, 'view_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Record id of a saved custom view to apply.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page, 1-100 (default 20).'}, 'store_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Only this store.', 'exclusiveMinimum': 0}, 'starts_at': {'type': 'string', 'description': 'Start of the period to compute rental availability for (UTC).'}, 'filtermode': {'type': 'string', 'description': 'Built-in filter, e.g. rental, sale, all.'}}}
current_rms_list_products
List products
List products (rental and sale items) with their group, stock method, rates, weight and barcode. Free-text search covers name, product group name and tags. filtermode: active (default), inactive, all. Current RMS: GET /products.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+ (asc|desc)$'}, 'description': 'Sort order, e.g. ["name asc"] or ["updated_at desc", "id asc"]. Add "id asc" when paging so the order is deterministic.'}, 'search': {'type': 'string', 'description': 'Free-text search on name, product group name or tags.'}, 'filters': {'type': 'object', 'description': 'Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {"updated_at_gt": "2026-01-01T00:00:00.000Z"}, {"number_eq": "003664"}, {"status_not_eq": 40}, {"work_email_address_eq": "abc@test.com"}, {"asset_number_eq": "ABC-1"}. Unknown predicates are silently ignored by the API.', 'propertyNames': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': ['string', 'number']}}]}}, 'include': {'type': 'array', 'items': {'enum': ['accessories'], 'type': 'string'}, 'description': 'Associations to embed.'}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page, 1-100 (default 20).'}, 'filtermode': {'enum': ['active', 'inactive', 'all'], 'type': 'string', 'description': 'Which products to return.'}}}
current_rms_list_projects
List projects
List projects — groups of related opportunities for one customer or event. Free-text search covers name, customer name and tags. filtermode: active (default), inactive, all. Current RMS: GET /projects.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+ (asc|desc)$'}, 'description': 'Sort order, e.g. ["name asc"] or ["updated_at desc", "id asc"]. Add "id asc" when paging so the order is deterministic.'}, 'search': {'type': 'string', 'description': 'Free-text search on name, customer name or tags.'}, 'filters': {'type': 'object', 'description': 'Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {"updated_at_gt": "2026-01-01T00:00:00.000Z"}, {"number_eq": "003664"}, {"status_not_eq": 40}, {"work_email_address_eq": "abc@test.com"}, {"asset_number_eq": "ABC-1"}. Unknown predicates are silently ignored by the API.', 'propertyNames': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': ['string', 'number']}}]}}, 'view_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Record id of a saved custom view to apply.', 'exclusiveMinimum': 0}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page, 1-100 (default 20).'}, 'filtermode': {'enum': ['active', 'inactive', 'all'], 'type': 'string', 'description': 'Which projects to return.'}}}
current_rms_list_stock_levels
List stock levels
List stock levels — the individual serialised assets (asset number, serial number, location, store) or bulk stock quantities held. Pass product_id for one product's stock, or use filters such as {"asset_number_eq": "ABC-1234"} to find an asset. Current RMS: GET /stock_levels or GET /products/{product_id}/stock_levels.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+ (asc|desc)$'}, 'description': 'Sort order, e.g. ["name asc"] or ["updated_at desc", "id asc"]. Add "id asc" when paging so the order is deterministic.'}, 'filters': {'type': 'object', 'description': 'Extra Current RMS query-engine predicates, sent as q[<key>]=<value> (arrays become q[<key>][]). Examples: {"updated_at_gt": "2026-01-01T00:00:00.000Z"}, {"number_eq": "003664"}, {"status_not_eq": 40}, {"work_email_address_eq": "abc@test.com"}, {"asset_number_eq": "ABC-1"}. Unknown predicates are silently ignored by the API.', 'propertyNames': {'type': 'string', 'pattern': '^[A-Za-z0-9_]+$'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}, {'type': 'array', 'items': {'type': ['string', 'number']}}]}}, 'include': {'type': 'array', 'items': {'enum': ['item', 'icon'], 'type': 'string'}, 'description': 'Associations to embed.'}, 'per_page': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page, 1-100 (default 20).'}, 'product_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': "Only this product's stock levels.", 'exclusiveMinimum': 0}}}
current_rms_list_stores
List stores
List the account's stores (warehouses/depots) with their ids and addresses — needed for store_id when creating an opportunity. Current RMS: GET /stores.
只读
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
current_rms_update_member
Update a member
Update fields on an existing member. Only the fields you pass are sent. Emails and phones passed here are ADDED (existing ones are kept). When updating custom_fields, also pass the member's membership_type. Current RMS: PUT /members/{id}.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['member_id'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'New name.'}, 'active': {'type': 'boolean', 'description': 'Set false to make the member inactive (reversible).'}, 'emails': {'type': 'array', 'items': {'type': 'object', 'required': ['address'], 'properties': {'address': {'type': 'string', 'description': 'Email address.'}, 'type_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Email type list-value id (4001 = Work in a default setup).'}}}, 'description': 'Email addresses to add.'}, 'phones': {'type': 'array', 'items': {'type': 'object', 'required': ['number'], 'properties': {'number': {'type': 'string', 'description': 'Phone number.'}, 'type_id': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Phone type list-value id (6001 = Work in a default setup).'}}}, 'description': 'Phone numbers to add.'}, 'tag_list': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replacement tag list.'}, 'member_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The member id.', 'exclusiveMinimum': 0}, 'description': {'type': 'string', 'description': 'Notes about the member.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values by field name.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'membership_type': {'enum': ['Organisation', 'Contact', 'Venue', 'User'], 'type': 'string', 'description': "The member's EXISTING type — required by the API when updating custom_fields."}}}
current_rms_update_opportunity
Update an opportunity
Update header fields on an existing opportunity — subject, customer, venue, dates, reference, instructions, tags, custom fields. Only the fields you pass are sent. State changes (convert to quote/order, cancel, mark lost) are deliberately not available. Current RMS: PUT /opportunities/{id}.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['opportunity_id'], 'properties': {'rating': {'type': 'integer', 'maximum': 5, 'minimum': 0, 'description': 'Rating, 0-5.'}, 'ends_at': {'type': 'string', 'description': 'Overall end / collection date-time (UTC).'}, 'subject': {'type': 'string', 'description': "The opportunity's subject (title)."}, 'owned_by': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'User member id of the owner.', 'exclusiveMinimum': 0}, 'store_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Move the job to another store.', 'exclusiveMinimum': 0}, 'tag_list': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags.'}, 'venue_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The Venue member id.', 'exclusiveMinimum': 0}, 'member_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The customer (Organisation/Contact member) id.', 'exclusiveMinimum': 0}, 'reference': {'type': 'string', 'description': 'Customer reference, e.g. their PO number.'}, 'starts_at': {'type': 'string', 'description': 'Overall start / delivery date-time (UTC).'}, 'project_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The project this opportunity belongs to.', 'exclusiveMinimum': 0}, 'description': {'type': 'string', 'description': 'Internal description.'}, 'custom_fields': {'type': 'object', 'description': 'Custom field values by field name.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'charge_ends_at': {'type': 'string', 'description': 'Charging period end (UTC).'}, 'opportunity_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'The opportunity id.', 'exclusiveMinimum': 0}, 'charge_starts_at': {'type': 'string', 'description': 'Charging period start (UTC).'}, 'billing_address_id': {'type': 'integer', 'maximum': 9007199254740991, 'description': "The member's address id used for billing.", 'exclusiveMinimum': 0}, 'customer_returning': {'type': 'boolean', 'description': 'The customer returns the goods themselves.'}, 'customer_collecting': {'type': 'boolean', 'description': 'The customer collects the goods themselves.'}, 'external_description': {'type': 'string', 'description': 'Description shown on customer documents.'}, 'delivery_instructions': {'type': 'string', 'description': 'Delivery instructions.'}, 'collection_instructions': {'type': 'string', 'description': 'Collection instructions.'}}}
已添加
current_rms_create_activity
2026年10月2日 02:40
已添加
current_rms_update_opportunity
2026年10月2日 02:40
已添加
current_rms_create_opportunity
2026年10月2日 02:40
已添加
current_rms_update_member
2026年10月2日 02:40
已添加
current_rms_create_member
2026年10月2日 02:40
已添加
current_rms_list_activities
2026年10月2日 02:40
已添加
current_rms_list_projects
2026年10月2日 02:40
已添加
current_rms_get_invoice
2026年10月2日 02:40
已添加
current_rms_list_invoices
2026年10月2日 02:40
已添加
current_rms_list_stores
2026年10月2日 02:40
已添加
current_rms_list_stock_levels
2026年10月2日 02:40
已添加
current_rms_check_product_availability
2026年10月2日 02:40
已添加
current_rms_list_product_inventories
2026年10月2日 02:40
已添加
current_rms_get_product
2026年10月2日 02:40
已添加
current_rms_list_products
2026年10月2日 02:40
已添加
current_rms_list_opportunity_items
2026年10月2日 02:40
已添加
current_rms_get_opportunity
2026年10月2日 02:40
已添加
current_rms_list_opportunities
2026年10月2日 02:40
已添加
current_rms_get_member
2026年10月2日 02:40
已添加
current_rms_list_members
2026年10月2日 02:40