| search_productsB | Search products using Homebox query + local filters. Provide at least one filter. `name` is split into terms and each term
is queried in parallel when no other strict filter is provided.
|
| add_productA | Add a new product (or subitem) to Homebox with grouped parameters. Args:
identity: Required product identity {"name": str, "description": str, "asset_id": str}
location: Optional location {"id": str} or {"name": str}
parent_item: Optional parent item {"id": str} or {"name": str}.
If provided, the new item is created as a subitem and parent_item
takes precedence over location.
identifiers: Optional manufacturing info {"serial_number", "model_number", "manufacturer"}
purchase: Optional purchase details {"price": float, "seller": str, "date": str, "warranty_expires": str}
metadata: Optional extra info {"notes": str, "quantity": int, "tag_ids": [str], "tag_names": [str], "custom_fields": [{}]}
status: Optional flags {"archived": bool, "insured": bool, "lifetime_warranty": bool}
Behavior:
- Standalone product: provide a location (id or name).
- Subitem product: provide parent_item (id or name).
- If both parent_item and location are provided, parent_item wins.
|
| update_product_by_idA | Update an existing product with grouped parameters. Args:
item_id: UUID of the item to update (required)
identity: Optional identity updates {"new_name": str, "description": str, "asset_id": str}
location: Optional location change {"id": str} or {"name": str}
identifiers: Optional manufacturing updates {"serial_number", "model_number", "manufacturer"}
purchase: Optional purchase updates {"price": float, "seller": str, "date": str, "warranty_expires": str}
metadata: Optional metadata updates {"notes": str, "quantity": int, "tag_ids": [str], "tag_names": [str], "custom_fields": [{}]}
status: Optional flag updates {"archived": bool, "insured": bool, "lifetime_warranty": bool}
|
| list_locationsD | – |
| create_locationD | – |
| update_location_by_idD | – |
| add_bulk_productsD | – |
| list_tagsA | List Homebox tags from the current /api/v1/tags endpoint. |
| create_tagA | Create a Homebox tag if it does not already exist. |
| list_items_by_locationD | – |
| delete_product_by_idD | – |
| delete_location_by_idD | – |
| delete_bulk_productsD | – |
| create_maintenance_entry_for_productA | Create a maintenance entry for a specific Homebox product/entity. Use this when the user wants to log servicing, repairs, inspections,
scheduled maintenance, or maintenance cost for an item.
If only a product name is known, provide `product_name` and this tool
will resolve the product first, then create the maintenance entry.
If the product ID is known, provide `product_id` directly for faster execution.
At least one of `scheduled_date` or `completed_date` must be provided.
If neither is provided, both default to today's date.
Args:
product_id: UUID of the product/entity (preferred if known).
product_name: Name of the product to search for (used if product_id not provided).
name: Title/summary of the maintenance task (required).
description: Detailed description of the work performed or planned.
cost: Cost of the maintenance in numeric format (e.g., 150.50).
scheduled_date: Scheduled date for maintenance (ISO 8601: YYYY-MM-DD).
Defaults to today if neither date is provided.
completed_date: Completion date for maintenance (ISO 8601: YYYY-MM-DD).
Defaults to today if neither date is provided.
Returns:
Created maintenance entry dict on success, or error string on failure.
|
| list_maintenance_entriesA | List maintenance entries from Homebox. If `product_id` (or `product_name`) is provided, returns entries for
that product only. Otherwise aggregates maintenance entries across
all non-location entities (the global `/api/v1/maintenance` endpoint
is not available on Homebox v0.26+).
Args:
product_id: UUID of the product/entity. Preferred for speed.
product_name: Name of the product to resolve when `product_id`
is not provided.
Returns:
List of maintenance entries (each is a dict), or an error string.
|
| update_maintenance_entryA | Update an existing maintenance entry. Homebox v0.26+ only exposes maintenance entries per-product, so this
tool requires either `product_id` (preferred) or `product_name` to
locate the entry's owning entity before issuing the PUT.
Args:
entry_id: UUID of the maintenance entry to update (required).
product_id: UUID of the product/entity owning the entry.
product_name: Name of the product (used to resolve the entity
when `product_id` is missing).
name: New title for the maintenance task.
description: New detailed description.
cost: New cost value (numeric).
scheduled_date: New scheduled date (ISO 8601: YYYY-MM-DD).
completed_date: New completion date (ISO 8601: YYYY-MM-DD).
Returns:
Updated maintenance entry dict on success, or error string on failure.
|
| delete_maintenance_entryA | Delete a maintenance entry from Homebox. Use this to remove maintenance records that are no longer needed.
Args:
entry_id: UUID of the maintenance entry to delete (required).
Returns:
Success message on success, or error string on failure.
|