Skip to main content
Glama
modellers

ConsignCloud MCP Server

by modellers

ConsignCloud MCP Server

A Model Context Protocol (MCP) server for the ConsignCloud API, enabling AI assistants to manage inventory, sales, accounts, and more in your consignment/retail business.

šŸš€ Quick Start: New to this project? See QUICK_START.md to get running in 5 minutes!

šŸ“š Documentation

Related MCP server: ebay-mcp

Features

This MCP server provides tools for:

Inventory Management

  • List, create, update, and delete items

  • Filter items by price, category, account, status, location

  • Get inventory statistics

  • Bulk edit items

  • Update item statuses

Sales Management

  • List and view sales

  • Void and refund sales

  • Filter sales by date, customer, location, status

  • Get sales trends and analytics

Account Management

  • Manage vendor/consignor accounts

  • View account balances and statistics

  • Track purchases and items per account

Additional Features

  • Manage item categories

  • Manage store locations

  • Create and manage batches of items

  • Search and suggestions across entities

Installation

  1. Clone this repository:

git clone <repository-url>
cd mcp-consigncloud
  1. Install dependencies:

npm install
  1. Create a .env file with your ConsignCloud API credentials:

cp .env.example .env
  1. Edit .env and add your API key:

CONSIGNCLOUD_API_KEY=your_api_key_here
CONSIGNCLOUD_API_BASE_URL=https://api.consigncloud.com/api/v1

Getting Your API Key

  1. Log in to your ConsignCloud account

  2. Navigate to Settings → Apps

  3. Enable the API & Webhooks app

  4. Click Add API Key

  5. Copy the generated API key to your .env file

Usage

The server supports two modes:

1. STDIO Mode (for Claude Desktop)

This is the default mode for integration with Claude Desktop and other MCP clients.

Development:

npm run dev

Production:

npm run build
npm start

2. HTTP/SSE Mode (for testing with MCP Inspector)

This mode runs an HTTP server with Server-Sent Events for easy testing.

Development:

npm run dev:http

Production:

npm run build
npm run start:http

With custom configuration (CLI flags override environment variables):

node dist/http-server.js --api-key YOUR_KEY --port 3001 --host localhost

With absolute path:

/opt/homebrew/bin/node /absolute/path/to/dist/http-server.js --api-key YOUR_KEY

The server will run on http://localhost:3000 (configurable via .env or CLI flags).

Testing with MCP Inspector

See TESTING.md for detailed instructions on testing with MCP Inspector.

Quick start:

# Option 1: HTTP/SSE mode
# Terminal 1: Start the HTTP server
npm run start:http

# Terminal 2: Launch MCP Inspector
npx @modelcontextprotocol/inspector http://localhost:3000/sse

# Option 2: stdio mode (uses .env file)
npx @modelcontextprotocol/inspector node /absolute/path/to/dist/index.js

# Option 3: stdio mode with environment variable
CONSIGNCLOUD_API_KEY=your_key npx @modelcontextprotocol/inspector node dist/index.js

Using with Claude Desktop

Add this to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

Recommended: Using .env file

{
  "mcpServers": {
    "consigncloud": {
      "command": "node",
      "args": ["/Users/administrators/Documents/Workspace/github/mcp-consigncloud/dist/index.js"]
    }
  }
}

Alternative: Inline environment variables

{
  "mcpServers": {
    "consigncloud": {
      "command": "node",
      "args": ["/Users/administrators/Documents/Workspace/github/mcp-consigncloud/dist/index.js"],
      "env": {
        "CONSIGNCLOUD_API_KEY": "your_api_key_here"
      }
    }
  }
}

See CLAUDE_DESKTOP_SETUP.md for detailed setup instructions.

Available Tools

Inventory Tools

  • list_items - List inventory items with filters

  • get_item - Get specific item details

  • create_item - Create new inventory item

  • update_item - Update existing item

  • delete_item - Delete (soft delete) an item

  • get_item_stats - Get inventory statistics

Sales Tools

  • list_sales - List sales with filters

  • get_sale - Get specific sale details

  • void_sale - Void a sale

  • get_sales_trends - Get sales analytics

Account Tools

  • list_accounts - List vendor/consignor accounts

  • get_account - Get specific account details

  • create_account - Create new account

  • update_account - Update existing account

  • get_account_stats - Get account statistics

Category & Location Tools

  • list_categories - List item categories

  • create_category - Create new category

  • list_locations - List store locations

Batch Tools

  • list_batches - List item batches

  • create_batch - Create new batch

  • update_batch_status - Change batch status

Utility Tools

  • search_suggest - Search across entities

Example Prompts

Once configured with Claude Desktop, you can use prompts like:

  • "List all inventory items under $50"

  • "Show me sales from last week"

  • "Create a new vendor account for John Doe"

  • "What are the top selling items?"

  • "Show me the current balance for account ABC123"

  • "Create a new batch for vendor XYZ"

API Documentation

For detailed API documentation, see CONSIGNCLOUD_API_SUMMARY.md

Currency Format

All monetary amounts are in the smallest denomination (cents for USD):

  • $10.00 = 1000 cents

  • $0.50 = 50 cents

Rate Limiting

The ConsignCloud API uses a leaky bucket algorithm:

  • Bucket capacity: 100 requests

  • Leak rate: 10 requests/second

  • Exceeding limit returns 429 status

Development

Project Structure

mcp-consigncloud/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts        # MCP server implementation
│   ā”œā”€ā”€ client.ts       # ConsignCloud API client
│   └── types.ts        # TypeScript type definitions
ā”œā”€ā”€ dist/               # Compiled JavaScript (generated)
ā”œā”€ā”€ .env.example        # Environment variable template
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
└── README.md

