Skip to main content
Glama
SamuelBalbas

tryton-stock-mcp

by SamuelBalbas

Tryton Stock MCP

Tryton Stock MCP is a read-only Model Context Protocol server for investigating product, lot, location and stock-movement history in Tryton 6.x.

It turns questions such as “audit the complete history of product X” into a structured investigation covering movement states, lots, incoming shipments, outgoing shipments, internal transfers, locations, official contextual quantities and derived diagnostic balances.

Safety model

  • The MCP tools expose no create, write, delete or workflow RPC methods.

  • Credentials are read only from environment variables.

  • Tool logs contain metadata only: tool name, status, duration and error type.

  • Record searches are restricted to product and stock-related models.

  • describe_model may inspect metadata for any model, but it does not read records.

  • Derived balances are investigative evidence, not official Tryton stock.

Use a dedicated Tryton account with read-only, least-privilege access. This project does not make a write-capable account safe. Avoid sending clinical or personal data to an MCP client unless its privacy properties are acceptable for your environment.

Related MCP server: Inventory Analysis MCP Server

Requirements

  • Python 3.10 or newer

  • Tryton 6.x with JSON-RPC enabled

  • Read access to product and stock models

pipx installs the MCP in its own isolated Python environment and exposes the tryton-stock-mcp command globally.

If pipx is not installed yet:

python -m pip install --user pipx
python -m pipx ensurepath

Open a new terminal after ensurepath so the installed commands are available.

Install directly from GitHub:

pipx install "git+https://github.com/SamuelBalbas/tryton-stock-mcp.git"

Or install from a local clone while developing:

git clone <your-fork-or-repository-url> tryton-stock-mcp
cd tryton-stock-mcp
pipx install .

Run the server:

tryton-stock-mcp

Upgrade or uninstall it:

pipx upgrade tryton-stock-mcp
pipx uninstall tryton-stock-mcp

When a PyPI release becomes available, installation can be shortened to pipx install tryton-stock-mcp.

Development installation

The repository-local workflow remains available for contributors and troubleshooting:

git clone <your-fork-or-repository-url> tryton-stock-mcp
cd tryton-stock-mcp
python -m venv .venv

Windows PowerShell:

.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"

Linux or macOS:

source .venv/bin/activate
python -m pip install -e ".[dev]"

Configure

The server reads its configuration from the process environment. .env.example is a reference file; it is not loaded automatically.

Required variables:

Variable

Purpose

TRYTON_DATABASE

Tryton database name

TRYTON_USER

Dedicated read-only user

TRYTON_PASSWORD

User password

Optional variables:

Variable

Default

Purpose

TRYTON_HOST

localhost

Tryton host

TRYTON_PORT

8000

JSON-RPC port

TRYTON_PROTOCOL

http

http or https

TRYTON_TIMEOUT

30

Request timeout in seconds

TRYTON_AUDIT_LOG_ENABLED

true

Enable metadata-only local logging

TRYTON_AUDIT_LOG

./logs/mcp_actions.jsonl

Log destination

TRYTON_ALLOW_INSECURE_REMOTE

false

Permit HTTP to a non-local host

Remote HTTP is rejected unless explicitly enabled. HTTPS is strongly recommended whenever Tryton is not running on the same machine.

Run from a development checkout

python -m tryton_stock_mcp

The server uses MCP stdio, so normal output must not be written to stdout.

MCP client configuration

With the recommended pipx installation, the client only needs the installed command and the Tryton environment variables:

{
  "mcpServers": {
    "tryton-stock": {
      "command": "tryton-stock-mcp",
      "args": [],
      "env": {
        "TRYTON_HOST": "localhost",
        "TRYTON_PORT": "8000",
        "TRYTON_DATABASE": "your_database",
        "TRYTON_USER": "readonly_auditor",
        "TRYTON_PASSWORD": "replace_me",
        "TRYTON_PROTOCOL": "http"
      }
    }
  }
}

If the MCP client does not inherit the shell PATH, use the absolute path reported by pipx environment or pipx list. For a development checkout, use the virtual environment's absolute Python path with the arguments -m tryton_stock_mcp.

Guided audit

The main tool is audit_product_history.

Inputs:

  • product_query: product name or code, or

  • product_id: exact Tryton product variant ID

  • lot_number: optional lot filter

  • include_cancelled: include cancelled movements, default true

Exactly one of product_query or product_id is required. When a query matches multiple products, the tool returns needs_product_selection with candidates; the caller must choose one before the full audit runs. Lots follow the same rule.

The successful result includes:

  • every matching movement, retrieved in bounded pages until exhaustion;

  • counts for done, draft, staging, assigned, cancelled and other states;

  • incoming, outgoing, internal and other workflow counts;

  • shipments and origins exposed by stock.move;

  • registered, missing and cross-product lot evidence;

  • pending movements and effective-date inconsistencies;

  • official product quantities for internal locations;

  • chronological derived balances and first-negative evidence;

  • a concise Markdown report plus complete JSON evidence.

