ReturnLogic MCP by usefulapi

Read returns, orders and products; flag returns and mark items received in ReturnLogic.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
98%
Integridad del esquema
96%
Calidad de los nombres
76%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • LOWTool 'returnlogic_get_rma_item_type_history' name length outside 3-30 rangeen returnlogic_get_rma_item_type_history
  • LOWTool 'returnlogic_get_rma_item_metafields' name length outside 3-30 rangeen returnlogic_get_rma_item_metafields
  • LOWTool 'returnlogic_list_product_categories' name length outside 3-30 rangeen returnlogic_list_product_categories
  • LOWTool 'returnlogic_mark_rma_items_received' name length outside 3-30 rangeen returnlogic_mark_rma_items_received

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~4,735Tokens (definiciones de herramientas)
~2.1 KBTamaño de respuesta típico
Impacto significativo en la atención (3.70% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "returnlogic": {
      "url": "https://returnlogic.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://returnlogic.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (18)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢returnlogic_list_rmas(created_after, created_before, workflow_status, return_type, return_reason_code, ...)

List return merchandise authorizations (RMAs, i.e. customer returns) with workflow status, return type (refund, exchange, warranty, giftcard), items, customer email and order. Filter by status, type, reason, email, order, date range, flags or 'requires action'. GET /v1/rmas.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "created_after": {
      "type": "string",
      "description": "Only RMAs created on or after this moment. A date (yyyy-mm-dd) or an ISO 8601 date-time."
    },
    "created_before": {
      "type": "string",
      "description": "Only RMAs created on or before this moment. A date (yyyy-mm-dd) or an ISO 8601 date-time."
    },
    "workflow_status": {
      "description": "Only RMAs in one of these workflow statuses.",
      "maxItems": 11,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Abandoned",
          "Requested",
          "Authorized",
          "Canceled",
          "InTransit",
          "Delivered",
          "Active",
          "Received",
          "Processed",
          "Complete",
          "Rejected"
        ]
      }
    },
    "return_type": {
      "description": "Only RMAs with one of these return types.",
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "exchange",
          "warranty",
          "refund",
          "giftcard"
        ]
      }
    },
    "return_reason_code": {
      "description": "Only RMAs with one of these return reason codes.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "A return reason code."
      }
    },
    "email": {
      "description": "RMAs whose RMA email or order email matches one of these (case-insensitive, exact).",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 254,
        "description": "An email address."
      }
    },
    "order_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The human-readable order name, e.g. #1001."
    },
    "external_order_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The external (store) order number."
    },
    "show_archived": {
      "description": "true = only archived RMAs, false = only non-archived.",
      "type": "boolean"
    },
    "third_party_only": {
      "description": "Only RMAs whose order is not from Shopify.",
      "type": "boolean"
    },
    "requires_action": {
      "description": "Only RMAs that are not scheduled for automatic processing and need a person.",
      "type": "boolean"
    },
    "only_flagged": {
      "description": "Only flagged RMAs.",
      "type": "boolean"
    },
    "only_warranty_out_of_stock": {
      "description": "Only RMAs flagged Contact Customer Support (warranty item out of stock).",
      "type": "boolean"
    },
    "only_unpaid_invoices": {
      "description": "Only exchange or warranty RMAs with unpaid invoices.",
      "type": "boolean"
    },
    "skip": {
      "description": "Number of items to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647
    },
    "limit": {
      "description": "Items to return, 1-250 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_count_rmas(created_after, created_before, workflow_status, return_type, return_reason_code, ...)

Count RMAs matching the same filters as returnlogic_list_rmas (for example how many returns are Requested or require action). GET /v1/rmas/count.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "created_after": {
      "type": "string",
      "description": "Only RMAs created on or after this moment. A date (yyyy-mm-dd) or an ISO 8601 date-time."
    },
    "created_before": {
      "type": "string",
      "description": "Only RMAs created on or before this moment. A date (yyyy-mm-dd) or an ISO 8601 date-time."
    },
    "workflow_status": {
      "description": "Only RMAs in one of these workflow statuses.",
      "maxItems": 11,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Abandoned",
          "Requested",
          "Authorized",
          "Canceled",
          "InTransit",
          "Delivered",
          "Active",
          "Received",
          "Processed",
          "Complete",
          "Rejected"
        ]
      }
    },
    "return_type": {
      "description": "Only RMAs with one of these return types.",
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "exchange",
          "warranty",
          "refund",
          "giftcard"
        ]
      }
    },
    "return_reason_code": {
      "description": "Only RMAs with one of these return reason codes.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "A return reason code."
      }
    },
    "email": {
      "description": "RMAs whose RMA email or order email matches one of these (case-insensitive, exact).",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 254,
        "description": "An email address."
      }
    },
    "order_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The human-readable order name, e.g. #1001."
    },
    "external_order_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The external (store) order number."
    },
    "show_archived": {
      "description": "true = only archived RMAs, false = only non-archived.",
      "type": "boolean"
    },
    "third_party_only": {
      "description": "Only RMAs whose order is not from Shopify.",
      "type": "boolean"
    },
    "requires_action": {
      "description": "Only RMAs that are not scheduled for automatic processing and need a person.",
      "type": "boolean"
    },
    "only_flagged": {
      "description": "Only flagged RMAs.",
      "type": "boolean"
    },
    "only_warranty_out_of_stock": {
      "description": "Only RMAs flagged Contact Customer Support (warranty item out of stock).",
      "type": "boolean"
    },
    "only_unpaid_invoices": {
      "description": "Only exchange or warranty RMAs with unpaid invoices.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_get_rma(rma_id)

One RMA by id: status, comments, order link, shopper and warehouse addresses, items with quantities, reasons, approval/receipt state, labels and timeline. GET /v1/rmas/{rlRmaId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "rma_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic RMA id (rlRmaId)."
    }
  },
  "required": [
    "rma_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_get_rma_item_type_history(rma_item_id)

The history of return-type changes (e.g. refund changed to exchange) of one RMA item. GET /v1/rmas/{rlRmaItemId}/returntypehistory.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "rma_item_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic RMA item id (rlRmaItemId, from an RMA's items)."
    }
  },
  "required": [
    "rma_item_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_get_rma_metafields(rma_id)

Custom metafields (key, value, reportable) stored on an RMA. GET /v1/rmas/{rlRmaId}/metafields.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "rma_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic RMA id."
    }
  },
  "required": [
    "rma_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_get_rma_item_metafields(rma_id, rma_item_id)

Custom metafields stored on one item of an RMA. GET /v1/rmas/{rlRmaId}/items/{rlRmaItemId}/metafields.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "rma_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic RMA id."
    },
    "rma_item_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic RMA item id."
    }
  },
  "required": [
    "rma_id",
    "rma_item_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_list_orders(order_number, order_name, email, created_after, created_before, ...)

List orders known to ReturnLogic (synced from the store) with items, customer, amounts and statuses. Filter by order number/name, email, date range or financial status. GET /v1/orders.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Find orders by order number."
    },
    "order_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Find orders by order name, e.g. #1001."
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 254,
      "description": "Find orders by customer email (case-insensitive, exact)."
    },
    "created_after": {
      "type": "string",
      "description": "Only orders created on or after this moment. A date (yyyy-mm-dd) or an ISO 8601 date-time."
    },
    "created_before": {
      "type": "string",
      "description": "Only orders created on or before this moment. A date (yyyy-mm-dd) or an ISO 8601 date-time."
    },
    "financial_status": {
      "description": "Only orders with this financial status.",
      "type": "string",
      "enum": [
        "authorized",
        "paid",
        "partially_paid",
        "pending",
        "refunded",
        "voided",
        "ThirdParty"
      ]
    },
    "skip": {
      "description": "Number of items to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647
    },
    "limit": {
      "description": "Items to return, 1-250 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_count_orders(order_number, order_name, email, created_after, created_before, ...)

Count orders matching the same filters as returnlogic_list_orders. GET /v1/orders/count.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Find orders by order number."
    },
    "order_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Find orders by order name, e.g. #1001."
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 254,
      "description": "Find orders by customer email (case-insensitive, exact)."
    },
    "created_after": {
      "type": "string",
      "description": "Only orders created on or after this moment. A date (yyyy-mm-dd) or an ISO 8601 date-time."
    },
    "created_before": {
      "type": "string",
      "description": "Only orders created on or before this moment. A date (yyyy-mm-dd) or an ISO 8601 date-time."
    },
    "financial_status": {
      "description": "Only orders with this financial status.",
      "type": "string",
      "enum": [
        "authorized",
        "paid",
        "partially_paid",
        "pending",
        "refunded",
        "voided",
        "ThirdParty"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_get_order(order_id)

One order by ReturnLogic order id (rlOrderId) with its line items, addresses and statuses. GET /v1/orders/{rlOrderId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic order id (rlOrderId; the rlOrderId field of an RMA)."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_list_customers(email, external_customer_id, skip, limit)

List customers, or find one by email or external customer id. GET /v1/customers/list.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 254,
      "description": "Customer email address."
    },
    "external_customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The customer's id in the store (e.g. the Shopify customer id)."
    },
    "skip": {
      "description": "Number of items to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647
    },
    "limit": {
      "description": "Items to return, 1-250 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_get_customer(customer_id)

One customer by ReturnLogic customer id (rlCustomerId). GET /v1/customers/{rlCustomerId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic customer id (rlCustomerId)."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_list_products(sku, category_id, status, external_product_ids, skip, ...)

List products with their variants (SKUs, barcodes). Filter by SKU, category id, status or external (store) product ids. GET /v1/products.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sku": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Only products with a variant matching this SKU."
    },
    "category_id": {
      "description": "Only products in this ReturnLogic category id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647
    },
    "status": {
      "description": "active, inActive or any (default per API).",
      "type": "string",
      "enum": [
        "active",
        "inActive",
        "any"
      ]
    },
    "external_product_ids": {
      "description": "Only products matching these store product ids.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "An external (store) product id."
      }
    },
    "skip": {
      "description": "Number of items to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647
    },
    "limit": {
      "description": "Items to return, 1-250 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_count_products(sku, category_id, status)

Count products matching a SKU, category or status filter. GET /v1/products/count.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "sku": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Only products with a variant matching this SKU."
    },
    "category_id": {
      "description": "Only products in this ReturnLogic category id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647
    },
    "status": {
      "description": "active, inActive or any (default per API).",
      "type": "string",
      "enum": [
        "active",
        "inActive",
        "any"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_get_product(product_id)

One product by ReturnLogic product id (rlProductId) with its variants. GET /v1/products/{rlProductId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic product id (rlProductId)."
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢returnlogic_list_product_categories(name, external_category_ids, skip, limit)

List product categories (used for return rules). Search by name or external category ids. GET /v1/productCategories.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Category name to search for."
    },
    "external_category_ids": {
      "description": "Only categories matching these store category ids.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "An external (store) category id."
      }
    },
    "skip": {
      "description": "Number of items to skip (default 0). Pass the previous reply's next_skip.",
      "type": "integer",
      "minimum": 0,
      "maximum": 2147483647
    },
    "limit": {
      "description": "Items to return, 1-250 (default 25).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 250
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴returnlogic_flag_rma(rma_id, comment)

WRITE: flag an RMA so the team can filter for it, with an optional comment. A flag cannot be removed afterwards. It sends nothing to the customer. POST /v1/rmas/{rlRmaId}/flag.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "rma_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic RMA id."
    },
    "comment": {
      "description": "Why the RMA is flagged (visible to the team).",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    }
  },
  "required": [
    "rma_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴returnlogic_mark_rma_items_received(rma_id, items)

WRITE: record the warehouse receipt of one or more RMA items (received true/false, optional disposition code that must already exist in ReturnLogic). When every item is received the RMA becomes Received, and if the store uses Automated Processing for Received, the RMA may then be processed automatically (refund, exchange or gift card issued, and the customer notified by ReturnLogic). Use only on the operator's instruction. PUT /v1/rmas/{rlRmaId}/fulfillment.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "rma_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic RMA id."
    },
    "items": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "rma_item_id": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 2147483647,
            "description": "ReturnLogic RMA item id (rlRmaItemId)."
          },
          "received": {
            "type": "boolean",
            "description": "true = the item arrived at the warehouse, false = not (yet) received."
          },
          "disposition_code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "An existing disposition code to record for the item."
          },
          "disposition_comment": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000,
            "description": "Comment stored with the disposition."
          }
        },
        "required": [
          "rma_item_id",
          "received"
        ]
      },
      "description": "The items to update."
    }
  },
  "required": [
    "rma_id",
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴returnlogic_add_rma_metafields(rma_id, metafields)

WRITE: add custom metafields (key/value notes or reference numbers) to an RMA. A key can be used once per RMA. 'reportable' true makes the field visible on RMAs and reports; false keeps it API-only. Nothing is sent to the customer. POST /v1/rmas/{rlRmaId}/metafields.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "rma_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 2147483647,
      "description": "ReturnLogic RMA id."
    },
    "metafields": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Metafield key (name), unique per RMA."
          },
          "value": {
            "type": "string",
            "maxLength": 2000,
            "description": "Metafield value."
          },
          "reportable": {
            "type": "boolean",
            "description": "true = visible on RMAs and reports; false = only available through the API."
          }
        },
        "required": [
          "key",
          "value",
          "reportable"
        ]
      },
      "description": "The metafields to create."
    }
  },
  "required": [
    "rma_id",
    "metafields"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada18 herramientas