Skip to main content
Glama
Supermaxman

Homebox MCP Server

by Supermaxman

Homebox MCP Server

npm version npm downloads License: MIT Work in Progress

alt text

A Model Context Protocol (MCP) server for interacting with Homebox, a self-hosted inventory management system.

Source Project: Homebox | Documentation

Overview

This MCP server enables AI assistants (like Claude or LM Studio) to interact with your Homebox instance using natural language. You can manage your inventory, create items, update locations, search for items, and more.

Want to use this with local AI? Check out our Local AI Stack Example for detailed setup instructions using LM Studio + Qwen 3 8B or other local LLMs with function calling support.

Related MCP server: Homebox MCP Server

Features

  • Item Management

    • List all inventory items with filtering and pagination

    • Get detailed information about specific items

    • Create new inventory items

    • Update existing items (including parent-child relationships)

    • Delete items

    • Search items by query

    • Parent-child item relationships (e.g., items stored inside other items)

    • Automatic web links for all items and parent items

  • Location Management

    • List all storage locations

    • Create new locations (with support for nested/hierarchical locations)

    • Automatic web links for all locations

  • Label Management

    • List all labels/tags

    • Create new labels with custom colors

  • Flexible URL Configuration

    • Separate LAN and WAN URL support

    • Automatic URL generation for items, locations, and labels

    • Switch between local and public URLs based on your network context

    • All API calls use efficient LAN access, web links adapt to your needs

Prerequisites

  • Node.js 18+ or later

  • A running Homebox instance

  • Either a Homebox API key (recommended) OR username and password

Installation

The easiest way to get started is to install the package directly from npm:

npm install -g homebox-mcp

Note: This is currently a proof-of-concept/work in progress. Features may change and improvements are ongoing.

Updating

To update to the latest version from npm:

Linux/macOS:

./update.sh

Windows:

update.bat

Or manually:

npm update -g homebox-mcp

Option 2: Install from Source

  1. Clone this repository:

git clone https://github.com/danielrosehill/Homebox-MCP-1125.git
cd Homebox-MCP-1125
  1. Install dependencies:

npm install
  1. Build the server:

npm run build

Configuration

The MCP server supports flexible URL configuration for both LAN and WAN access:

Environment Variables

  • HOMEBOX_LOCAL_URL - LAN URL for your Homebox instance (e.g., http://10.0.0.4:7745)

  • HOMEBOX_WAN_URL - (Optional) WAN/public URL for external access (e.g., https://homebox.yourdomain.com)

  • USE_LAN_API - (Optional) Use LAN for API calls (default: true). Set to false to use WAN for API

  • LAN_LINKS - (Optional) Use LAN for display links (default: false). Set to true to force LAN links

Authentication (choose one):

  • HOMEBOX_API_KEY - (Recommended) Persistent API key from Homebox. If provided, username/password are ignored.

  • HOMEBOX_USERNAME - Your Homebox username (email) - only needed if not using API key

  • HOMEBOX_PASSWORD - Your Homebox password - only needed if not using API key

Note: If both HOMEBOX_API_KEY and username/password are provided, the API key takes precedence. API keys are recommended as they don't require token refresh and provide more reliable authentication.

URL Selection Logic:

For API calls:

  • By default, uses LAN (USE_LAN_API=true) for faster performance

  • Set USE_LAN_API=false to use WAN for API calls

For web links:

  • By default, uses WAN if available (LAN_LINKS=false)

  • If WAN URL is not set, falls back to LAN

  • Set LAN_LINKS=true to force LAN links even when WAN is available

How It Works:

  • API calls default to LAN for speed (configurable with USE_LAN_API)

  • Web links default to WAN for shareability (configurable with LAN_LINKS)

  • This gives you full control over which URL is used for each purpose

Note: When using username/password authentication, the MCP server automatically handles login and token refresh. When using an API key, no token refresh is needed.

Screenshots For POC

LM Studio

alt text

Env variable configuration:

alt text

Env variables for LAN and WAN instance URLs:

alt text

MCP tools (LM Studio, Qwen 3)

alt text

Retrieve asset URL from asset ID:

alt text


Streamlit

alt text

alt text


Claude Code

Configure by adding array with env variables to .mcp.json (note the trailing dot)

alt text

alt text

alt text


MCP Configuration

{
  "mcpServers": {
    "homebox": {
      "command": "npx",
      "args": ["homebox-mcp"],
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_API_KEY": "your_api_key_here"
      }
    }
  }
}

With Username/Password (LAN Only)

{
  "mcpServers": {
    "homebox": {
      "command": "npx",
      "args": ["homebox-mcp"],
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_USERNAME": "your_email@example.com",
        "HOMEBOX_PASSWORD": "your_password"
      }
    }
  }
}

Alternative: Using Global Install

If you installed globally with npm install -g homebox-mcp:

{
  "mcpServers": {
    "homebox": {
      "command": "homebox-mcp",
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_API_KEY": "your_api_key_here"
      }
    }
  }
}

Or with username/password:

{
  "mcpServers": {
    "homebox": {
      "command": "homebox-mcp",
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_USERNAME": "your_email@example.com",
        "HOMEBOX_PASSWORD": "your_password"
      }
    }
  }
}

Using Source Installation

If you cloned the repository and built from source:

{
  "mcpServers": {
    "homebox": {
      "command": "node",
      "args": ["/path/to/Homebox-MCP-1125/dist/index.js"],
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_USERNAME": "your_email@example.com",
        "HOMEBOX_PASSWORD": "your_password"
      }
    }
  }
}

Given that Homebox is a home inventory system, using the LAN for API calls is preferred where available. Many folks also use WAN URLs to bind to stickers/NFC tags so that they can be read when not on the LAN.

For that reason, env parameters for both WAN and LAN URLs are provided, along with booleans for the preferred URL construction pattern for asset links.

This provides flexibility and accommodates users who want LAN for API but WAN for link presentation:

{
  "mcpServers": {
    "homebox": {
      "command": "npx",
      "args": ["homebox-mcp"],
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_WAN_URL": "https://homebox.yourdomain.com",
        "HOMEBOX_USERNAME": "your_email@example.com",
        "HOMEBOX_PASSWORD": "your_password"
      }
    }
  }
}
{
  "mcpServers": {
    "homebox": {
      "command": "npx",
      "args": ["homebox-mcp"],
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_WAN_URL": "https://homebox.yourdomain.com",
        "LAN_LINKS": "true",
        "HOMEBOX_USERNAME": "your_email@example.com",
        "HOMEBOX_PASSWORD": "your_password"
      }
    }
  }
}
{
  "mcpServers": {
    "homebox": {
      "command": "npx",
      "args": ["homebox-mcp"],
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_WAN_URL": "https://homebox.yourdomain.com",
        "USE_LAN_API": "false",
        "HOMEBOX_USERNAME": "your_email@example.com",
        "HOMEBOX_PASSWORD": "your_password"
      }
    }
  }
}

For LM Studio

  1. Open LM Studio

  2. Go to Settings → MCP Servers

  3. Add a new server with the following configuration:

    • Name: Homebox

    • Command: npx (or homebox-mcp if globally installed)

    • Args: homebox-mcp (if using npx; leave empty if using global install)

    • Environment Variables:

      • HOMEBOX_LOCAL_URL: http://10.0.0.4:7745

      • HOMEBOX_WAN_URL: https://homebox.yourdomain.com (optional, leave empty for LAN-only)

      • USE_LAN_API: true (optional, default: true - use LAN for API calls)

      • LAN_LINKS: false (optional, default: false - use WAN for links when available)

      • Authentication (choose one):

        • HOMEBOX_API_KEY: your_api_key_here (recommended)

        • OR both HOMEBOX_USERNAME and HOMEBOX_PASSWORD

For Other MCP Clients

Use the following configuration as a reference:

{
  "mcpServers": {
    "homebox": {
      "command": "npx",
      "args": ["homebox-mcp"],
      "env": {
        "HOMEBOX_LOCAL_URL": "http://10.0.0.4:7745",
        "HOMEBOX_WAN_URL": "https://homebox.yourdomain.com",
        "HOMEBOX_API_KEY": "your_api_key_here"
      }
    }
  }
}

Note: When both HOMEBOX_LOCAL_URL and HOMEBOX_WAN_URL are provided, the server automatically uses WAN URLs for web links. Set LAN_LINKS=true to force LAN links instead.

Usage Examples

Once configured, you can interact with your Homebox inventory using natural language:

Listing Items

"Show me all my inventory items" "List items in my garage location"

"Get the link for asset 003-168" "Get the link for asset 5451" "What's the link to my Thai cookbook?" "Get me the link for the bag of cables"