Additional tools

The server also exposes focused tools for searching products, lots, locations and moves; finding pending moves; reconstructing ledgers; comparing products; querying official quantities; and generating generic product or move reports.

search_reference_globally is intentionally restricted to the approved stock models. describe_model is the only tool that accepts any Tryton model name, and it returns field metadata only.

Diagnostic limits

Tryton's official stock calculation depends on context, company, locations and date. The MCP reports official contextual quantity separately from balances it reconstructs by adding completed incoming movements and subtracting completed outgoing movements. Never use a reconstructed balance as an automatic inventory adjustment.

Development

python -m pip install -e ".[dev]"
python -m pytest

Tests use synthetic JSON-RPC responses and do not require a live database.

License

Apache License 2.0. See LICENSE.

Available Tools

23 tools
analyze_stock_move_root_causeB

Collect read-only causal context around one stock move.

ParametersJSON Schema
NameRequiredDescriptionDefault
move_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure. It explicitly says 'read-only', which is a valuable safety signal, but it does not describe what kind of causal context is collected, whether it performs heavy analysis, or what side effects (if any) to expect. The phrase is useful but minimal.

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 one short sentence with no filler or repetition. The key qualifiers 'read-only' and 'around one stock move' are front-loaded and contribute directly to the agent's understanding.

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 single-parameter read-only tool with an output schema, this is borderline adequate: an agent can infer the basic call shape. However, it lacks context about what 'causal context' means, how the result relates to the move, and how this tool differs from generate_move_root_cause_report, so the agent is left with meaningful ambiguity.

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, but it only loosely implies that move_id refers to a stock move. It does not explain the expected scope, format, or how the id is used to gather causal context. The schema's 'Move Id' title already conveys the only parameter, so the description adds little semantic 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 states a specific action ('Collect') and a resource ('read-only causal context around one stock move'), so an agent can tell this is an analysis/inspection tool rather than a CRUD operation. It does not explicitly distinguish itself from the sibling generate_move_root_cause_report, but the verb 'collect' and the singular move focus make the core purpose reasonably clear.

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 given about when to use this tool versus alternatives such as get_stock_move_detail or generate_move_root_cause_report. The read-only phrasing implies safety, but there is no explicit context for choosing this tool over its siblings.

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

audit_product_historyB

Audit a product's complete stock history by name, code or ID.

If a name or lot matches multiple records, the result asks the caller to choose one candidate before the full audit runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
lot_numberNo
product_idNo
product_queryNo
include_cancelledNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/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 adds genuine value by revealing the two-phase interaction: the caller is asked to pick one candidate before the full audit runs. However, it never explicitly states that the operation is read-only/non-destructive, nor what happens when no lookup parameter is supplied.

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?

Two sentences with zero filler: the first front-loads the purpose and lookup modes, the second discloses the disambiguation behavior that materially affects how the agent should drive the interaction. Every phrase earns its place.

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

Completeness3/5

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

The output schema covers return values and the multi-step candidate-selection flow is described, but the tool has 4 optional parameters with zero required and the description gives no hint of what happens with no arguments, how the candidate selection output is presented, or what include_cancelled controls. It is minimally viable but leaves clear gaps.

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 carry the parameter meaning. It implies a mapping of product_query to name/code, product_id to ID, and lot_number to lot, but does not name the parameters or state how they combine, and one parameter, include_cancelled (default true), is entirely unexplained. An agent cannot judge whether to override the default or what its effect on the audit results is.

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 uses a specific verb ('audit') with a specific resource ('a product's complete stock history') and enumerates the lookup methods (name, code, or ID). The 'complete' qualifier and the audit verb reasonably differentiate it from search, summarize, and report-generation siblings, though it never explicitly names any sibling.

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 given on when to choose this tool over closely related siblings such as search_products, get_product_detail, search_stock_moves, reconstruct_product_stock_ledger, or generate_product_stock_audit_report. The candidate-selection note describes a behavioral consequence of ambiguous matches, not a usage decision, and no alternative conditions or exclusions are stated.

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

compare_products_stock_historyC

Compare movement histories for multiple product variants.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
product_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/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 behavioral disclosure burden. It only states that histories are compared; it does not disclose whether the tool is read-only, what the comparison output looks like, how limit affects results, or any other behavioral traits beyond the name.

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 front-loaded sentence with no redundancy. It is concise and readable, though the brevity comes at the cost of important behavioral and parameter context.

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

Completeness3/5

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

The tool has a simple flat parameter set and an output schema, so a minimal description can be adequate. Still, the description leaves gaps around output semantics and limit behavior that an agent would likely need to resolve before invoking the tool 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%, and the description does not compensate. 'Multiple product variants' loosely implies product_ids, but limit is entirely unexplained, and there is no clarification of ID format, array size expectations, or limit behavior.

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 states a specific verb ('Compare') and resource ('movement histories') with a target ('multiple product variants'). It is reasonably distinguishable from single-product history siblings like audit_product_history, though it doesn't explicitly differentiate itself.

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?

There is no guidance on when to use this tool versus alternatives such as audit_product_history or get_product_detail. No exclusions, prerequisites, or selection criteria are provided, so an agent must infer usage from the name alone.

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

describe_modelA

Describe fields for any model; this returns metadata, not records.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/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 behavioral disclosure burden. It does disclose a key behavior—returns metadata, not records—but does not mention error handling, model name matching rules, or access implications. This is adequate but not comprehensive.

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

Conciseness5/5

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

The description is one concise sentence with no filler. The core purpose and the key metadata-versus-records distinction are front-loaded and immediately actionable.

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

Completeness4/5

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

This is a low-complexity introspection tool with one parameter and an output schema available, so the return format does not need to be explained. The description covers the essential distinction. It could be slightly more complete with model-name format guidance, but for this simple tool it is largely sufficient.

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 0%, so the description must help clarify the model_name parameter. Saying 'any model' adds value by indicating the parameter is a model identifier rather than a fixed enum. Still, it does not specify naming conventions, accepted model types, or example values.

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

Purpose5/5

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

The description states a clear verb and resource: 'Describe fields for any model'. It also explicitly distinguishes itself from record-returning tools by adding 'this returns metadata, not records', which prevents confusion with sibling detail tools.

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

Usage Guidelines4/5

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

The description gives clear usage context by contrasting metadata with records, which implies this tool is for schema/field introspection rather than data retrieval. However, it does not explicitly name alternatives or state when not to use the tool.

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

find_negative_lot_location_balancesC

Find negative derived balances across products, lots and locations.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 the full behavioral disclosure burden. It implies a read-only search but does not explain what 'derived' means, whether balances are computed on demand, how results are grouped, or any operational limitations.

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, tightly worded sentence with no filler. The main verb and resource are front-loaded, making it easy to scan and process.

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?

Although the output schema covers return shape and the parameter list is minimal, the lack of annotations and sparse description leave significant gaps: no usage context, no definition of 'derived', no differentiation from negative-stock report tools, and no operational guidance.

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?

The input schema has 0% description coverage, and the description does not explain product_ids semantics, why it is required, or how it filters the results. It mentions 'products' generically but adds no meaningful parameter-level guidance.

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 uses a specific verb ('find') and names a concrete resource ('negative derived balances across products, lots and locations'). It clearly indicates a query operation, though 'derived' is somewhat vague and the tool is not explicitly differentiated from similar siblings like generate_product_negative_stock_report.

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 about when to use this tool versus alternatives such as generate_product_negative_stock_report, summarize_product_location_flows, or find_non_done_moves. There are no exclusions, prerequisites, or context clues beyond the name itself.

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

find_non_done_movesB

Find moves that are neither done nor cancelled.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
lot_idNo
product_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does clearly state the core selection behavior—only moves that are neither done nor cancelled—but it says nothing about ordering, limit behavior, filter combination, or whether the operation is read-only, leaving those details to the schema and 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.

Conciseness4/5

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

The description is one terse sentence with no filler, and the core predicate is front-loaded. Its brevity is an asset, though it comes somewhat at the expense of parameter and usage context.

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

Completeness3/5

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

The tool is simple, all parameters are optional and self-describing, and an output schema exists, so the description need not expand on return values. Still, the absence of any usage direction and parameter semantics leaves the agent to make assumptions against a large sibling list, making it adequate but not complete.

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% and the description does not mention any parameter. It does not explain that limit caps the result set or that lot_id/product_id narrow the moves by lot or product, so the description fails to compensate for the undocumented schema.

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 names a specific verb ('Find') and resource ('moves') and adds a precise status condition ('neither done nor cancelled'), so an agent can tell what subset is returned. It does not explicitly say these are stock moves or contrast with a sibling like search_stock_moves, but the status filter makes the intent clear enough.

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 gives no guidance on when to call this tool versus alternatives such as search_stock_moves or get_stock_move_detail. No exclusions or preferred scenarios are mentioned, so the agent must infer from the tool name and sibling context when this is the right choice.

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

generate_move_root_cause_reportB

Return JSON evidence and Markdown for one stock move investigation.

ParametersJSON Schema
NameRequiredDescriptionDefault
move_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates the tool returns JSON evidence and Markdown, which suggests a read-only reporting operation, but it does not disclose side effects, permissions, input prerequisites, or any other behavioral characteristics that an agent should know.

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, tightly written sentence that front-loads the output format and scope. Every word contributes meaning, and there is no redundancy or filler.

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

Completeness3/5

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

The tool is relatively simple: one required parameter and an output schema. The description states what it returns and that it targets one stock move. However, without usage guidance or behavioral details, an agent may not know when to choose this over the many sibling investigation/report tools. It is adequate but not complete.

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 0% description coverage for move_id, and the description only indirectly connects the parameter to the investigation by mentioning 'one stock move.' This adds a small amount of context beyond the bare type/title, but it does not fully compensate for the missing schema documentation. The single parameter is simple and self-explanatory, so the modest semantic contribution is adequate.

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 names a specific action ('Return JSON evidence and Markdown') and a specific scope ('for one stock move investigation'). It is clear and not a tautology, and it distinguishes this report-level tool from product-level report siblings. However, it does not explicitly differentiate itself from the similarly named analyze_stock_move_root_cause.

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?

There is no explicit guidance on when to use this tool versus alternatives like analyze_stock_move_root_cause, get_stock_move_detail, or the other report generators. The phrase 'for one stock move investigation' implies a narrow use case, but no conditions, exclusions, or alternatives are stated.

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

generate_product_negative_stock_reportC

Return JSON evidence and Markdown for negative derived balances.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceNo
product_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/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 behavioral burden. It only states the response format and general subject, but does not disclose whether the operation is read-only, how balances are derived, what data sources are involved, or any side effects. 'Return' weakly implies non-mutation, but that is not explicit enough.

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 front-loaded sentence with no filler, and the primary action and output format appear immediately. However, it is arguably too terse given the amount of missing context, so it is structurally clean but not fully appropriately sized.

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

Completeness2/5

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

The definition is incomplete for safe tool selection: it lacks usage guidance among 23 siblings, read-only or safety qualification, and any parameter semantics beyond the raw schema. Even though the input schema is simple and an output schema exists, the description does not provide enough context for an agent to know when and how to invoke this tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not mention product_ids or the optional reference parameter at all. The schema only provides types and titles, so the description adds no meaning about what product identifiers should be passed, what 'derived balances' means, or how the reference parameter is used.

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 states a specific output action: returning JSON evidence and Markdown for negative derived balances. It clearly identifies the subject matter, though it does not explicitly differentiate itself from related sibling tools like find_negative_lot_location_balances or generate_product_stock_audit_report.

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 about when to use this tool versus the many related sibling tools for stock moves, balances, and audit reports. The phrase 'negative derived balances' is the only implied use case, but there are no explicit conditions, exclusions, or alternatives.

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

generate_product_stock_audit_reportC

Return a comparative stock audit as JSON and Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceNo
product_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/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 disclosing behavior. It only says the tool returns JSON and Markdown and does not mention whether the operation is read-only, how the audit is computed, what data sources are involved, or what the output structure contains. 'Return' implies read-only, but that is inferred rather than stated.

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

Conciseness3/5

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

The description is concise and front-loaded with the action and output formats, but it is concise at the expense of substance. It gets credit for being short and direct, yet the under-specification of the comparison semantics and parameters means the sentence does not do enough work.

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 no annotations, low schema coverage, and many closely related sibling tools, the description is not complete enough. It does not explain what the comparative audit contains, what inputs mean, or how this report differs from similar report generators, leaving the agent to guess at the intended use.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain either parameter. 'product_ids' is somewhat inferable from its name and type, but 'reference' is entirely unexplained: it could be a filter, a label, or something else, and the agent has no way to know how to set it correctly.

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 states the verb ('Return') and the resource ('a comparative stock audit') and notes the output formats, but it never defines what 'comparative' means. It is unclear whether the audit compares products, time periods, or expected vs. actual stock, which is needed to distinguish it from sibling tools like compare_products_stock_history and audit_product_history.

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?

There is no guidance about when to use this tool versus the many sibling reporting/audit tools. With alternatives like generate_product_negative_stock_report, compare_products_stock_history, and audit_product_history, the description should explicitly indicate when this audit report is preferred or how it differs, but it does not.

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

get_location_detailB

Return relevant information for one stock location.

ParametersJSON Schema
NameRequiredDescriptionDefault
location_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. 'Return' indicates a read-only operation, which is the main behavioral trait an agent needs to know. However, the description does not mention edge cases, errors, or any scope limitations beyond 'relevant information.'

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, front-loaded sentence with no filler or repetition. It is concise, though 'relevant information' is vague and could be replaced with a more precise field list or pointer to the output schema.

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

Completeness3/5

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

For a simple one-parameter lookup with an output schema, the description provides the minimum viable context. It lacks explicit usage guidance and parameter explanation, but an agent can likely invoke it correctly with location_id and interpret the output via the output schema.

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

Parameters1/5

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

Schema description coverage is 0% and the description never mentions location_id, so it adds no meaning beyond the parameter's name and type. For a required integer ID, the schema's 'Location Id' title is minimal, and the description fails to compensate for this gap.

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 uses a specific verb and resource: 'Return relevant information for one stock location.' The 'one' qualifier distinguishes it from search_locations, but 'relevant information' is vague about what fields are returned.

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

Usage Guidelines3/5

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

Usage is implied by the tool name and the 'one stock location' phrasing: an agent should use this when it needs details for a single location by ID. There is no explicit guidance about when to prefer search_locations or sibling detail tools, but the intended context is reasonably inferable.

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

get_lot_detailC

Return identifying information for one stock lot.

ParametersJSON Schema
NameRequiredDescriptionDefault
lot_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The description frames this as returning information, so an agent can infer a read-only operation. However, with no annotations provided, it does not disclose error behavior, authorization needs, or what 'identifying information' excludes.

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?

A single sentence with no unnecessary words; it front-loads the action and the resource. Every word earns its place.

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 one-parameter lookup with an output schema, the basic invocation is inferable: call with lot_id. But the description omits when to choose this over search_lots and any behavioral caveats, making it only minimally complete.

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%, and the description only loosely ties 'one stock lot' to the required lot_id. It does not add meaningful semantic detail beyond the schema's 'Lot Id' title and integer type.

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?

States a clear action ('Return') and a specific resource ('identifying information for one stock lot'). The 'one stock lot' scope helps distinguish it from search_lots, though the exact fields returned are not specified.

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 gives no guidance on when to use this tool versus alternatives like search_lots or get_product_detail. The required lot_id implies a known-ID lookup, but no explicit context or exclusions are provided.

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

get_official_product_quantityC

Read Tryton's contextual product quantity for one location.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYes
location_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 only states that the tool reads a quantity, without explaining what 'contextual' means, how context is resolved, what quantity form is returned, or any edge cases such as zero or unavailable quantities.

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, front-loaded sentence with no filler. Every word contributes to identifying the operation and the main object of concern.

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

Completeness3/5

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

The tool is simple with two obvious parameters and an output schema, so a very short description can be acceptable. However, the vagueness of 'contextual product quantity' leaves meaningful gaps about how the quantity is determined and when this tool is the right choice among many similar stock-related siblings.

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 should compensate, but it adds no parameter semantics beyond what the input schema already shows. The parameter names product_id and location_id are fairly self-explanatory, but the description does not clarify how they map to Tryton's contextual quantity semantics.

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 identifies a read operation ('Read') and specifies the resource: Tryton's contextual product quantity for one location. This distinguishes it from sibling tools like get_product_detail or get_tryton_context, though the meaning of 'contextual' could be more explicit.

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 for when to use this tool versus sibling alternatives such as get_product_detail, get_tryton_context, or summarize_product_location_flows. The name implies a direct quantity lookup, but the description does not state conditions, exclusions, or alternatives.

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

get_product_detailB

Return relevant fields for one product variant.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full behavioral burden. 'Return relevant fields' lightly implies a read-only operation, but it does not disclose auth requirements, potential errors, output structure, or any side effects. The presence of an output schema helps with return values, but behavioral traits beyond that are missing.

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 one short sentence with no filler. It front-loads the core behavior and keeps the definition tight. Every word contributes to the meaning, and there is no redundant restatement of the tool name or schema.

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 one-parameter tool with an output schema, the description is minimal but mostly workable. However, it lacks any usage guidance, explicitly states no parameter semantics, and gives no indication of how this differs from search_products. The output schema partially compensates for missing return-value detail, but the description alone is not fully self-sufficient.

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 0%, so the description must compensate for the parameter's meaning. The phrase 'one product variant' helps connect product_id to a product variant, but the description does not explicitly state that product_id is the identifier of the variant to fetch. With a single self-explanatory integer parameter, this minimal association is adequate.

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 uses a clear verb+resource pattern: 'Return relevant fields for one product variant.' It distinguishes this from sibling tools targeting lots, locations, and stock moves by naming the specific entity type. However, 'relevant fields' is vague and it does not explicitly distinguish itself from search_products, which may also return product fields.

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 explicit guidance about when to use this tool versus sibling search tools like search_products. The phrase 'for one product variant' weakly implies a single-record lookup, but there is no mention of alternatives, exclusions, or when to prefer a different tool.

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

get_stock_move_detailB

Return principal and diagnostic fields for one stock move.

ParametersJSON Schema
NameRequiredDescriptionDefault
move_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 disclosure burden. The verb 'Return' conveys a read-only retrieval behavior, and 'diagnostic fields' hints at the kind of data included. It does not mention auth requirements, missing-ID behavior, or side effects, but for a simple get operation the read-only nature is adequately implied.

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 one sentence, front-loads the action ('Return'), and contains no filler. Every word contributes to identifying the tool's purpose.

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

Completeness4/5

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

For a one-parameter detail-lookup tool with an output schema available, the description is nearly complete: it identifies the resource and scope. It could be more explicit about what qualifies as 'principal and diagnostic fields,' but the output schema covers the return shape.

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% and the description does not explain move_id beyond implying a single stock move is targeted. The parameter name and integer type are reasonably self-explanatory, but the description adds no semantic value beyond the schema.

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 uses the specific verb 'Return' and the resource 'one stock move,' making it clear this is a single-record detail lookup. It distinguishes itself from siblings like search_stock_moves and find_non_done_moves, though 'principal and diagnostic fields' is somewhat vague about exactly what is returned.

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

Usage Guidelines3/5

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

The phrase 'for one stock move' implies this is the tool to call when a specific stock move's detail is needed. However, it provides no explicit guidance about when to use it instead of search_stock_moves, find_non_done_moves, or other move-related siblings.

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

get_tryton_contextB

Check the configured connection and required Tryton model access.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/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 behavioral disclosure burden. It does indicate that the tool performs a non-mutating 'check' of two specific things: the connection and model access. However, it does not explain what happens on failure, whether any external system interaction occurs, or what conditions determine whether access is 'required.'

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

Conciseness5/5

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

The description is a single sentence, immediately front-loaded with the verb and object, containing no filler or redundancy. It is appropriately minimal for a zero-parameter diagnostic tool.

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

Completeness3/5

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

Given that there are no parameters and an output schema exists, the description is nearly sufficient for invocation. However, it leaves 'required' access unexplained and provides no context about when this check is useful, so an agent is left to infer the intended workflow.

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?

Because the tool has zero parameters, there is nothing for the description to add beyond what the schema already documents. The baseline score of 4 applies here since parameter semantics are not applicable.

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 checks the configured connection and required Tryton model access, which is a distinct diagnostic purpose compared to the product, lot, and stock sibling tools. The phrase 'required Tryton model access' is slightly ambiguous about which models or requirements are meant, so it stops just short of a top 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?

No guidance is provided for when to use this tool versus alternatives, such as running it first when connection or permission errors are suspected. The context is only implied by the tool's name and purpose, not explicitly stated.

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

reconstruct_product_stock_ledgerC

Reconstruct a chronological diagnostic ledger from stock moves.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
lot_idNo
lot_scopeNoall
product_idYes
location_idNo
include_cancelledNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavior. It implies a read/compute operation by saying 'diagnostic ledger', but it never states whether the tool mutates data, whether permissions are required, how cancelled moves are handled, or what side effects may occur.

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, front-loaded sentence with no filler. It is efficient and easy to parse, though the brevity comes at the cost of valuable context.

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 six parameters and no annotations, this one-sentence description is not sufficient. It does not clarify the ledger scope, filter semantics, cancelled-move behavior, or how it relates to the many sibling reporting and audit tools. The output schema exists, but the input-side semantics are largely undocumented.

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

Parameters1/5

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

Schema description coverage is 0%, and the description mentions none of the six parameters. The agent is left to infer the meaning of product_id, limit, lot_id, lot_scope, location_id, and include_cancelled entirely from titles and defaults, which the description fails to compensate for.

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 states a specific verb ('reconstruct') and a concrete resource ('a chronological diagnostic ledger from stock moves'), so the main purpose is clear. However, it does not explicitly differentiate this tool from siblings such as audit_product_history or summarize_product_moves, so it falls short of a full 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?

No guidance is given on when to use this tool versus any of the sibling tools. The phrase 'diagnostic ledger from stock moves' implies an aggregation or reconstruction use case, but there are no explicit conditions, exclusions, or named alternatives.

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

search_locationsA

Search stock locations by name, code or type.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.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 of behavioral disclosure. It only states the search intent and target fields; it does not reveal whether the operation is read-only, how a null query behaves, whether results are paginated, or any authorization constraints. These gaps are material for a tool with no annotation safety signals.

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, front-loaded sentence with no filler. The verb, resource, and search criteria are presented compactly and efficiently.

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

Completeness3/5

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

The tool is low-complexity and has an output schema, so return values need not be described. However, the description leaves the interplay between query and the listed fields implicit, and it offers no guidance about when to choose this over sibling search tools. It is adequate but not complete.

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 implies the 'query' parameter searches by name, code, or type, but it does not explicitly map the parameter, nor does it address the 'limit' parameter at all. This is minimal compensation for a 0% coverage schema.

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

Purpose5/5

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

The description uses a specific verb ('Search') with a clear resource ('stock locations') and specifies the matching criteria ('by name, code or type'). This distinguishes it from sibling tools like search_products, search_lots, and get_location_detail without requiring schema inspection.

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

Usage Guidelines4/5

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

The description clearly states the tool's context: use it to search stock locations by name, code, or type. It does not explicitly mention alternatives or exclusions, but the context is unambiguous enough for an agent to know when to invoke it.

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

search_lotsC

Search stock lots by text and/or product.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
product_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 communicates an apparent read-only search operation but does not explain how query and product_id interact, what happens when no filters are supplied, or whether the result set is limited. There is no contradiction, but important behavioral detail is missing.

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 short, front-loaded, and contains no filler or redundant restatement of the tool name. Every word contributes meaning, making it appropriately concise despite being minimal.

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?

Even though an output schema exists, the description is too sparse for a tool with three optional parameters and no annotations. It omits usage guidance, limit semantics, and behavior with no filters, so an agent lacks enough context to reliably select and invoke this tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It maps 'text' to the query parameter and 'product' to product_id, and the 'and/or' phrasing hints that these filters can be combined. However, it does not clarify the limit parameter or the exact matching behavior for the query text.

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 names a specific action ('search') and resource ('stock lots'), and identifies the two key filtering dimensions: text and product. It is clearly distinguishable from siblings like search_products or search_locations by noting the resource is 'lots', though it does not explicitly contrast with get_lot_detail.

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 given about when to use this tool versus alternatives such as search_stock_moves, search_products, or get_lot_detail. The 'by text and/or product' phrase only implies a search scenario; it does not state exclusions or selection criteria among siblings.

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

search_productsA

Search product variants by name or code.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral disclosure burden. 'Search' clearly signals a read-only, non-destructive operation, and 'by name or code' defines the matching scope. It does not, however, explain whether matching is exact or partial, how results are ordered, or how the limit parameter affects the result set.

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

Conciseness4/5

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

A single front-loaded sentence with no filler or repetition. It could add a bit more semantic guidance without becoming bloated, but for a simple search tool it is appropriately sized.

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

Completeness3/5

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

The presence of an output schema covers the return shape, and the core purpose is clear. Still, the definition lacks usage alternatives, matching-behavior details, and limit semantics, so an agent would have to infer or discover some invocation details from the schema alone.

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. It clarifies that the required `query` matches on name or code, but it says nothing about `limit` beyond the schema's title and default. One of two parameters remains semantically dependent on the schema alone.

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

Purpose5/5

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

The description names a specific verb ('search'), a precise resource ('product variants'), and the matching fields ('name or code'). This distinguishes it from sibling search tools such as search_lots and search_locations, and from get_product_detail, which retrieves details rather than searches.

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

Usage Guidelines3/5

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

The phrase 'by name or code' implies the intended use case: locate product variants when you have a name or code, as opposed to using a detail or lot tool. However, there is no explicit statement of when not to use this tool or which sibling should be chosen instead.

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

search_reference_globallyB

Search a textual reference across the approved stock-audit models.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
modelsNo
referenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It clarifies that this is a read-oriented search operation and that it is limited to 'approved stock-audit models,' which is useful context. However, it does not explain matching behavior, how the models parameter affects scope, or any other operational details.

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 one tight sentence with no filler, front-loading the action and scope. It is concise and readable, though it sacrifices richness that might have helped parameter understanding.

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, 0% parameter coverage, and three parameters including the non-obvious 'models' array, the description is too thin to fully equip an agent. The output schema may cover return shape, but usage, parameter semantics, and sibling differentiation remain incomplete.

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 the parameters. It only implicitly covers 'reference' via 'textual reference' and says nothing about 'limit' or 'models,' leaving the agent without meaning beyond the raw schema names.

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 uses the specific verb 'Search' with the resource 'a textual reference' and the scope 'across the approved stock-audit models.' It communicates a clear search operation and distinguishes itself from entity-specific siblings like search_products or search_lots by the 'globally' scope, though 'approved stock-audit models' remains 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 Guidelines3/5

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

The phrase 'across the approved stock-audit models' implies when the tool is useful, but it provides no explicit guidance about when to choose this global search over specific sibling searches, nor does it state any exclusions or preferred alternatives.

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

search_stock_movesC

Search stock moves with product, lot, state and location filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
stateNo
lot_idNo
product_idNo
to_location_idNo
from_location_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output 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 disclosure burden. It only conveys the read-only nature of 'search' by implication and says nothing about pagination, state value formats, required permissions, or result behavior. This is minimal transparency.

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

Conciseness4/5

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

A single, front-loaded sentence with no wasted words. It is efficient and easy to parse, though its brevity comes at the cost of omitting useful behavioral and usage context.

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 six unannotated parameters and zero schema descriptions, this one-liner is incomplete. Even with an output schema available to describe returns, the agent still lacks parameter semantics, pagination details, and guidance on selecting this tool among over twenty siblings.

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%, and with six parameters the description must compensate. It adds only coarse categories ('product, lot, state and location filters') and does not explain the meaning or accepted values of product_id, lot_id, state, or location IDs, leaving the agent to infer too much.

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 states a specific verb ('Search') and resource ('stock moves'), and names the main filter dimensions (product, lot, state, location). This clearly conveys the tool's basic function, but it does not explicitly distinguish it from sibling search tools like find_non_done_moves or get_stock_move_detail.

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

Usage Guidelines3/5

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

The description implies the tool is the general filtered search for stock moves, giving a clear basic context for when an agent would use it. However, it offers no explicit guidance about alternatives or exclusions, such as preferring find_non_done_moves for state-specific searches or get_stock_move_detail for a single move.

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

summarize_product_location_flowsC

Summarize entries, exits and internal location flows for a product.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
product_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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. It implies a read-only aggregation but does not disclose the scope of data considered, time range, grouping behavior, or whether all locations are included. The phrase 'summarize entries, exits and internal location flows' gives some behavioral detail but not enough.

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 succinct sentence with a front-loaded verb and resource. It avoids padding, though the brevity leaves notable gaps in usage and parameter guidance.

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 existence of many similar sibling tools and no annotations, this description is too thin. The output schema helps with return values, but the tool still lacks contextual guidance about when to use it, what the limit affects, and how it differs from summarize_product_moves.

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%, and the description adds no real parameter meaning. It only restates the product concept that is already in the schema, and the limit parameter is completely unexplained.

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 (summarize) and resource (product location flows), and specifies the scope: entries, exits, and internal location flows. It does not explicitly differentiate from sibling summarize_product_moves, but the core purpose is unambiguous.

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?

There is no guidance on when to prefer this tool over summarize_product_moves, search_stock_moves, or other location-related tools. The description only explains what the tool does, not when to use it or when to avoid it.

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

summarize_product_movesC

Summarize a product's movement history and suspicious signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
product_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/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 behavioral disclosure burden. It mentions summarization and 'suspicious signals,' which is useful, but it does not state whether the operation is read-only, how signals are determined, what scope of data is covered, or what output characteristics to expect beyond the existence of an 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.

Conciseness4/5

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

The description is a single efficient sentence with no filler or redundancy. It front-loads the core action and resource, though it is lean enough that some semantic gaps remain.

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

Completeness2/5

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

The presence of an output schema reduces the need to describe return values, but the description still lacks parameter details, usage context, and differentiation from important siblings. For a tool with no annotations and low schema coverage, this is insufficient context for reliable selection and invocation.

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 by explaining the parameters. It implies product_id through 'a product's movement history,' but the limit parameter is completely unexplained, including how it affects the summary or its default behavior.

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 a specific verb ('Summarize') and resource ('a product's movement history'), and adds the distinctive 'suspicious signals' aspect. It does not explicitly distinguish itself from siblings like audit_product_history or summarize_product_location_flows, so it loses the top 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 gives no guidance about when to use this tool versus sibling tools such as audit_product_history or summarize_product_location_flows. There is no mention of prerequisites, alternatives, or exclusion conditions, leaving the agent to guess based on the name alone.

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. 23 tool updatesv0.1.0
    • First observedanalyze_stock_move_root_cause
    • First observedaudit_product_history
    • First observedcompare_products_stock_history
    • First observeddescribe_model
    • First observedfind_negative_lot_location_balances
    • First observedfind_non_done_moves
    • First observedgenerate_move_root_cause_report
    • First observedgenerate_product_negative_stock_report
    • First observedgenerate_product_stock_audit_report
    • First observedget_location_detail
    • First observedget_lot_detail
    • First observedget_official_product_quantity
    • First observedget_product_detail
    • First observedget_stock_move_detail
    • First observedget_tryton_context
    • First observedreconstruct_product_stock_ledger
    • First observedsearch_locations
    • First observedsearch_lots
    • First observedsearch_products
    • First observedsearch_reference_globally
    • First observedsearch_stock_moves
    • First observedsummarize_product_location_flows
    • First observedsummarize_product_moves

TDQS

C2.9/5.0
Disambiguation3/5

Core entity tools (search/get for products, lots, locations, moves) are clearly separated, but the audit/summary/report cluster overlaps: audit_product_history, summarize_product_moves, reconstruct_product_stock_ledger, and generate_product_stock_audit_report all deal with product movement history and could be misselected. Descriptions help, but boundaries are not crisp.

Naming Consistency4/5

All names are snake_case verb_noun and follow a predictable pattern: search_/get_ for entity lookups, find_ for exceptions, generate_ for reports. Minor deviations like search_reference_globally and long compound names are still clear.

Tool Count3/5

23 tools is on the heavy side and above the typical well-scoped range. Most tools have a distinct purpose, but the many report/audit variants inflate the surface without adding entirely new capabilities.

Completeness4/5

The read-only audit domain is well covered: search/detail for products, lots, locations, moves, plus summaries, negative-balance checks, root-cause analysis, and reports. A few gaps remain, such as a general current-balance listing by lot/location and a way to enumerate all records without search filters.

Maintenance

ActivityMaintained
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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables comprehensive interaction with ERPNext systems through natural language, providing secure access to any document type (customers, items, invoices, etc.) with enterprise-grade permission controls and audit logging.
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Connects to Odoo ERP to provide comprehensive inventory analysis, including demand forecasting, ABC/XYZ classification, and stock level monitoring. It enables users to identify slow-moving items and generate turnover or aging reports through natural language queries.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying and managing Alegra inventory and products through natural language, including stock checks and product searches.
    -
  • A
    license
    A
    quality
    A
    maintenance
    An AI business analyst for your Odoo ERP. Ask one question, get one answer — numbers, highlights, risks, and a verdict (on-track / at-risk / off-track) — over the Model Context Protocol. CRUD bridges to Odoo already exist; this is the analytics layer that sits on top.
    31
    1
    MIT

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/SamuelBalbas/tryton-stock-mcp'

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