Building

npm run build

Watch Mode

npm run watch

Troubleshooting

API Key Issues

If you get authentication errors:

  1. Verify your API key is correct in .env

  2. Check that the API key hasn't been revoked in ConsignCloud

  3. Ensure the API & Webhooks app is enabled in your ConsignCloud settings

Connection Issues

If the server won't start:

  1. Check your .env file exists and contains valid values

  2. Verify network connectivity to api.consigncloud.com

  3. The HTTP server validates API connection on startup and shows clear error messages

HTTP/SSE Server Features

The HTTP server includes:

  • āœ… Startup validation - Tests API connection before accepting requests

  • āœ… CLI arguments - Override env vars with --api-key, --port, --host

  • āœ… Detailed errors - Comprehensive error messages with HTTP status codes

  • āœ… Session management - Proper SSE session handling

  • āœ… Health endpoint - /health for monitoring

  • āœ… Masked logging - API keys are partially hidden in logs

License

ISC

Support

For ConsignCloud API issues, contact: team@consigncloud.com For MCP server issues, please open a GitHub issue.

Available Tools

26 tools
calculate_account_metricsC

Calculate comprehensive metrics for a specific vendor/consignor account including current balance, inventory value, items available/sold, total sales revenue, and commission owed.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYesAccount ID (required)
date_fromNoFilter by items/sales created on or after this date (ISO 8601: YYYY-MM-DD)
date_toNoFilter by items/sales created on or before this date (ISO 8601: YYYY-MM-DD)
inventory_typeNoFilter by inventory type

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It describes what metrics are calculated but doesn't mention whether this is a read-only operation, if it requires specific permissions, how it handles date ranges, or what format the results come in. For a metrics calculation tool with 4 parameters and no annotations, this leaves significant behavioral questions unanswered.

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, efficient sentence that packs substantial information about what metrics are calculated. It's appropriately sized for the tool's complexity, though it could be slightly more structured by separating the metric list for better readability.

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 metrics calculation tool with 4 parameters, no annotations, and no output schema, the description is adequate but has clear gaps. It explains what's calculated but not how results are returned, what permissions are needed, or how it differs from sibling tools. The 100% schema coverage helps, but behavioral context is 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?

The schema has 100% description coverage, so parameters are well-documented in the schema itself. The description mentions date filtering ('including current balance...') which aligns with date_from/date_to parameters, but doesn't add meaningful semantic context beyond what's already in the schema descriptions. Baseline 3 is appropriate when schema does the heavy lifting.

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 calculates comprehensive metrics for a specific vendor/consignor account and lists the specific metrics included (current balance, inventory value, items available/sold, total sales revenue, commission owed). It distinguishes from obvious siblings like calculate_inventory_value and calculate_sales_totals by being more comprehensive, though it doesn't explicitly name them.

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 like calculate_inventory_value, calculate_sales_totals, or get_account_stats. It doesn't mention prerequisites, dependencies, or scenarios where this tool is preferred over other metrics-related tools.

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

calculate_inventory_valueB

Calculate total inventory value with comprehensive filtering and grouping. Returns total value, item count, average value, and optional breakdown by category, location, account, inventory type, or status.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status (available, sold, processing, removed)
categoryNoFilter by category ID
accountNoFilter by account ID
locationNoFilter by location ID
inventory_typeNoFilter by inventory type
tag_price_gteNoFilter items with price >= this value (in cents)
tag_price_lteNoFilter items with price <= this value (in cents)
date_fromNoFilter items created on or after this date (ISO 8601: YYYY-MM-DD)
date_toNoFilter items created on or before this date (ISO 8601: YYYY-MM-DD)
batchNoFilter by batch ID
group_byNoGroup results by field for detailed breakdown

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 carries the full burden of behavioral disclosure. It states the tool 'returns total value, item count, average value, and optional breakdown,' which covers output behavior. However, it lacks critical details like whether this is a read-only operation, performance implications of grouping, rate limits, or authentication requirements, leaving significant gaps for a tool with 11 parameters.

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 efficiently structured in two sentences: the first states the purpose and scope, and the second details the return values and grouping options. Every phrase adds value without redundancy, making it front-loaded and appropriately sized for the tool's complexity.

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 the tool's complexity (11 parameters, no annotations, no output schema), the description is moderately complete. It covers the purpose, filtering/grouping scope, and return values, but lacks behavioral details (e.g., read-only status, performance) and doesn't compensate for the absence of an output schema, leaving the agent with incomplete context for 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?

The description adds some value by mentioning 'comprehensive filtering and grouping' and listing breakdown options (e.g., 'by category, location, account, inventory type, or status'), which aligns with the 'group_by' parameter. However, with 100% schema description coverage, the input schema already documents all 11 parameters thoroughly, so the description doesn't significantly enhance parameter understanding beyond the baseline.

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's purpose: 'Calculate total inventory value with comprehensive filtering and grouping.' It specifies the verb ('calculate') and resource ('total inventory value'), making the function unambiguous. However, it doesn't explicitly differentiate from siblings like 'calculate_account_metrics' or 'calculate_sales_totals' beyond the resource focus, preventing a perfect score.

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 mentions 'comprehensive filtering and grouping' but doesn't specify prerequisites, compare to siblings (e.g., 'calculate_account_metrics'), or indicate when not to use it. This leaves the agent without contextual usage cues.

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

calculate_sales_totalsC

Calculate sales totals with filtering by date range, status, location, customer, payment type, and amount. Returns total revenue, tax, sale count, average sale value, and optional breakdown by status, location, or date period.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by sale status
locationNoFilter by location ID
customerNoFilter by customer account ID
date_fromNoFilter sales created on or after this date (ISO 8601: YYYY-MM-DD)
date_toNoFilter sales created on or before this date (ISO 8601: YYYY-MM-DD)
payment_typeNoFilter by payment type (cash, card, etc.)
total_gteNoFilter sales with total >= this value (in cents)
total_lteNoFilter sales with total <= this value (in cents)
group_byNoGroup results by field for detailed breakdown
date_intervalNoWhen group_by=date, aggregate by this interval (day, week, or month)

TDQS

C2.9/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 behavioral disclosure. While it mentions what the tool returns (revenue, tax, count, etc.), it doesn't address critical behavioral aspects like whether this is a read-only operation, potential performance impacts of complex filters, rate limits, authentication requirements, or error conditions. For a calculation tool with 10 parameters and no annotation coverage, this represents a significant transparency gap.

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 efficiently structured in two sentences that cover both the filtering capabilities and return values. It's appropriately sized for the tool's complexity, though it could be slightly more front-loaded by mentioning the core purpose more prominently before listing filter options.

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 calculation tool with 10 parameters, no annotations, and no output schema, the description provides adequate basic information about what the tool does and what it returns. However, it lacks important context about behavioral characteristics, performance considerations, and differentiation from sibling tools. The absence of an output schema means the description should ideally provide more detail about return formats, but it only gives a high-level overview of what metrics are returned.

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 description lists filtering dimensions (date range, status, location, etc.) and mentions the optional breakdown capability, which aligns with the input schema parameters. However, with 100% schema description coverage where each parameter is already well-documented in the schema, the description adds only marginal value beyond what's already structured. The baseline of 3 is appropriate since the schema does the heavy lifting for parameter documentation.

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's purpose as calculating sales totals with filtering capabilities, which is specific and actionable. However, it doesn't explicitly differentiate this from sibling tools like 'get_sales_trends' or 'get_account_stats' that might also involve sales data analysis, leaving room for ambiguity about when to choose this particular calculation tool.

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 like 'get_sales_trends' or 'list_sales'. It mentions filtering capabilities but doesn't specify scenarios where this calculation is preferred over other sales-related tools, leaving the agent without contextual usage instructions.

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

create_accountC

Create a new vendor/consignor account

ParametersJSON Schema
NameRequiredDescriptionDefault
first_nameNo
last_nameNo
companyNo
emailNo
phone_numberNo
default_splitNoDefault split (0-1)
default_inventory_typeNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a creation operation but doesn't mention permissions required, whether this is a mutating/destructive action, what happens on success/failure, or any side effects. For a creation tool with zero annotation coverage, this leaves critical behavioral context unspecified.

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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a tool with a straightforward purpose and is perfectly front-loaded with the essential information.

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 creation tool with 7 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what constitutes a 'vendor/consignor account', what happens after creation, or how parameters relate to the account type. The combination of missing behavioral context and poor parameter documentation makes this incomplete for effective tool use.

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

Parameters2/5

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