The server automatically uses Homebox's # prefix for asset ID searches, so queries like "5451" or "003-539" will find exact asset ID matches.

The server will return a direct clickable link like:

 DIRECT LINK: http://10.0.0.4:7745/item/cd8dee2f-9f5b-4f10-a05b-c952c1deafc5

Searching

"Find all items related to networking" "Search for items with 'laptop' in the name"

Creating Items

"Create a new item called 'Dell Monitor' in my office location" "Add a new inventory item: Samsung SSD 1TB, model 870 EVO, serial number ABC123" "Create a new item called 'USB Cable' inside the electronics box" (requires parent item ID)

Updating Items

"Update the quantity of item [ID] to 5" "Change the location of my laptop to the office"

Parent-Child Item Relationships

"Set the parent of [item ID] to [parent item ID]" "Move this item into that box" (requires item IDs) "Remove the parent from [item ID]" "Take this item out of its container"

Custom Fields

"Add a text field called 'ISBN' with value '978-0-123456-78-9' to item [ID]" "Add a number field called 'Weight' with value 2.5 to item [ID]" "Add a boolean field called 'Fragile' with value true to item [ID]" "Remove the field 'ISBN' from item [ID]"

Managing Locations

"List all my storage locations" "Create a new location called 'Workshop' under 'Garage'"

Managing Labels

"Show me all my labels" "Create a new label called 'Electronics' with color #0000FF"

Local AI Setup

Example config:

Available Tools

Items

  • list_items - List inventory items with optional filtering

  • get_item - Get detailed information about a specific item

  • get_item_link - Get direct link to an item by asset ID, name, or description (recommended for getting links!)

  • create_item - Create a new inventory item

  • update_item - Update an existing item

  • delete_item - Delete an item

  • search_items - Search for items using a query string

  • set_item_parent - Set or change the parent item for an item (creates parent-child relationship)

  • remove_item_parent - Remove the parent relationship from an item

  • add_item_field - Add or update a custom field on an item (supports text, number, boolean, time types)

  • remove_item_field - Remove a custom field from an item

Locations

  • list_locations - List all storage locations

  • create_location - Create a new location

Labels

  • list_labels - List all labels/tags

  • create_label - Create a new label

Development

Running in Development Mode

npm run dev

Building

npm run build

Running the Built Version

npm start

Example:

When you search for "003-168":
- The MCP server finds the item with assetId "003-168"
- Homebox returns both the assetId AND the UUID
- The URL is built using the UUID: http://10.0.0.4:7745/item/cd8dee2f-9f5b-4f10-a05b-c952c1deafc5

Database Schema: For detailed database schema information and ERD diagrams, see the docs/db-schema/ directory which includes both PDF and PNG exports of the full schema and items-specific schema.

License

MIT

Author

Daniel Rosehill

Available Tools

21 tools
add_item_attachmentA

