PlentyONE MCP by usefulapi
Review PlentyONE orders, items, stock and contacts; add comments and update order status.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (6)
- LOWin plentymarkets_get_order_status_history
- LOWin plentymarkets_list_order_statuses
- LOWin plentymarkets_list_order_referrers
- LOWin plentymarkets_list_manufacturers
- LOWin plentymarkets_list_sales_prices
- LOWin plentymarkets_update_order_status
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"plentymarkets": {
"url": "https://plentymarkets.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://plentymarkets.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (18)
🟢plentymarkets_list_orders(status_from, status_to, order_type, contact_id, payment_status, ...)
List orders (sales orders, returns, credit notes ...) with filters. Newest first with sort_by createdAt and sort_order desc. Returns {page, totalsCount, isLastPage, entries[]}; each entry has the id, typeId (1 = sales order), statusId, plentyId, createdAt, amounts and the order items unless add_order_items is false. GET /rest/orders.
Eingabe-Schema
{
"type": "object",
"properties": {
"status_from": {
"description": "Only orders in this status or a higher one (status ids are numbers like 3, 5.1, 7).",
"type": "number",
"minimum": 0,
"maximum": 1000
},
"status_to": {
"description": "Only orders up to this status (combine with status_from for a range).",
"type": "number",
"minimum": 0,
"maximum": 1000
},
"order_type": {
"description": "Order type id(s), comma separated: 1 sales order, 2 delivery order, 3 returns, 4 credit note, 5 warranty, 6 repair, 7 offer, 8 advance order, 9 multi order, 10 multi credit note, 11 multi delivery, 12 reorder, 13 partial delivery, 14 subscription, 15 redistribution.",
"type": "string",
"maxLength": 60,
"pattern": "^\\d+(,\\d+)*$"
},
"contact_id": {
"description": "Only orders of this contact (customer).",
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"payment_status": {
"type": "string",
"enum": [
"unpaid",
"partlyPaid",
"fullyPaid",
"overpaid"
]
},
"referrer_id": {
"description": "Only orders from this order referrer / marketplace (see plentymarkets_list_order_referrers).",
"type": "number",
"minimum": 0,
"maximum": 2000000000
},
"external_order_id": {
"description": "The order id the marketplace or shop gave the order.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"order_ids": {
"description": "Specific order ids, comma separated.",
"type": "string",
"maxLength": 400,
"pattern": "^\\d+(,\\d+)*$"
},
"included_variation": {
"description": "Only orders that contain this variation id.",
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"created_from": {
"type": "string",
"description": "A date (yyyy-mm-dd) or a date-time (2026-10-24T13:33:23+02:00). A bare date means the whole day."
},
"created_to": {
"type": "string",
"description": "A date (yyyy-mm-dd) or a date-time (2026-10-24T13:33:23+02:00). A bare date means the whole day."
},
"updated_from": {
"type": "string",
"description": "A date (yyyy-mm-dd) or a date-time (2026-10-24T13:33:23+02:00). A bare date means the whole day."
},
"updated_to": {
"type": "string",
"description": "A date (yyyy-mm-dd) or a date-time (2026-10-24T13:33:23+02:00). A bare date means the whole day."
},
"paid_from": {
"type": "string",
"description": "A date (yyyy-mm-dd) or a date-time (2026-10-24T13:33:23+02:00). A bare date means the whole day."
},
"paid_to": {
"type": "string",
"description": "A date (yyyy-mm-dd) or a date-time (2026-10-24T13:33:23+02:00). A bare date means the whole day."
},
"add_order_items": {
"description": "Include the order items (default true). false makes the page much smaller.",
"type": "boolean"
},
"with": {
"description": "Related data to load, for example addresses, comments, payments, documents.",
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"enum": [
"addresses",
"relations",
"comments",
"location",
"payments",
"documents",
"contactSender",
"contactReceiver",
"warehouseSender",
"warehouseReceiver",
"orderItems.variation",
"orderItems.comments",
"orderItems.transactions",
"orderItems.serialNumbers",
"shippingPackages",
"shippingPackages.items",
"shippingInformation",
"originOrderReferences"
]
}
},
"sort_by": {
"type": "string",
"enum": [
"id",
"statusId",
"createdAt",
"orderDocument"
]
},
"sort_order": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 100 (default 25). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_get_order(order_id, with, add_order_items)
Get one order by id: status, amounts, dates, properties, order items, address relations. Add related data with `with` (addresses, comments, payments, documents, shippingPackages ...). GET /rest/orders/{orderId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000,
"description": "The order id."
},
"with": {
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"enum": [
"addresses",
"relations",
"comments",
"location",
"payments",
"documents",
"contactSender",
"contactReceiver",
"warehouseSender",
"warehouseReceiver",
"orderItems.variation",
"orderItems.comments",
"orderItems.transactions",
"orderItems.serialNumbers",
"shippingPackages"
]
}
},
"add_order_items": {
"description": "Include the order items (default true).",
"type": "boolean"
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_get_order_status_history(order_id)
The status changes of an order: which status, when, and by which user. GET /rest/orders/{orderId}/status-history.
Eingabe-Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_order_statuses(status_id_from, status_id_to, language, page, items_per_page)
The order statuses defined in the system (id and name per language), to translate a statusId. Optionally a range of status ids. GET /rest/orders/statuses.
Eingabe-Schema
{
"type": "object",
"properties": {
"status_id_from": {
"type": "number",
"minimum": 0,
"maximum": 1000
},
"status_id_to": {
"type": "number",
"minimum": 0,
"maximum": 1000
},
"language": {
"description": "Two-letter language code, for example en or de.",
"type": "string",
"pattern": "^[a-z]{2}$"
},
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 100 (default 50). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_order_referrers
The order referrers (sales channels: shop, eBay, Amazon, ...) with their ids, for the referrer_id filter of plentymarkets_list_orders. GET /rest/orders/referrers.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_comments(reference_type, reference_id)
The comments (internal notes) on an order, an order item, a contact or a category. GET /rest/comments/{referenceType}/{referenceValue}.
Eingabe-Schema
{
"type": "object",
"properties": {
"reference_type": {
"type": "string",
"enum": [
"order",
"order_item",
"contact",
"category"
]
},
"reference_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000,
"description": "The id of the order, order item, contact or category."
}
},
"required": [
"reference_type",
"reference_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_items(name, id, manufacturer_id, updated_from, updated_to, ...)
List items (the product containers) with filters. Prices, stock, barcodes and SKUs belong to the variations: use plentymarkets_list_variations for those. Returns {page, totalsCount, isLastPage, entries[]}. GET /rest/items.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"description": "Item name (matches the name of the item).",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"id": {
"description": "Item id(s), comma separated.",
"type": "string",
"maxLength": 400,
"pattern": "^\\d+(,\\d+)*$"
},
"manufacturer_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"updated_from": {
"description": "Only items updated from this day on (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_to": {
"description": "Only items updated up to this day (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"lang": {
"description": "Language of the texts, a two-letter code (default: the system's).",
"type": "string",
"pattern": "^[a-z]{2}$"
},
"with": {
"description": "Related data: itemProperties, itemCrossSelling, variations, itemImages, itemShippingProfiles.",
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"itemProperties",
"itemCrossSelling",
"variations",
"itemImages",
"itemShippingProfiles"
]
}
},
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 100 (default 25). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_get_item(item_id, lang)
Get one item by id: flags, manufacturer, texts, condition, age rating and the item-level settings. GET /rest/items/{itemId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"item_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"lang": {
"description": "Language of the texts, a two-letter code.",
"type": "string",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"item_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_variations(item_id, id, item_name, number_exact, number_fuzzy, ...)
Search variations (the sellable products: number, SKU, barcodes, prices, stock, categories). Filter by item, number, barcode, SKU, active flag, category, warehouse. Use `with` for the related data (variationSalesPrices, variationBarcodes, stock, variationCategories, images ...). GET /rest/items/variations.
Eingabe-Schema
{
"type": "object",
"properties": {
"item_id": {
"description": "Only variations of this item.",
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"id": {
"description": "One variation id.",
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"item_name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"number_exact": {
"description": "The exact variation number.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"number_fuzzy": {
"description": "Variation numbers that contain this text.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"sku": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"barcode": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"is_active": {
"type": "boolean"
},
"is_main": {
"description": "Only main variations.",
"type": "boolean"
},
"category_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"manufacturer_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"supplier_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"stock_warehouse_id": {
"description": "Only variations with physical stock in this warehouse.",
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"updated_from": {
"description": "Only variations updated from this day on (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"updated_to": {
"description": "Only variations updated up to this day (yyyy-mm-dd).",
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$"
},
"with": {
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"enum": [
"properties",
"variationProperties",
"variationBarcodes",
"variationBundleComponents",
"variationSalesPrices",
"marketItemNumbers",
"variationCategories",
"variationClients",
"variationMarkets",
"variationDefaultCategory",
"variationSuppliers",
"variationWarehouses",
"images",
"itemImages",
"variationAttributeValues",
"variationSkus",
"unit",
"parent",
"item",
"stock"
]
}
},
"lang": {
"type": "string",
"pattern": "^[a-z]{2}$"
},
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 100 (default 25). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_categories(type, parent_id, name, level, with, ...)
List item categories (the category tree: id, parent, level, type, names with `with` details). GET /rest/categories.
Eingabe-Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"item",
"container",
"content",
"blog"
]
},
"parent_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"level": {
"type": "integer",
"minimum": 1,
"maximum": 10
},
"with": {
"description": "details = names and texts, clients = the stores the category is active in, tags.",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"details",
"clients",
"tags"
]
}
},
"lang": {
"type": "string",
"pattern": "^[a-z]{2}$"
},
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 100 (default 50). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_manufacturers(name, page, items_per_page)
List the manufacturers (brands) of the items: id, name, address data. GET /rest/items/manufacturers.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 100 (default 50). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_sales_prices(page, items_per_page)
List the sales price configurations (price types such as retail or purchase price: id, type, names, which stores, countries and currencies they apply to). The prices of a variation: plentymarkets_list_variations with variationSalesPrices. GET /rest/items/sales_prices.
Eingabe-Schema
{
"type": "object",
"properties": {
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 100 (default 50). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_stock(variation_id, updated_from, updated_to, sort_by, sort_order, ...)
List physical stock per variation and warehouse (physical stock, net stock, reserved, reorder level), optionally for one variation or changed since a date. Returns {page, totalsCount, isLastPage, entries[]}. GET /rest/stockmanagement/stock.
Eingabe-Schema
{
"type": "object",
"properties": {
"variation_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"updated_from": {
"description": "Only stock changed from this date on.",
"type": "string"
},
"updated_to": {
"type": "string",
"description": "A date (yyyy-mm-dd) or a date-time (2026-10-24T13:33:23+02:00). A bare date means the whole day."
},
"sort_by": {
"type": "string",
"enum": [
"stock",
"number",
"variationId",
"warehouseId"
]
},
"sort_order": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 200 (default 50). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_warehouses
List the warehouses (id, name, type, priority, address settings). GET /rest/stockmanagement/warehouses.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_list_contacts(full_text, email, name, number, type_id, ...)
List contacts (customers, suppliers, ...). Returns personal data of your customers (names, emails, addresses). Filter by email, name, number, type, postal code or town; `with` adds addresses, options (email, phone), accounts, orderSummary. GET /rest/accounts/contacts.
Eingabe-Schema
{
"type": "object",
"properties": {
"full_text": {
"description": "Full text search over the contact data.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"email": {
"description": "An email address.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"number": {
"description": "The contact number.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"type_id": {
"description": "Contact type: 1 customer, 2 interested party, 3 sales representative, 4 supplier, 5 manufacturer, 6 partner.",
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"postal_code": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"town": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"created_after": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"created_before": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"updated_after": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"updated_before": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"last_order_after": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"last_order_before": {
"type": "string",
"pattern": "^(\\d{4})-(\\d{2})-(\\d{2})$",
"description": "A date, yyyy-mm-dd."
},
"with": {
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"enum": [
"addresses",
"accounts",
"options",
"orderSummary",
"primaryBillingAddress",
"contactOrders"
]
}
},
"page": {
"description": "Page number, from 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"items_per_page": {
"description": "Entries per page, 1 to 100 (default 25). When is_last_page is false, ask for the next page.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢plentymarkets_get_contact(contact_id, with)
Get one contact by id (customer personal data). Add addresses or accounts with `with` (the relations documented for this single-contact route). GET /rest/accounts/contacts/{contactId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"contact_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"with": {
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"addresses",
"accounts"
]
}
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡plentymarkets_add_comment(reference_type, reference_id, text, visible_for_contact)
WRITE: add an internal comment to an order, order item, contact, category or variation (an additive note, nothing is overwritten). By default the comment is NOT visible to the customer; only make it visible when the user explicitly asks. POST /rest/comments.
Eingabe-Schema
{
"type": "object",
"properties": {
"reference_type": {
"type": "string",
"enum": [
"order",
"order_item",
"contact",
"category",
"item_variation"
]
},
"reference_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000,
"description": "The id of the order, order item, contact, category or variation."
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "The comment text."
},
"visible_for_contact": {
"description": "Show the comment to the customer (default false: internal only).",
"type": "boolean"
}
},
"required": [
"reference_type",
"reference_id",
"text"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴plentymarkets_update_order_status(order_id, status_id)
WRITE: move an order to another status. This can trigger the event procedures configured in the system (customer emails, stock bookings, documents, shipping), so confirm the target status with the user first (plentymarkets_list_order_statuses has the ids). Only the status is sent. PUT /rest/orders/{orderId}.
Eingabe-Schema
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"minimum": 1,
"maximum": 2000000000
},
"status_id": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "The target status id, for example 5 or 7.2."
}
},
"required": [
"order_id",
"status_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis