Skip to main content
Glama
xuanji86

GunStore-POS Admin MCP

by xuanji86

distributor_fulfillment_options

Evaluate a web order line-by-line to choose the cheapest distributor candidate, compare local stock, and get a fulfillment verdict with hold reasons for undetermined or restricted lines.

Instructions

Everything needed to decide how to fill ONE web order: per line, the distributor candidates (cheapest first), a LOCAL stock comparison row, and a verdict. Read-only — it plans nothing and orders nothing.

THREE-VALUED FIELDS. if not x is WRONG on both of these; null means "not determined yet", never "fine":

  • verdict.fulfillable — true / false / null. Null carries a reason: unknown_destination (the destination state is not captured yet — the NORMAL state while an order sits in Pending Route or before the buyer's FFL is on file) or stale_feed (the only quantity that could cover the line came off a feed past its refresh window).

  • restricted_state — true / false / null, same null meaning.

Treat null as HOLD: report the line as undetermined and quote the reason. Never state that such a line can ship — a restricted item to an unresolved destination is exactly the case this must not wave through.

CANDIDATE FLAGS: not_carried = that distributor has no catalog row for the item (listed rather than dropped, so it is not misread as out-of-stock); blocked = carried but unbuyable (distributor block / vendor approval); stale = quantity from an aged feed. Unbuyable rows sort to the BOTTOM, so the first candidate is the one MOST LIKELY to be actionable — but the row's own verdict and flags decide that, not its position. Ranking is not permission.

MONEY: unit_landed is PER UNIT and goods-only. Freight does not exist until the order is placed, so shipping is null with shipping_known false. Do not present unit_landed as a landed cost, and do not multiply it by quantity and call the result final.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
woo_online_orderYes
Behavior5/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 thoroughly covers read-only semantics, the meaning of three-valued fields (null as 'not determined' with specific reasons), the interpretation of null as a hold, candidate flags (not_carried, blocked, stale), and money handling (unit_landed is per-unit goods-only, shipping null until order placed). It even warns against common pitfalls like misinterpreting null or ranking as permission. This is exemplary 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 well-structured with clear sections (three-valued fields, candidate flags, money) and is front-loaded with the core purpose. While lengthy, every sentence adds value—it explains complex semantics and warns against common misinterpretations, making the length justified. No filler or redundancy.

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

Completeness5/5

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

The description is complete for a tool of this complexity. It covers input context (one web order), output semantics (verdict, flags, money), critical null behavior, and pitfalls. Even though there is no output schema, the description fully explains what the agent will receive and how to interpret it, leaving no gaps for correct invocation and interpretation.

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 only parameter 'woo_online_order' is not explained in the description beyond the schema's bare type (string). Schema coverage is 0%, and the description only implies the parameter identifies the web order ('ONE web order') without specifying the expected format (e.g., an ID) or any constraints. Since there's only one parameter, the description could easily compensate, but it doesn't, leaving the agent to infer meaning.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('decide how to fill ONE web order') and resource (web order), and lists the outputs (per-line distributor candidates, local stock comparison, verdict). It immediately differentiates itself from ordering tools by stating 'Read-only — it plans nothing and orders nothing', making it easy to distinguish from siblings like distributor_quote or distributor_orders.

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?

It gives clear context (for exactly one web order) and establishes that it is read-only, implying it should not be used for planning or ordering. However, it does not explicitly name alternative tools or state when another tool should be used instead (e.g., distributor_quote for pricing or distributor_orders for placing orders). The guidance is implied rather than explicit.

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

Install Server

Other Tools

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/xuanji86/gunstore-pos-mcp'

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