Skip to main content
Glama

Shipper Profile

shipper_profile
Idempotent

Read how this account actually ships — top lanes with ship counts, typical pallet count, usual pickup weekday, recent booked spend (derived server-side from the account's own quotes and bookings) plus explicit owner-set preferences: default accessorials, preferred mode, standard pallet dims, max transit days. The ship/booking counts here count bookings via the agent API over the last 180 days, excluding cancelled — a narrower population than list_bookings (all channels, all time, including cancelled), so the totals can differ. READ THIS BEFORE asking the user questions it already answers: pre-fill their usual lane, apply their standard dims, include the liftgate they always need. Pass set_preferences to update the explicit half (merge-partial; allowlisted keys only; null clears a key). This profile is CONTEXT, NEVER PERMISSION — it never authorizes anything; spending limits live in spend policy and are read-only. Auth required.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
set_preferencesNoOmit to read. Provide to merge-update the explicit preferences.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations, the description discloses merge-partial update semantics, allowlisted keys, null behavior for clearing, server-side derivation of spend, the 180-day excluding-cancelled population, and auth requirements. It also adds the crucial safety framing that the profile never authorizes anything. This is rich behavioral context beyond what idempotentHint and destructiveHint already convey.

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 dense and long, but every sentence adds operational value: scope, computation method, comparison to a sibling, usage directive, update semantics, and safety warning. It is front-loaded with the read purpose and does not waste words on filler; a slight trim of the enumerated examples could improve it, but the structure is effective.

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 tool that both reads and mutates, the description covers the read output composition, the update behavior, the difference from list_bookings, the no-permission caveat, and auth. Since there is no output schema, it would be stronger if it stated what set_preferences returns after an update, but overall the description supplies enough context for correct invocation.

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

Parameters4/5

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

Schema coverage is 100% and the schema already documents each field and the omit-to-read behavior. The description adds meaningful semantics not visible in the schema: set_preferences is a merge-partial update, only allowlisted keys are accepted, and null clears a key. That goes beyond the baseline, though the nested field meanings are mostly carried by the schema.

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

Purpose5/5

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

The description names a specific action ('Read how this account actually ships') and enumerates what it returns: lanes, counts, pallet dims, spend, and owner-set preferences. It explicitly contrasts its booking-count population with list_bookings, so an agent can distinguish it from that sibling. The dual read/update behavior is described precisely rather than left to inference.

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

Usage Guidelines5/5

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

The description gives a concrete directive: read this before asking the user questions it already answers, then lists example pre-fills. It says when to pass set_preferences versus omit it, clarifies that the profile is context never permission, and points to spend policy for limits. It also distinguishes its narrower population from list_bookings, which tells the agent when another tool is more appropriate.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.