RentMy MCP by usefulapi

Search rental products, check prices and build carts in RentMy.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
87%
Naming quality
78%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'rentmy_list_products_in_category' name length outside 3-30 rangein rentmy_list_products_in_category
  • LOWTool 'rentmy_check_package_availability' name length outside 3-30 rangein rentmy_check_package_availability

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,052Tokens (tool definitions)
~1.4 KBTypical response size
Significant attention impact (2.38% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

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

Remote endpoints

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

What it can do

Tool inventory

Tools (17)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢rentmy_list_categories

List the store's product categories, with first and second level child categories and their UUIDs. RentMy: GET /categories.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_list_child_categories(category_uuid)

List the child categories under one category UUID. RentMy: GET /get/child-categories/{category_uuid}.

Input Schema

{
  "type": "object",
  "properties": {
    "category_uuid": {
      "type": "string",
      "minLength": 1,
      "description": "Category UUID from rentmy_list_categories."
    }
  },
  "required": [
    "category_uuid"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_list_products(page_no, limit, price_min, price_max, sort_by, ...)

List the store's products with pagination, optionally filtered by price range or purchase type. Needs the store location (from login). RentMy: POST /products/online.

Input Schema

{
  "type": "object",
  "properties": {
    "page_no": {
      "default": 1,
      "description": "Page number, starting at 1.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "limit": {
      "default": 20,
      "description": "Products per page (1-30).",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "price_min": {
      "description": "Lowest price to include.",
      "type": "string"
    },
    "price_max": {
      "description": "Highest price to include.",
      "type": "string"
    },
    "sort_by": {
      "description": "Sort field, as RentMy names it.",
      "type": "string"
    },
    "sort_dir": {
      "description": "Sort direction, as RentMy names it (the spec example is DSC).",
      "type": "string"
    },
    "purchase_type": {
      "description": "Purchase type filter, as RentMy names it (rent, sale, ...).",
      "type": "string"
    },
    "all": {
      "description": "Include all products, as RentMy's all flag.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_search_products(search, page_no, limit)

Search the store's products by text. Needs the store location (from login). RentMy: POST /search/products.

Input Schema

{
  "type": "object",
  "properties": {
    "search": {
      "type": "string",
      "minLength": 1,
      "description": "Text to search for (product name or keyword)."
    },
    "page_no": {
      "default": 1,
      "description": "Page number, starting at 1.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "limit": {
      "default": 20,
      "description": "Products per page (1-30).",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    }
  },
  "required": [
    "search"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_list_products_in_category(category_uuid, page_no, limit, tag_id, price_min, ...)

List the products in one category, with pagination and optional filters. RentMy: POST /category/products/{category_uuid}.

Input Schema

{
  "type": "object",
  "properties": {
    "category_uuid": {
      "type": "string",
      "minLength": 1,
      "description": "Category UUID from rentmy_list_categories."
    },
    "page_no": {
      "default": 1,
      "description": "Page number, starting at 1.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "limit": {
      "default": 20,
      "description": "Products per page.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "tag_id": {
      "description": "Tag ID filter.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "price_min": {
      "description": "Lowest price to include (whole number, per the spec).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "price_max": {
      "description": "Highest price to include (whole number, per the spec).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "purchase_type": {
      "description": "Purchase type filter (RentMy integer code).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "category_uuid"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_list_featured_products

List the products the store features on its front page. RentMy: GET /products/featured.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_get_product(product_uid)

Get one product's full details by its product UID. RentMy: GET /products/{product_uid}.

Input Schema

{
  "type": "object",
  "properties": {
    "product_uid": {
      "type": "string",
      "minLength": 1,
      "description": "Product UID from a product list or search."
    }
  },
  "required": [
    "product_uid"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_get_product_variant(variant_id)

Get one product variant's details by its variant ID. RentMy: GET /products/view/variant-product/{variant_id}.

Input Schema

{
  "type": "object",
  "properties": {
    "variant_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RentMy variant product ID (variants_products_id)."
    }
  },
  "required": [
    "variant_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_list_product_addons(product_id, required)

List the add-on products for one product. Needs the store location (from login). RentMy: GET /products/{product_id}/addons.

Input Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RentMy product ID."
    },
    "required": {
      "description": "Only required add-ons, as RentMy's required flag.",
      "type": "string"
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_get_price(product_id, variants_products_id, quantity, rental_type, rent_start, ...)

Price one rental for given dates and quantity, without changing the cart. Needs the store location (from login). RentMy: POST /get-price-value.

Input Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RentMy product ID."
    },
    "variants_products_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RentMy variant product ID (variants_products_id)."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "Quantity to rent."
    },
    "rental_type": {
      "type": "string",
      "minLength": 1,
      "description": "Rental type, as RentMy names it (the spec example is rent)."
    },
    "rent_start": {
      "type": "string",
      "description": "Rental start, \"YYYY-MM-DD HH:MM\" (RentMy format)."
    },
    "rent_end": {
      "type": "string",
      "description": "Rental end, \"YYYY-MM-DD HH:MM\" (RentMy format)."
    },
    "price_id": {
      "description": "Price rule ID, when a product has several.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "rental_duration": {
      "description": "Rental duration, as RentMy counts it.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "product_id",
    "variants_products_id",
    "quantity",
    "rental_type",
    "rent_start",
    "rent_end"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_check_package_availability(product_uid, start_date, end_date, variants)

Check whether a package product is available for given dates. Needs the store location (from login). RentMy: POST /package/{product_uid}/availability.

Input Schema

{
  "type": "object",
  "properties": {
    "product_uid": {
      "type": "string",
      "minLength": 1,
      "description": "Package product UID."
    },
    "start_date": {
      "type": "string",
      "description": "Rental start, \"YYYY-MM-DD HH:MM\" (RentMy format)."
    },
    "end_date": {
      "type": "string",
      "description": "Rental end, \"YYYY-MM-DD HH:MM\" (RentMy format)."
    },
    "variants": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Variant selection, as RentMy's variants query parameter."
    }
  },
  "required": [
    "product_uid",
    "start_date",
    "end_date",
    "variants"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_list_locations

List the store's pickup locations. RentMy: GET /locations/list.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rentmy_get_cart(cart_token)

Get the items and totals of one cart by its token. RentMy: GET /carts/{cart_token}.

Input Schema

{
  "type": "object",
  "properties": {
    "cart_token": {
      "type": "string",
      "minLength": 1,
      "description": "Cart token from add-to-cart or get-cart."
    }
  },
  "required": [
    "cart_token"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴rentmy_add_to_cart(product_id, variants_products_id, quantity, rental_type, rent_start, ...)

Add a product variant to a cart for the given dates. Leave token empty to start a new cart; the response carries the token. Does not check out. Needs the store location (from login). RentMy: POST /carts/add-to-cart.

Input Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RentMy product ID."
    },
    "variants_products_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RentMy variant product ID (variants_products_id)."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "Quantity to add."
    },
    "rental_type": {
      "type": "string",
      "minLength": 1,
      "description": "Rental type, as RentMy names it (the spec example is rent)."
    },
    "rent_start": {
      "type": "string",
      "description": "Rental start, \"YYYY-MM-DD HH:MM\" (RentMy format)."
    },
    "rent_end": {
      "type": "string",
      "description": "Rental end, \"YYYY-MM-DD HH:MM\" (RentMy format)."
    },
    "token": {
      "description": "Existing cart token. Omit to start a new cart.",
      "type": "string"
    },
    "driving_license_required": {
      "description": "Whether a driving licence is required for this item.",
      "type": "boolean"
    }
  },
  "required": [
    "product_id",
    "variants_products_id",
    "quantity",
    "rental_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴rentmy_update_cart_item(token, id, increment)

Change the quantity of one cart item by a step (for example 1 or -1). RentMy: POST /carts/update.

Input Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "minLength": 1,
      "description": "Cart token from add-to-cart or get-cart."
    },
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Cart ID (the id field of the cart)."
    },
    "increment": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Quantity change, positive or negative (RentMy's increment field)."
    }
  },
  "required": [
    "token",
    "id",
    "increment"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴rentmy_remove_cart_item(token, product_id, cart_item_id)

Remove one item from a cart. RentMy: POST /carts/cart-remove-item.

Input Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "minLength": 1,
      "description": "Cart token from add-to-cart or get-cart."
    },
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RentMy product ID."
    },
    "cart_item_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Cart item ID to remove."
    }
  },
  "required": [
    "token",
    "product_id",
    "cart_item_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴rentmy_apply_coupon(token, coupon, product_id, cart_item_id)

Apply a discount coupon to a cart. The spec also lists product_id and cart_item_id for this route; they are sent when given. RentMy: POST /carts/apply-coupon.

Input Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "minLength": 1,
      "description": "Cart token from add-to-cart or get-cart."
    },
    "coupon": {
      "type": "string",
      "minLength": 1,
      "description": "Coupon code."
    },
    "product_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "RentMy product ID."
    },
    "cart_item_id": {
      "description": "Cart item ID, when RentMy needs it for the coupon.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "token",
    "coupon"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded17 tools