homebox-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOMEBOX_URL | Yes | Base URL of your Homebox instance (no trailing slash). | |
| HOMEBOX_TOKEN | Yes | Homebox API key (hb_…). | |
| HOMEBOX_LABEL_DIR | No | Where generate_label / qrcode save output. Default: current working directory. | |
| HOMEBOX_ALIAS_FIELD | No | Name of one custom field to treat as a stable item identifier. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_itemsA | Search inventory items by name/keyword and/or by tag names (AND of both when both given — e.g. everything tagged "power-tool"). Returns items (not locations) with their immediate location, assetId, and the alias custom field (if $HOMEBOX_ALIAS_FIELD is configured). Use get_item for full detail on one result. |
| get_itemA | Get full detail for one item by assetId (e.g. 000-028), alias custom field, or name (fuzzy fallback: first keyword match). Includes location path, serial, model, purchase, warranty, custom fields, tags, and attachments. |
| list_locationsA | Return the full location tree as an indented outline. |
| location_contentsA | List what is in a location (e.g. a tote or shelf), by location name. Returns the items directly in that location plus any sub-locations (their
names only — not their contents). Set |
| list_tagsA | List all tag (label) names. Set |
| warranties_expiringA | List items whose warranty expires in a date window, or items with a lifetime warranty.
|
| create_itemA | Create an inventory item and enrich it in one call.
|
| attach_documentA | Attach a document to an item OR a location. |
| list_attachmentsA | List an item's (or location's) attachments with their ids — the handle
needed by get_attachment / rename_attachment / delete_attachment.
|
| get_attachmentA | Download one attachment (see list_attachments for ids) to a local path,
so its content — e.g. an attached manual or receipt — can be read.
|
| rename_attachmentA | Update an attachment's title, type (manual/attachment/warranty/receipt/ photo), or primary flag (see list_attachments for ids). Only the args you pass change; the rest is re-sent as-is. |
| import_csvA | Bulk-create items and locations from a Homebox CSV (multipart import). This is the bulk creator for the photo-intake pipeline — one request imports everything, avoiding ~4 API calls per item. Recognized columns: HB.name, HB.location (path e.g. "Garage/Loft" — AUTO-CREATES the hierarchy), HB.tags (must already exist; see list_tags), HB.quantity, HB.serial_number, HB.model_number, HB.manufacturer, HB.notes, HB.purchase_price, HB.purchase_from, HB.purchase_time, HB.warranty_expires, HB.field. (custom fields). A location-only row (HB.location set, contents described elsewhere) creates just the location. After import, call finalize_photos if you attached photos. Returns the count of data rows submitted. |
| create_locationA | Create a LOCATION entity (e.g. a new tote/bin/shelf) to bootstrap a
new storage spot. |
| set_locationA | Edit a LOCATION's metadata (find it by current name or /-path): rename,
|
| set_warrantyA | Set warranty info on an existing item (assetId / alias field / exact name).
|
| set_fieldsA | Create or update custom fields on an existing item (assetId / alias field / exact name).
|
| set_identityA | Set manufacturer/model/serial on an existing item (assetId / alias field / exact name). Only the args you pass change; other fields are preserved. Use when a nameplate/label photo reveals a serial number or a model-number correction after the item was created. |
| move_itemA | Move an item to another location (assetId / alias field / exact name).
|
| set_itemA | General item editor (assetId / alias field / exact name): rename, edit description/notes/quantity, purchase info, insured/archived flags, and custom fields in one call. Only the args you pass are changed. Quantity-only changes go via a partial
PATCH; anything else uses a full-body PUT that preserves the rest of the
item (the 0.26 PUT-clears gotcha). |
| mark_soldA | Record that an item was sold (assetId / alias field / exact name):
price, buyer, YYYY-MM-DD date, notes — only the args you pass are set.
|
| duplicate_itemA | Duplicate an existing item (assetId / alias field / exact name), e.g.
"I bought a second one". |
| set_tagsA | Add, remove, or replace tags on an existing item (assetId / alias field / exact name).
|
| set_tagA | Create or edit a tag's own metadata — NOT what's tagged on an item (see
set_tags for that). Matches |
| delete_itemA | PERMANENTLY delete an item (assetId / alias field / exact name),
including its attachments. |
| delete_locationA | PERMANENTLY delete a location (name or /-separated path). |
| delete_tagA | PERMANENTLY delete a tag itself (it is removed from every tagged item;
the items survive). |
| delete_attachmentA | PERMANENTLY delete one attachment from an item or location (see
list_attachments for ids). |
| generate_labelA | Save a printable Homebox label PNG (QR + readable name) for a location
or item, e.g. to stick on a tote/bin. |
| qrcodeA | Save a raw QR-code JPEG encoding arbitrary |
| field_indexA | Return {field_value: assetId} for every entity that has the named
custom field — a one-pass index for DEDUPE before a bulk import (q does
not index custom fields, so this scans every entity). |
| finalize_photosA | Finalize after a bulk photo attach: ensure every entity with photos has a primary image, then generate any missing thumbnails. (Wraps the set-primary-photos and create-missing-thumbnails actions, which are always run as a pair.) |
| barcode_lookupA | Look up a UPC/EAN barcode → name/manufacturer/model (optional path for boxed goods). Thin wrapper over GET /products/search-from-barcode. |
| log_maintenanceA | Add a maintenance-log entry to an item (assetId / alias field / exact
name) — e.g. "changed the mower oil today" (completed_date) or "sharpen
blades in spring" (scheduled_date). Dates are YYYY-MM-DD; |
| list_maintenanceA | List maintenance entries — for one item (assetId / alias field / name)
or, with no identifier, across the whole inventory ("what maintenance is
due?"). |
| set_maintenanceA | Edit a maintenance entry (see list_maintenance for ids) — e.g. mark a scheduled entry completed by setting completed_date. Only the args you pass change; the rest of the entry is re-sent as-is (the update is a full PUT). |
| delete_maintenanceA | PERMANENTLY delete one maintenance entry (see list_maintenance for
ids). |
| inventory_statsA | Inventory statistics — the cheap way to answer "what's my inventory
worth?" without scanning items. |
| export_csvA | Export the whole inventory as a Homebox CSV (the complement of
import_csv; also a quick backup). Saves to |
| list_custom_fieldsA | Discover the custom-field schema actually in use: with no arg, all
custom-field NAMES across the inventory; with |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dgahagan/homebox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server