Schema description coverage is only 14% (only 'default_split' has a description), and the description provides no additional parameter information. It doesn't explain what 'vendor/consignor' means in relation to the parameters, nor does it clarify the purpose of fields like 'default_inventory_type' or 'company'. The description fails to compensate for the low schema coverage.

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 action ('Create') and the resource ('new vendor/consignor account'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this from sibling tools like 'update_account' or 'get_account' beyond the verb difference, which prevents a perfect score.

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 like 'update_account' or 'get_account', nor does it mention prerequisites or context for account creation. It simply states what the tool does without indicating appropriate scenarios or exclusions.

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

create_batchC

Create a new batch of items

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionNo
accountNoAccount ID

TDQS

C2.7/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 full burden. It states 'Create a new batch' which implies a write operation, but doesn't disclose behavioral traits like required permissions, whether it's idempotent, what happens on failure, or rate limits. This is a significant gap 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 a single, efficient sentence with no wasted words. It's appropriately sized and front-loaded, making it easy to parse quickly.

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's complexity as a write operation with no annotations, 2 parameters, and no output schema, the description is incomplete. It lacks details on behavior, return values, error handling, or how it fits with siblings, making it inadequate for safe and effective use.

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 50%, with only 'account' parameter documented. The description adds no parameter semantics beyond what's implied by 'batch of items', which doesn't clarify the purpose of 'description' or 'account'. Baseline 3 is appropriate as the schema partially covers parameters, but the description doesn't compensate for the coverage gap.

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

Purpose3/5

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

The description 'Create a new batch of items' clearly states the action (create) and resource (batch of items), which is adequate. However, it doesn't differentiate from sibling tools like 'create_account' or 'create_item' beyond specifying the resource type, making it somewhat vague about what makes this tool unique.

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. With siblings like 'create_account', 'create_item', and 'list_batches', the description lacks context on prerequisites, typical workflows, or exclusions, leaving usage unclear.

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

create_categoryC

Create a new item category

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCategory name

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 full burden for behavioral disclosure. 'Create a new item category' implies a write/mutation operation, but there's no information about permissions required, whether duplicates are allowed, what happens on success/failure, or any side effects. The description is minimal and lacks important behavioral context.

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 maximally concise - a single sentence with no wasted words. It's front-loaded with the essential information and doesn't include any unnecessary elaboration.

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 creation/mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after creation, what the return value might be, or any constraints on category creation. Given the complexity of a write operation, more context is needed for the agent to use this tool effectively.

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% with the single 'name' parameter fully documented in the schema. The description doesn't add any parameter information beyond what's in the schema, but with complete schema coverage, the baseline score 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?

The description clearly states the action ('Create') and resource ('item category'), making the purpose immediately understandable. It doesn't distinguish from sibling tools like 'create_item' or 'create_account', but it's specific enough to understand what this tool does.

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. With sibling tools like 'create_item' and 'list_categories' available, there's no indication of when category creation is appropriate versus item creation or when to check existing categories first.

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

create_itemC

Create a new inventory item

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesItem title
descriptionNoItem description
tag_priceYesPrice in cents
categoryNoCategory ID
accountNoAccount ID (vendor/consignor)
inventory_typeNoType of inventory
splitNoSplit percentage (0-1)
quantityNoQuantity
locationNoLocation ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create a new inventory item' which implies a write/mutation operation, but fails to mention permissions needed, whether creation is idempotent, error handling, or what happens on success (e.g., returns an item ID). This leaves significant gaps 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.

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words—'Create a new inventory item'—making it front-loaded and appropriately sized for its purpose. Every word earns its place without redundancy.

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 annotations and no output schema, the description is incomplete for a mutation tool with 9 parameters. It lacks information on return values, error conditions, or behavioral nuances like whether 'quantity' defaults to 1 if omitted. This leaves the agent with insufficient context for reliable 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%, with all 9 parameters well-documented in the schema (e.g., 'tag_price' as 'Price in cents', 'inventory_type' with enum values). The description adds no additional parameter semantics beyond the schema, so it meets the baseline of 3 for high schema coverage without compensating value.

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 inventory item' clearly states the action (create) and resource (inventory item), which is specific and unambiguous. However, it doesn't differentiate from sibling tools like 'create_account' or 'create_batch' beyond the resource name, missing explicit distinction in functionality scope.

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 like 'update_item' or 'create_batch', nor does it mention prerequisites such as required account or category setup. It lacks context for distinguishing among creation tools in the sibling list.

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

delete_itemB

Delete (soft delete) an inventory item

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesItem ID

TDQS

B3.3/5.0
Behavior3/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 behavioral disclosure. It mentions 'soft delete,' which implies the item is marked as deleted rather than permanently removed, adding useful context beyond the basic 'delete' action. However, it lacks details on permissions, reversibility, or effects on related data (e.g., sales or batches), leaving gaps in understanding 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the key action ('Delete') and includes the critical 'soft delete' qualification. There is no wasted verbiage, making it easy for an agent to parse quickly and accurately.

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 the tool's complexity (a mutation with no annotations or output schema), the description is minimally adequate. It clarifies the deletion type but omits details on return values, error conditions, or side effects. For a tool that modifies data, more context would be helpful, but it meets basic requirements.

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, with the 'id' parameter clearly documented. The description doesn't add any parameter-specific details beyond what the schema provides, such as format examples or validation rules. Since the schema does the heavy lifting, 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.

Purpose4/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 resource ('an inventory item'), making the purpose immediately understandable. It distinguishes from siblings like 'update_item' or 'void_sale' by specifying deletion. However, it doesn't fully differentiate from potential destructive operations without the 'soft delete' clarification being more prominent.

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 like 'update_item' for status changes or 'void_sale' for transaction reversals. It mentions 'soft delete' but doesn't explain implications or prerequisites, leaving the agent without context for appropriate selection.

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

get_accountC

Get details of a specific account

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAccount ID

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 of behavioral disclosure. It states this is a 'Get' operation, implying read-only behavior, but doesn't clarify permissions, rate limits, error handling, or response format. For a tool with zero annotation coverage, this is a significant gap in 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 a single, clear sentence with zero wasted words. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration, making it highly efficient.

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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'details' are returned, potential errors, or behavioral traits like idempotency. For a read operation with no structured support, more context is needed to fully guide the 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, with the 'id' parameter documented as 'Account ID'. The description adds no additional meaning beyond this, such as format examples or sourcing guidance. With high schema coverage, the baseline score of 3 is appropriate as the schema handles the heavy lifting.

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 ('Get') and resource ('details of a specific account'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_account_stats' or 'list_accounts', which would require more specific language about what details are retrieved versus aggregated statistics or multiple accounts.

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 doesn't mention siblings like 'list_accounts' for multiple accounts or 'get_account_stats' for aggregated data, nor does it specify prerequisites such as needing an account ID. This leaves the agent without contextual usage cues.

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

get_account_statsC

Get statistics for a specific account (balance, items, sales)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAccount ID

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 of behavioral disclosure. It states the tool retrieves statistics, implying a read-only operation, but doesn't cover aspects like authentication requirements, rate limits, error handling, or the format of returned data. This leaves significant gaps for a tool with no annotation support.

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, efficient sentence that front-loads the core purpose without unnecessary details. Every word contributes to understanding the tool's function, making it appropriately concise and well-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?

Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns complex statistical data. It mentions what statistics are retrieved but doesn't explain the return format, potential limitations, or how the data is structured, which is insufficient for full contextual understanding.

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, with the single parameter 'id' documented as 'Account ID'. The description adds no additional meaning beyond this, such as format examples or constraints. According to the rules, with high schema coverage, the baseline is 3 when no param info is added in the description.

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's purpose with a specific verb ('Get') and resource ('statistics for a specific account'), and it enumerates the types of statistics (balance, items, sales). However, it doesn't explicitly differentiate from sibling tools like 'get_account' or 'calculate_account_metrics', which keeps it from a perfect score.

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. With siblings like 'get_account', 'calculate_account_metrics', and 'get_sales_trends', there's no indication of context, prerequisites, or exclusions for selecting 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.

get_itemC

Get details of a specific inventory item by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesItem ID (UUID)

TDQS

C2.9/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 behavioral disclosure. While 'Get details' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, returns structured data or just basic fields, or what happens with invalid IDs. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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, efficient sentence that immediately conveys the core functionality. Every word earns its place with no redundancy or unnecessary elaboration. The structure is front-loaded with the essential information about what the tool does.

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 read operation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'details' are returned, the format of the response, error conditions, or authentication requirements. Given the lack of structured metadata, the description should provide more context about the tool's behavior and output.

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 description mentions retrieving by 'ID' which aligns with the single 'id' parameter in the schema. Since schema description coverage is 100% (with the parameter already documented as 'Item ID (UUID)'), the description adds minimal value beyond what the schema provides. The baseline score of 3 is appropriate when the schema does the heavy lifting for parameter documentation.

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 ('Get details') and resource ('specific inventory item'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'list_items' by specifying retrieval of a single item by ID rather than listing multiple items. However, it doesn't explicitly differentiate from 'get_item_stats' which might also retrieve item-related data.

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 doesn't mention when to choose 'get_item' over 'list_items' (for single vs multiple items), 'get_item_stats' (for detailed statistics vs basic details), or 'search_suggest' (for finding items when ID is unknown). There's also no mention of prerequisites like needing the item ID first.

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

get_item_statsC

Get overall inventory statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 of behavioral disclosure. It states 'Get' implies a read operation, but doesn't specify whether it requires authentication, has rate limits, returns aggregated data, or what format the statistics might be in. This is a significant gap for a tool with no annotation coverage.

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, efficient sentence with no wasted words. It's front-loaded and directly states the tool's purpose, making it easy to parse quickly.

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 complexity (a statistics tool with no parameters) and lack of annotations or output schema, the description is incomplete. It doesn't explain what 'overall inventory statistics' includes, how data is aggregated, or what the return values might be, leaving the agent with insufficient context for effective use.

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 tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description adds no parameter information, which is appropriate here. A baseline of 4 is applied since no parameters exist, and the description doesn't need to compensate for any gaps.

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

Purpose3/5

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

The description 'Get overall inventory statistics' clearly states the verb ('Get') and resource ('inventory statistics'), making the purpose understandable. However, it's somewhat vague about what 'overall' entails and doesn't differentiate from sibling tools like 'get_account_stats' or 'calculate_inventory_value', which could provide related metrics.

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 doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone among many sibling tools that handle inventory, accounts, and calculations.

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

get_saleC

Get details of a specific sale

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSale ID

TDQS

C2.9/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 behavioral disclosure but offers minimal information. It implies a read operation ('Get details'), which suggests it's likely safe and non-destructive, but doesn't specify permissions, rate limits, or response format, leaving significant gaps in understanding how the tool behaves.

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 with a single, direct sentence that front-loads the core purpose without any wasted words. It efficiently communicates the essential action, making it easy to parse and understand quickly.

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's simplicity (one parameter, no output schema) and lack of annotations, the description is incomplete. It doesn't explain what details are returned, potential errors, or how it fits into the broader context of sales management, leaving the agent with insufficient information for robust use.

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 description adds no meaning beyond the input schema, which has 100% coverage and clearly documents the single required 'id' parameter. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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's purpose with a specific verb ('Get') and resource ('details of a specific sale'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_item' or 'get_account', which follow a similar pattern, so it misses the highest score.

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 doesn't mention when to choose 'get_sale' over 'list_sales' for multiple sales or 'search_suggest' for broader queries, leaving the agent to infer usage from context alone.

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

list_accountsC

List vendor/consignor accounts with optional filters

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (default: 1000)
cursorNo
is_vendorNoFilter by vendor status

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'List' implies a read operation, it doesn't address important behavioral aspects like pagination behavior (cursor parameter suggests pagination but not explained), rate limits, authentication requirements, or what happens when no filters are applied. The description is too sparse for a tool with 3 parameters and no annotation coverage.

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 just 7 words, front-loading the core purpose immediately. Every word earns its place - 'List' (action), 'vendor/consignor accounts' (resource), 'with optional filters' (key capability). No wasted words or unnecessary elaboration.

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 list tool with 3 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain the return format, pagination behavior (implied by cursor but not explained), default behavior when no filters are applied, or how results are ordered. The description should provide more context given the lack of structured metadata.

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 67% (2 of 3 parameters have descriptions). The description mentions 'optional filters' which aligns with the 'is_vendor' parameter, but doesn't add meaningful semantic context beyond what the schema already provides. The cursor parameter lacks description in both schema and tool description, creating a gap. Baseline 3 is appropriate given moderate schema coverage.

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 ('List') and resource ('vendor/consignor accounts'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from other list tools on the server like 'list_batches', 'list_categories', 'list_items', 'list_locations', or 'list_sales', which all share similar list functionality for different resources.

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 minimal guidance with 'with optional filters' but doesn't specify when to use this tool versus alternatives like 'get_account' (for single account retrieval) or 'search_suggest' (for search functionality). No explicit when/when-not instructions or comparison to sibling tools are provided.

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

list_batchesC

List batches of items

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (default: 1000)
cursorNo
statusNo
accountNoFilter by account ID

TDQS

C2.7/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 full burden for behavioral disclosure. It only states the action ('List') without details on permissions, rate limits, pagination behavior (implied by 'cursor' parameter but not explained), or response format. This is inadequate for a tool with multiple parameters and no output schema.

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, efficient sentence with no wasted words. It is appropriately sized for a basic tool, though this conciseness comes at the cost of detail.

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 4 parameters, no annotations, no output schema, and 50% schema coverage, the description is incomplete. It lacks essential context such as behavioral traits, parameter explanations for 'cursor' and 'status', and differentiation from siblings, making it insufficient for effective agent use.

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 50% (2 of 4 parameters have descriptions). The description adds no additional parameter semantics beyond the schema, failing to compensate for the undocumented 'cursor' and 'status' parameters. Baseline is 3 since the schema provides some coverage, but the description does not enhance it.

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

Purpose3/5

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

The description 'List batches of items' states a verb ('List') and resource ('batches of items'), providing a basic purpose. However, it lacks specificity about what 'batches' entail (e.g., processing batches, inventory batches) and does not differentiate from sibling tools like 'list_accounts' or 'list_items', leaving ambiguity about scope.

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. It does not mention prerequisites, context for filtering (e.g., vs. 'list_items'), or exclusions, leaving the agent to infer usage based on tool name alone.

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

list_categoriesC

List item categories

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (default: 1000)
cursorNo

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 full burden for behavioral disclosure. 'List' implies a read operation, but the description doesn't mention pagination behavior (implied by 'cursor' parameter), rate limits, authentication needs, or what format the results will be in. This leaves significant gaps for a tool with parameters.

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, efficient phrase with zero wasted words. It's appropriately sized for a simple listing tool and front-loads the essential information without unnecessary elaboration.

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 annotations, 50% schema coverage, no output schema, and two parameters (one undocumented), the description is incomplete. It doesn't address behavioral aspects like pagination or result format, leaving the agent with insufficient context to use the tool effectively beyond basic purpose.

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 50% (only 'limit' has a description), and the description adds no parameter information beyond what the schema provides. The baseline is 3 because the schema covers half the parameters adequately, but the description doesn't compensate for the undocumented 'cursor' parameter or add any semantic context.

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 'List item categories' clearly states the verb ('List') and resource ('item categories'), making the tool's purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_items' or 'list_locations' beyond the resource type, which prevents a perfect score.

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. With siblings like 'list_items' and 'list_locations' available, there's no indication of context, prerequisites, or exclusions for selecting this specific listing tool.

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 with optional filters. Supports filtering by price, category, account, status, location, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results to return (default: 1000) pagination is we need more
cursorNoPagination cursor
statusNoFilter by status
categoryNoFilter by category ID
accountNoFilter by account ID
locationNoFilter by location ID
tag_price_gteNoFilter items with price >= this value (in cents)
tag_price_lteNoFilter items with price <= this value (in cents)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions filtering capabilities but doesn't cover critical aspects like pagination behavior (implied by 'limit' and 'cursor' parameters), rate limits, authentication needs, or what happens when no filters are applied. This leaves significant gaps for a tool with 8 parameters.

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, efficient sentence that front-loads the core purpose. However, 'and more' is vague and could be eliminated for better precision without losing essential information.

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 tool with 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain return format, pagination behavior, error conditions, or how filters combine. Given the complexity and lack of structured data, more context is needed for effective use.

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 schema fully documents all 8 parameters. The description adds minimal value by listing some filter types ('price, category, account, status, location, and more') but doesn't provide additional semantics beyond what's in the schema. Baseline 3 is appropriate when schema does the heavy lifting.

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 ('List') and resource ('inventory items') with scope ('with optional filters'), making the purpose specific. However, it doesn't explicitly distinguish this tool from sibling tools like 'list_accounts' or 'list_categories' beyond mentioning inventory items.

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 mentions 'optional filters' but provides no guidance on when to use this tool versus alternatives like 'get_item' for single items or 'search_suggest' for broader searches. It lacks explicit when/when-not instructions or named alternatives.

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

list_locationsC

List store locations

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (default: 1000)
cursorNo

TDQS

C2.7/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. 'List store locations' implies a read-only operation, but it doesn't specify whether this requires authentication, how results are returned (e.g., pagination details beyond the cursor parameter), rate limits, or any side effects. The description lacks critical behavioral context needed for safe and effective use.

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 three words, with zero wasted language. It's front-loaded with the core action ('List') and resource ('store locations'), making it easy to parse quickly. Every word earns its place by directly conveying the tool's function.

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 complexity (a listing operation with 2 parameters), no annotations, no output schema, and 50% schema coverage, the description is incomplete. It doesn't address return values, error conditions, or behavioral nuances. For a tool that likely returns structured location data, more context is needed to guide effective use.

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 50% (only 'limit' has a description, 'cursor' does not). The description 'List store locations' adds no parameter-specific information beyond what the schema provides. It doesn't explain what 'store locations' means in terms of data structure or how parameters interact with the listing. With partial schema coverage, the description fails to compensate for the undocumented 'cursor' parameter.

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

Purpose3/5

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

The description 'List store locations' clearly states the verb ('List') and resource ('store locations'), making the basic purpose understandable. However, it doesn't distinguish this tool from other list tools on the server (like list_accounts, list_items, etc.) by specifying what makes 'store locations' unique or different from other listing operations.

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. There are multiple sibling tools (e.g., list_accounts, list_items) that perform similar listing operations, but the description doesn't explain when store locations should be listed instead of other entities, nor does it mention any prerequisites or contextual triggers for using this specific tool.

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

list_salesB

List sales with optional filters

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of results (default: 1000)
cursorNoPagination cursor
statusNoFilter by status (completed, voided, returned)
customerNoFilter by customer account ID
locationNoFilter by location ID
created_gteNoFilter sales created after this date (ISO 8601)
created_lteNoFilter sales created before this date (ISO 8601)

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 carries full burden for behavioral disclosure. It mentions 'optional filters' but doesn't specify whether this is a read-only operation, if it requires authentication, what the return format looks like, or any rate limits. For a list tool with 7 parameters and no annotation coverage, this is inadequate.

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, efficient sentence with zero waste. It's appropriately sized and front-loaded, stating the core purpose immediately without unnecessary elaboration.

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 the tool's moderate complexity (7 parameters, no output schema, no annotations), the description is minimally adequate but incomplete. It covers the basic purpose but lacks behavioral context, usage guidelines, and output information that would be helpful 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 description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no additional parameter information beyond implying filtering exists. This meets the baseline of 3 where the schema does the heavy lifting, but the description doesn't compensate or add value.

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 'List sales with optional filters' clearly states the verb ('list') and resource ('sales'), and implies scope ('with optional filters'). However, it doesn't differentiate from sibling tools like 'get_sale' (singular) or 'get_sales_trends' (analytics-focused), missing specific sibling distinction that would warrant a 5.

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 like 'get_sale' for single sales or 'get_sales_trends' for analytics. It lacks explicit when/when-not instructions or named alternatives, offering only implied usage through the word 'list'.

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

search_suggestC

Search across accounts and items using full-text search. Returns matching entities with their full details.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (searches titles, descriptions, names, emails, SKUs, etc.)
typesNoEntity types to search. Options: "items", "accounts". Leave empty to search both.

TDQS

C2.9/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 behavioral disclosure. It mentions that it 'returns matching entities with their full details', which hints at output behavior, but lacks critical details like pagination, rate limits, authentication needs, error conditions, or whether it's a read-only operation. For a search tool with zero annotation coverage, this is insufficient for safe and effective use.

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 and front-loaded, consisting of just two sentences that efficiently convey the core functionality. Every word earns its place, with no redundancy or fluff, making it easy for an agent to parse quickly.

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 complexity of a search tool with no annotations and no output schema, the description is incomplete. It doesn't explain return values, error handling, performance implications, or how results are structured. While the purpose is clear, the lack of behavioral and output details makes it inadequate for confident tool invocation in varied contexts.

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 schema already documents both parameters ('query' and 'types') thoroughly. The description adds minimal value beyond the schema by implying the search scope ('accounts and items'), but doesn't provide additional syntax, format details, or examples. This meets the baseline of 3 when the schema does the heavy lifting.

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's purpose: 'Search across accounts and items using full-text search. Returns matching entities with their full details.' It specifies the verb (search), resources (accounts and items), and scope (full-text search). However, it doesn't explicitly differentiate from sibling tools like 'suggest_field_values' or 'list_accounts/list_items', which is why it doesn't reach a 5.

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 doesn't mention when to prefer this over 'list_accounts' or 'list_items' for filtered results, or how it differs from 'suggest_field_values'. There's no context about prerequisites, exclusions, or specific use cases, leaving the agent to infer usage from the purpose alone.

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

suggest_field_valuesB

Get auto-complete suggestions for a specific field (brand, color, size, tags, etc.) based on existing data.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesEntity type: items or accounts
fieldYesField name: For items: brand, color, size, description, tags, or custom field slug. For accounts: tags
valueYesPartial value to match (e.g., "vin" to find "Vintage Heritage")

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 carries full burden for behavioral disclosure. It mentions the tool 'gets' suggestions (implying read-only) and that they're 'based on existing data,' but doesn't cover important aspects like rate limits, authentication requirements, response format, or whether it performs any data modification. For a tool with 3 required parameters and no annotation coverage, 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, efficient sentence that clearly communicates the core functionality. It's appropriately sized for this tool's complexity and front-loads the essential information without unnecessary elaboration. Every word serves a purpose in explaining what the tool does.

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 the tool's moderate complexity (3 required parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but lacks important contextual information about when to use it, how results are returned, and behavioral constraints. Without annotations or output schema, the description should provide more complete guidance for proper tool 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?

The description adds some context about parameter semantics by mentioning example fields (brand, color, size, tags) and providing an example value match ('vin' to find 'Vintage Heritage'). However, with 100% schema description coverage, the schema already documents all parameters thoroughly. The description provides marginal additional value but doesn't significantly enhance understanding beyond what the schema provides.

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's purpose: 'Get auto-complete suggestions for a specific field... based on existing data.' It specifies the action (get suggestions), target (field values), and data source (existing data). However, it doesn't explicitly differentiate from the sibling 'search_suggest' tool, which appears to serve a similar suggestion function.

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 doesn't mention the sibling 'search_suggest' tool or explain what distinguishes them. There's no context about prerequisites, limitations, or appropriate use cases beyond the basic functionality stated.

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

update_accountC

Update an existing account

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
first_nameNo
last_nameNo
companyNo
emailNo
phone_numberNo

TDQS

C2.6/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. 'Update an existing account' implies a mutation operation, but it doesn't disclose behavioral traits such as required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields. This is a significant gap for a mutation tool with zero annotation coverage.

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, efficient sentence with zero waste. It's appropriately sized and front-loaded, making it easy to parse quickly.

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 complexity (a mutation tool with 6 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, error conditions, or parameter details, leaving critical gaps for the agent to understand and invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'account' but doesn't explain any of the 6 parameters (id, first_name, last_name, company, email, phone_number) or their semantics, failing to add value beyond the schema.

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

Purpose3/5

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

The description 'Update an existing account' clearly states the verb ('Update') and resource ('account'), which is better than a tautology. However, it doesn't specify what aspects of an account can be updated or differentiate this tool from sibling tools like 'update_item' or 'update_batch_status', making it somewhat vague.

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 doesn't mention prerequisites (e.g., needing an account ID), exclusions, or comparisons to tools like 'create_account' or 'get_account', leaving the agent with no usage context.

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

update_batch_statusC

Update batch status (draft or submitted)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBatch ID
statusYes

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 full burden. It states 'update' implying mutation, but doesn't disclose behavioral traits such as required permissions, whether changes are reversible, side effects (e.g., triggers workflows), or error conditions. This is inadequate for a mutation tool with zero annotation coverage.

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, efficient sentence with zero waste. It front-loads the core action and key details, making it easy to parse quickly. Every word earns its place without redundancy.

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 a mutation tool with no annotations, 50% schema coverage, and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., permissions, effects), parameter context (e.g., 'id' format), and expected outcomes. More information is needed for safe and effective use.

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 50% (only 'id' has a description, 'status' lacks one). The description adds value by specifying 'draft or submitted' for the status parameter, which clarifies the enum values beyond the schema. However, it doesn't explain the 'id' parameter further or provide context like format or sourcing, leaving gaps.

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 'update' and the resource 'batch status', with specific status values 'draft or submitted' mentioned. It distinguishes from siblings like 'create_batch' or 'list_batches' by focusing on status modification, though it doesn't explicitly contrast with other update tools like 'update_account' 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?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., batch must exist), exclusions (e.g., cannot update to certain statuses), or compare to sibling tools like 'void_sale' for status changes. Usage is implied only through the action described.

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

update_itemC

Update an existing inventory item

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesItem ID
titleNo
descriptionNo
tag_priceNoPrice in cents
categoryNo
splitNoSplit percentage (0-1)
quantityNo

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 of behavioral disclosure. It states 'Update an existing inventory item,' implying a mutation operation, but does not disclose permissions needed, whether changes are reversible, rate limits, or what the response looks like. This is inadequate for a tool with potential side effects.

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, efficient sentence with no wasted words, making it front-loaded and easy to parse. It directly conveys the core action without unnecessary details.

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's complexity (7 parameters, mutation operation) and lack of annotations and output schema, the description is insufficient. It does not explain return values, error conditions, or behavioral nuances, leaving critical gaps for an AI agent to understand and invoke the tool correctly.

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 43%, with only 'id', 'tag_price', and 'split' having descriptions. The description adds no parameter semantics beyond what the schema provides, such as explaining 'title' or 'quantity' usage. With moderate coverage, the baseline is 3, as the description does not compensate for the gaps.

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 'Update an existing inventory item' clearly states the verb ('Update') and resource ('inventory item'), making the purpose understandable. However, it does not differentiate from sibling tools like 'update_account' or 'update_batch_status', which also update resources, so it lacks specificity to distinguish among them.

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, such as 'create_item' for new items or 'delete_item' for removal. It mentions 'existing inventory item' but does not specify prerequisites, exclusions, or contextual cues, leaving usage unclear.

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

void_saleC

Void a sale

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSale ID

TDQS

C2.7/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. 'Void a sale' implies a destructive mutation (likely irreversible), but it does not specify permissions required, side effects (e.g., inventory restocking, financial adjustments), error conditions, or response format. For a mutation tool with zero annotation coverage, this is a significant gap in transparency, though not contradictory.

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 'Void a sale' is extremely concise—a single phrase with zero wasted words. It is front-loaded with the core action, making it easy to parse quickly. Every word earns its place by directly conveying the tool's purpose without unnecessary elaboration.

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's complexity as a destructive mutation with no annotations and no output schema, the description is incomplete. It fails to address critical aspects like what 'void' means operationally, what happens post-void (e.g., status changes, notifications), or error handling. For a tool that likely impacts financial or inventory systems, this lack of detail is inadequate for safe and effective use.

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, with the 'id' parameter documented as 'Sale ID'. The description adds no additional meaning beyond this, such as format examples (e.g., numeric vs. string) or validation rules. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description does not compensate but also does not detract.

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

Purpose3/5

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

The description 'Void a sale' clearly states the verb ('void') and resource ('sale'), providing a basic understanding of the tool's function. However, it lacks specificity about what 'void' entails (e.g., cancellation, reversal, or marking as invalid) and does not differentiate it from sibling tools like 'delete_item' or 'update_batch_status', which might involve similar destructive operations. This makes it vague but not misleading.

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 mention prerequisites (e.g., sale must be recent or unprocessed), exclusions (e.g., cannot void completed shipments), or related tools like 'get_sale' for verification. With sibling tools including various 'get', 'list', 'create', and 'update' operations, the lack of context leaves the agent uncertain about appropriate usage scenarios.

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. 26 tool updates
    • First observedcalculate_account_metrics
    • First observedcalculate_inventory_value
    • First observedcalculate_sales_totals
    • First observedcreate_account
    • First observedcreate_batch
    • First observedcreate_category
    • First observedcreate_item
    • First observeddelete_item
    • First observedget_account
    • First observedget_account_stats
    • First observedget_item
    • First observedget_item_stats
    • First observedget_sale
    • First observedget_sales_trends
    • First observedlist_accounts
    • First observedlist_batches
    • First observedlist_categories
    • First observedlist_items
    • First observedlist_locations
    • First observedlist_sales
    • First observedsearch_suggest
    • First observedsuggest_field_values
    • First observedupdate_account
    • First observedupdate_batch_status
    • First observedupdate_item
    • First observedvoid_sale

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific resources and actions, such as create_item vs. update_item or calculate_account_metrics vs. get_account_stats. However, there is some overlap between calculate_inventory_value and get_item_stats, which both provide inventory statistics but with different focuses, potentially causing minor confusion.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern throughout, such as create_account, list_items, update_item, and calculate_sales_totals. There are no deviations in naming conventions, making the set predictable and readable for agents.

Tool Count3/5

With 26 tools, the count is borderline high for a consignment management system, as it may feel heavy and could lead to complexity in tool selection. While it covers many operations, a more streamlined set might improve usability without sacrificing functionality.

Completeness5/5

The tool surface provides comprehensive CRUD and lifecycle coverage for the consignment domain, including accounts, items, batches, categories, sales, and locations. It supports creation, retrieval, updating, deletion, listing, calculation, and analytics, with no obvious gaps that would hinder agent workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

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/modellers/mcp-consigncloud'

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