Add an attachment (image, document, etc.) to an inventory item. The file_location can be either a URL (http:// or https://) to fetch the file from, or an absolute file path on the local filesystem (e.g., '/mnt/images/photo.png'). The filename is automatically extracted from the URL or path. Supported file types include images (jpg, png, gif, webp), documents (pdf, doc, docx), and other common formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesItem ID (UUID) to add the attachment to
file_locationYesURL (http:// or https://) to fetch the file from, OR an absolute file path on the local filesystem (e.g., '/mnt/photos/image.png', '/home/user/documents/manual.pdf')

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description explains filename auto-extraction and supported types, but does not disclose side effects, error handling, or authorization requirements. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loading the action, then providing essential details. No redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers input parameters, file types, and location formats. It could mention return behavior (e.g., success response), but is fairly complete for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining filename extraction, supported file types, and the dual nature of file_location (URL or path), which goes beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: adding an attachment to an inventory item. It specifies the sources (URL or local path) and lists supported file types, distinguishing it from sibling tools like create_item or add_item_field.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on file_location usage (URL or path) and filename extraction, but lacks explicit when-to-use or alternatives context. It does not contrast with sibling tools, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_item_fieldA

Add or update a custom field on an item. Custom fields can store additional metadata like ISBN, serial numbers, or any other custom data. Supports text, number, boolean, and time field types.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe ID (UUID) of the item to add/update the field on
fieldNameYesThe name of the custom field (e.g., 'ISBN', 'Color', 'Purchase Date')
fieldTypeYesThe type of field: 'text', 'number', 'boolean', or 'time'
valueYesThe value for the field. Type should match fieldType (string for text/time, number for number, boolean for boolean)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It mentions upsert behavior ('Add or update') and supported field types, but does not specify if existing fields are overwritten, any destructive implications, permissions, or rate limits. Partial transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main action, and every sentence adds value. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 required parameters and no output schema. The description does not mention return values, error handling, or what happens on success/failure. It covers field types but omits details like time format or validation rules, leaving gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for each parameter. The description adds example field names and types but does not significantly enhance understanding beyond the schema. It repeats schema information without providing new formatting or syntax details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Add or update' and the resource 'custom field on an item'. It distinguishes from siblings like remove_item_field by specifying custom fields, and provides concrete examples (ISBN, serial numbers) that clarify the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for storing additional metadata but does not explicitly state when to use this tool versus alternatives like update_item for standard fields. No when-not-to-use or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_itemB

Create a new inventory item in Homebox

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesItem name (max 255 characters)
descriptionNoItem description (max 1000 characters)
locationIdNoLocation ID (UUID) where the item is stored
parentIdNoParent item ID (UUID) if this item belongs to another item (e.g., item in a box)
labelIdsNoArray of label IDs (UUIDs) to associate with the item
quantityNoQuantity of the item (default: 1)
serialNumberNoSerial number of the item (max 255 characters)
modelNumberNoModel number of the item (max 255 characters)
manufacturerNoManufacturer of the item (max 255 characters)
notesNoAdditional notes about the item (max 1000 characters)
purchasePriceNoPurchase price of the item
soldPriceNoSold price of the item

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits. It only states 'Create a new inventory item' but omits details like required permissions, side effects (e.g., automatic assignment of IDs), or what happens upon creation (e.g., response format). This is insufficient for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence of six words. It is appropriately brief and to the point, with no wasted words. However, it could be expanded slightly to improve clarity without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 12 parameters, no output schema, and no annotations, the description is too sparse. It does not explain return values, required fields beyond 'name', or potential errors. For a complex creation tool, this leaves significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already explains each parameter's meaning. The tool description adds no additional semantic value beyond what the schema provides. Per guidelines, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and the resource ('a new inventory item in Homebox'). The name 'create_item' reinforces this. It distinctly identifies the tool's primary function, distinguishing it from sibling tools like 'add_item_attachment' or 'update_item'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not specify prerequisites, limitations, or context such as when to use 'add_item_attachment' for attachments or 'update_item' for modifications. Agents have no basis for choosing this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_labelC

Create a new label/tag

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLabel name
descriptionNoLabel description
colorNoLabel color (hex code)

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry burden. Fails to disclose behavior beyond creation (e.g., return value, side effects, permissions). Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise but misses essential information for a creation tool. The single sentence lacks context, making it under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, description should compensate. It omits return value, differentiation from siblings, and operational context, leaving the tool incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with brief descriptions. Tool description adds no extra meaning beyond schema, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Purpose is clear: 'Create a new label/tag' specifies verb and resource. It is distinct from sibling tools like list_labels and update_label, but lacks detail about what a label/tag represents in the system.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use create_label versus alternatives (e.g., update_label). No mention of prerequisites or context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_locationC

Create a new storage location

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesLocation name
descriptionNoLocation description
parentIdNoParent location ID (UUID) for nested locations

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only says 'Create a new storage location'. It does not mention idempotency, permissions, side effects, or whether the created location is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words, achieving maximum conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 3 parameters and no output schema, the description omits details about return value, validation, and error handling. For a creation tool, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters have descriptions in the schema (100% coverage), so the description adds no extra meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new storage location' clearly states the action and resource, distinguishing it from update_location, list_locations, and other sibling tools. It is specific but lacks further detail about the location's role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like create_item or update_location. No prerequisites or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_itemB

Delete an inventory item by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesItem ID (UUID)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only says 'Delete', which implies destruction, but lacks details on side effects (e.g., cascading deletes, irreversibility, permission requirements).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise at one sentence, front-loaded with verb and resource. Could benefit from slightly more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with no output schema or annotations, the description lacks completeness. It does not clarify permanence, impact on related data, or error conditions, which are critical for correct agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter 'id' has a clear description. The tool description adds no extra meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Delete' and the resource 'inventory item by ID', directly matching the tool name. It instantly distinguishes from sibling tools like create_item, get_item, update_item, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only states what the tool does, with no guidance on when to use it versus alternatives (e.g., remove_item_field, set_item_parent). No context on prerequisites or exclusions is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_itemA

Get detailed information about a specific inventory item by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesItem ID (UUID)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It correctly indicates a read operation with no side effects. It could mention authorization or existence checks, but for a simple get it is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff. It is front-loaded with the verb and immediately states the resource and condition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (1 parameter, no output schema), the description is complete. It conveys the purpose and required input without missing critical information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter is well-documented in the schema. The description adds only 'by ID', which adds minimal additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'specific inventory item', and the method 'by ID'. It distinguishes itself from sibling tools like create_item, delete_item, and search_items by focusing solely on retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have an item ID and need details. It does not explicitly state when not to use it or mention alternatives like list_items, but the context is clear enough for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_locationA

Get detailed information about a specific location by ID, including its children and parent.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLocation ID (UUID)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It mentions returning children and parent but lacks details on exact fields, authentication, or rate limits. For a read-only operation, this is adequate but could be improved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that conveys the core purpose without unnecessary words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description provides a reasonable overview of what is returned (details, children, parent). However, it could specify whether the response includes full objects or just IDs for children/parent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is well-covered (100%) with the 'id' parameter described as a UUID. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed information about a specific location by ID, including its children and parent. This distinguishes it from siblings like 'get_locations_tree' (tree structure) and 'list_locations' (list all).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing details of a specific location but provides no explicit guidance on when not to use or alternatives. For example, it doesn't mention that 'get_locations_tree' is better for hierarchical queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_locations_treeA

Get the hierarchical tree structure of all locations in Homebox. Shows parent-child relationships between locations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description discloses minimal behavioral traits—only that it shows parent-child relationships. It does not mention limits, performance implications, or how the tree is structured.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise at two sentences, front-loading the key point with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately states the output type but lacks details on the exact structure or whether all locations are always included. It covers minimal completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the schema coverage is trivially 100%. The description adds no parameter info since none exist, meeting the baseline of 4 for no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the hierarchical tree structure of all locations, distinguishing it from sibling tools like `get_location` (single) and `list_locations` (flat list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for hierarchical structure vs flat lists but lacks explicit guidance on when to use versus alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_itemsC

List inventory items from Homebox. Supports filtering by page number and location.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
pageSizeNoNumber of items per page (default: 50)
locationsNoFilter by location IDs (UUIDs)
labelsNoFilter by label IDs (UUIDs)
qNoSearch query to filter items

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only mentions supported filters but omits behavioral traits such as read-only nature, pagination behavior (defaults, limits), or whether results are sorted. The description does not adequately disclose the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the primary action. It is efficient, but could be restructured to include more context about filtering without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters and no output schema, the description is too sparse. It does not mention that results are paginated, what the output contains, or any defaults/limits for pagination. The agent lacks essential context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema by mentioning 'page number' and 'location' but does not elaborate on the other parameters (pageSize, labels, q) or their interplay.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists inventory items from Homebox, which distinguishes it from creation/deletion tools. However, it does not differentiate from sibling tools like search_items, which also list items with filters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus search_items or other listing tools. There is no mention of prerequisites, exclusions, or preferred scenarios, leaving the agent without decision support for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_labelsA

List all labels/tags in Homebox

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only says 'list', implying read-only but not explicitly stating idempotency, side effects, or return format. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no unnecessary words, perfectly concise for a simple list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a no-parameter tool, but lacks explicit mention of return type, pagination, or authentication. Could be improved with more context about what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and the schema coverage is 100%, so baseline is 4. The description adds no extra param info but doesn't mislead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'labels/tags in Homebox', distinguishing it from sibling tools like create_label and update_label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternative label tools (e.g., create_label, update_label) or any context about prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_locationsA

List all storage locations in Homebox

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits but only states the basic function. It omits details like return format, ordering, pagination, or any side effects. For a list operation, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no wasted words. It efficiently conveys the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool, the description covers the basic purpose. However, it lacks details about the output (e.g., array format, fields included) which would be helpful given the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero parameters, so the baseline is 4. The description adds context by specifying 'storage locations in Homebox', but no further parameter meaning is needed or provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all storage locations in Homebox, using a specific verb ('List') and resource ('all storage locations'). This distinguishes it from siblings like 'get_location' (single) and 'get_locations_tree' (hierarchical).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., 'get_locations_tree' for hierarchical view, 'get_location' for a specific location). The description does not mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_item_fieldB

Remove a custom field from an item by field name.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe ID (UUID) of the item to remove the field from
fieldNameYesThe name of the custom field to remove

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior. It does not mention what happens if the field does not exist, whether the operation is reversible, or any side effects. For a mutation tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence with no unnecessary words. It is front-loaded with the key action and resource. While brief, it could be slightly expanded to include usage context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 2 parameters and no output schema, the description is adequate but lacks important context such as error conditions or required permissions. It is minimally viable but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, with descriptions for both parameters. The description adds 'by field name' which is redundant with the schema's fieldName description. No additional value beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('remove'), the resource ('custom field from an item'), and the method ('by field name'). It effectively distinguishes from sibling tools like 'add_item_field' which performs the opposite operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'update_item' or deleting an item entirely. There is no mention of prerequisites, such as the item needing to exist or the field being present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_item_parentA

Remove the parent relationship from an item. This makes the item no longer a child of another item.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe ID (UUID) of the item to remove the parent from

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only describes the basic effect (removing parent), but does not mention permission requirements, reversibility, or consequences for child items. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences with no extraneous information. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description is minimally adequate. However, it lacks behavioral context such as prerequisites or side effects, which would enhance completeness given the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single parameter (itemId). The description adds no additional meaning beyond what the schema already provides, so it meets the baseline but does not exceed expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and the resource ('parent relationship from an item'). It effectively distinguishes from sibling tools like set_item_parent, which does the opposite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used when an item should no longer be a child, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among the many sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_barcodeA

Search for product information using a barcode (EAN/UPC). Returns product details from barcode lookup services.

ParametersJSON Schema
NameRequiredDescriptionDefault
barcodeYesThe barcode (EAN/UPC) to search for

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations; description states it's a read operation using external services but lacks details on caching, error handling, or latency implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, description does not specify return format or error outcomes; sufficient for basic understanding but incomplete for robust automation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter schema already describes barcode; tool description adds no extra meaning beyond what schema provides (coverage 100%).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Search' and resource 'product information using barcode (EAN/UPC)' distinguish from sibling tools like search_items which likely use different criteria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage when a barcode is available but does not explicitly mention when not to use or alternatives like search_items for non-barcode queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_itemsC

Search for items using a query string. Searches across item names, descriptions, and other fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query string
pageNoPage number for pagination (default: 1)
pageSizeNoNumber of items per page (default: 50)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only mentions searching across fields, but lacks details on ordering, result limits, or behavior. No annotations are provided to supplement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences are concise and front-loaded with the main action. No unnecessary words, but it could be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks information on return format, pagination behavior, and default ordering. Given no output schema and no annotations, this is insufficient for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The tool description adds minimal extra value beyond the schema, such as noting that search covers multiple fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'items', and specifies that it searches across names, descriptions, and other fields. It is distinct from sibling tools like search_barcode, which is barcode-specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like list_items. The description does not mention scenarios or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_item_parentA

Set or change the parent item for an item. This creates a parent-child relationship where the item becomes a child of another item (e.g., putting an item inside a box).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesThe ID (UUID) of the item to set the parent for (the child item)
parentIdYesThe ID (UUID) of the parent item that will contain this item

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It describes the effect (parent-child relationship) and analogy (inside a box). However, it does not specify whether the operation is idempotent, what happens if the parent does not exist, or side effects like overwriting existing parents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, direct, and contains no redundant information. The first sentence states the action, the second provides an analogy, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter mutation tool with no output schema, the description adequately explains the core operation. However, it could mention preconditions (e.g., both items must exist) and whether the tool replaces or appends parents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds context by naming itemId as the child and parentId as the container, plus an example, which clarifies the relationship beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Set or change the parent item for an item' and gives a concrete example ('putting an item inside a box'). It distinguishes from sibling tools like remove_item_parent by focusing on setting the relationship.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs. alternatives like remove_item_parent. The description implies usage for creating or changing a parent-child relationship, but does not mention when not to use it or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_itemB

Update an existing inventory item

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesItem ID (UUID)
nameNoItem name (max 255 characters)
descriptionNoItem description (max 1000 characters)
locationIdNoLocation ID (UUID) where the item is stored
parentIdNoParent item ID (UUID) if this item belongs to another item. Set to null to remove parent relationship.
labelIdsNoArray of label IDs (UUIDs) to associate with the item
quantityNoQuantity of the item
serialNumberNoSerial number of the item (max 255 characters)
modelNumberNoModel number of the item (max 255 characters)
manufacturerNoManufacturer of the item (max 255 characters)
notesNoAdditional notes about the item (max 1000 characters)
purchasePriceNoPurchase price of the item
soldPriceNoSold price of the item

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description fails to disclose behavioral traits such as side effects, auth requirements, or that only specified fields are updated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise but could include more essential context without sacrifice; it is acceptable for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Does not explain return value or behavior, and with 13 parameters, more usage context is needed for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3; the description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'update' and the resource 'existing inventory item', distinguishing it from sibling tools like create_item or delete_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives; lacks context for prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_labelB

Update an existing label's name, description, or color.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLabel ID (UUID)
nameNoNew label name
descriptionNoNew label description
colorNoNew label color (hex code)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description carries full burden. Merely states 'update' without disclosing any behavioral traits like required permissions, idempotency, side effects, or error handling (e.g., if label not found).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 8 words, front-loaded. Efficient but lacks room for important additional context; still above average for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple update tool with full schema coverage and no output schema. Missing details on return value, partial update behavior, or error states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description repeats parameter names from schema (name, description, color) without adding new semantics or usage hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (Update), the resource (an existing label), and the specific fields (name, description, or color). Differentiates from sibling tools like create_label and update_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides basic context (update an existing label) but lacks explicit when-to-use vs alternatives, such as create_label for new labels or delete_item for removal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_locationB

Update an existing location's name, description, or parent.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesLocation ID (UUID)
nameNoNew location name
descriptionNoNew location description
parentIdNoNew parent location ID (UUID). Set to null to remove parent.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden for behavioral context. It does not disclose side effects (e.g., impact on tree structure when changing parent), required permissions, error handling, or whether updates are partial or full. This is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the core purpose. No wasted words, and the verb is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool with 4 parameters and no output schema, the description is adequate but lacks details on partial update behavior, null handling for parentId, and response format. More context would improve usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with clear parameter descriptions. The description adds minimal extra meaning by summarizing the three optional fields. Baseline is 3 for high coverage; this is adequate but not exceptional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (update), the resource (existing location), and the specific fields (name, description, or parent). It effectively distinguishes this from sibling tools like create_location or get_location.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It merely states what it does without context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 21 tool updatesv1.2.0
    • First observedadd_item_attachment
    • First observedadd_item_field
    • First observedcreate_item
    • First observedcreate_label
    • First observedcreate_location
    • First observeddelete_item
    • First observedget_item
    • First observedget_item_link
    • First observedget_location
    • First observedget_locations_tree
    • First observedlist_items
    • First observedlist_labels
    • First observedlist_locations
    • First observedremove_item_field
    • First observedremove_item_parent
    • First observedsearch_barcode
    • First observedsearch_items
    • First observedset_item_parent
    • First observedupdate_item
    • First observedupdate_label
    • First observedupdate_location

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct operation or resource. There is no overlap between item, label, location, or barcode operations. Even similar tools like get_item and search_items serve different lookups (exact ID vs query).

Naming Consistency4/5

Most tools follow verb_noun pattern (list_items, create_item, update_item). Exceptions include add_item_field (add vs create) and remove_item_parent (remove vs delete). 'get_locations_tree' uses plural 'locations', and 'search_barcode' differs from 'search_items'. Overall consistent but with minor deviations.

Tool Count5/5

21 tools is well-scoped for a home inventory management server. Each tool serves a clear purpose without excess, covering items, locations, labels, attachments, fields, and barcode search.

Completeness5/5

The tool set provides full CRUD for items, locations, and labels, plus attachments, custom fields, parent relationships, tree hierarchy, item links, and barcode search. No obvious missing functionality for typical home inventory tasks.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for managing Homebox inventory via AI assistants, enabling item management, location organization, and label categorization.
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to query and explore Homebox home inventory data in real-time, with tools for searching items, listing locations and labels, and retrieving item details.
    5
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with a Homebox inventory system to search, create, update, and manage items, locations, and labels.
    -
  • A
    license
    A
    quality
    F
    maintenance
    Enables AI assistants to manage 3D printing inventory, filament spools, printers, projects, and print trackers through a self-hosted Print Vault instance.
    40
    AGPL 3.0

Latest Blog Posts

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/Supermaxman/Homebox-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server