Skip to main content
Glama

shipping

Read-onlyIdempotent

Quote, post, haul, track, and settle sealed-package freight contracts through station mission services (Action-dispatched freight contracting for sealed packages.

facility access: Any operational mission-service facility provides the full station-gated freight system: quote, post, list, accept, pay_debt, and insurance. Mission-service level does not unlock additional freight actions. Faction quote/post, faction acceptance, and faction debt payment additionally require Manage Treasury and an active local Market Runner service (faction_market); at its own station, a faction's active station market supplies that service. Reads and settlement escape paths do not require a Market Runner.

quote / post: While docked at a station with an operational mission service, select package_id and a destination_base_id that is a different station; another station in the same system is valid. package_id takes either the bare package ID or the package: cargo item form, and destination_base_id takes either a station's base ID or the station POI ID the map shows you. You set the price: base_reward is the flat reward the carrier is paid on delivery and is required to post; speed_bonus is an optional extra paid for fast delivery, decaying linearly from full at the on-time target tick to zero at the deadline. Carriers choose which contracts to haul by the reward you offer, so a fair market sets the going rate. quote returns estimated_reward — the median base_reward of recently-completed contracts of similar distance — with estimate_samples telling you how much real data backs it (0 = not enough completed contracts yet, so name your own price). shipper defaults to player; faction means your current faction and requires its local Market Runner service plus Manage Treasury. recipient_type + recipient_id may name a player, faction, or station; a station recipient_id also takes either the base ID or the station POI ID; omit both to deliver back to the shipper. source is cargo (default), storage, or faction; source_bucket_id selects a faction Storage Extension bucket. service_level is standard or priority and sets only the delivery window (priority is tighter); the money is set by base_reward and speed_bonus. visibility is public, faction, allies, or invited. invited listings require invited_carrier_type + invited_carrier_id; invitation controls who can see and accept the listing but does not by itself waive carrier standing or liability limits. insured=true requests dynamic cargo insurance at any mission-service facility; goods without useful completed-fill VWAP may still ship uninsured. On top of the reward the shipper also pays a service_fee (5% of reward + bonus, 25-credit floor) and any insurance premium. quote is informational; post recomputes terms, and max_total_cost can reject an unexpectedly higher total.

active: lists every live contract you are party to as carrier, shipper, recipient, or invited carrier, resolved against the current tick: destination station and system by name, ticks left to the on-time target, the deadline, and the recovery deadline, what delivering right now would pay, the late fee if you are already overdue, whether the sealed package is in your hold, where it was last seen, and the next step to take. This is the recovery path when you are holding an unlabelled sealed package and no longer remember which run it belongs to. inspect on the package itself reports the same contract summary.

list / get / track: list is the freight board for the station you are docked at — it shows only posted contracts originating here that the carrier selected by eligible_as=player|faction can actually accept right now (outstanding freight debt, insufficient standing, or a missing faction Market Runner empties the board rather than listing runs you cannot take). Results are sorted by base_reward highest-first by default; set sort=distance to order by fewest route hops or sort=age for oldest-first. Narrow the board with filter_destination (a station's Base ID or station POI ID), filter_service_level (standard or priority), and filter_shipper (a posting player username, faction name/tag, or station name). page and per_page paginate (per_page max 50). When the board comes back empty the response carries empty_reason_code and empty_reason explaining why — no_shipments (nothing posted here), no_matching_shipments (your filters excluded everything), or no_eligible_shipments (runs exist but you cannot take them, with the blocking reason: unpaid freight debt, insufficient standing, or a missing faction Market Runner). get returns one visible contract. track returns its sampled seal-beacon history so shippers and recipients can follow the route without restricting handoffs, warehouses, or detours. get, track, deliver, and return all accept package_id (or the package: cargo item) instead of shipment_id, so a box in your hold is enough to act on its contract. Board entries also carry target_ticks, deadline_ticks, and recovery_ticks — the delivery allowances the run would get once accepted.

accept / deliver / return / cancel: carrier=player|faction selects who permanently owns the consequences when accepting; it never accepts an arbitrary faction ID. Faction acceptance requires its local Market Runner service plus Manage Treasury. Self-shipping covers the same player/faction actor and either direction of a current player/faction membership relationship. It bypasses standing and tier liability-limit gates, but unpaid freight debt still blocks it; it earns no delivery count, delivered value, priority credit, or tier progress. reputation_eligible freezes that result when accepted so later membership changes cannot alter it. Acceptance deposits the sealed package into the selected carrier's personal or faction storage at the origin, bypassing the ordinary package cap, so it can be withdrawn for hauling later. The prime carrier remains liable through every handoff. failure_debt is the exact debt that carrier will owe if the package is breached or finally defaulted: 500 credits uninsured, or the insured covered value plus 10% (minimum 100-credit surcharge). deliver deposits the still-sealed package directly into destination storage even if that exceeds the recipient's ordinary package cap. return is always available to surrender freight back to the origin station, including throughout the post-deadline recovery window; surrendering while overdue pays the same capped late fee a late delivery would, so hauling the goods back is never a way to dodge the fine. Delivery windows are generous — a flat allowance plus per-jump time, tightened for priority — so rerouting or refuelling does not cost you the run; the pressure to hurry is the decaying speed bonus. Missing the deadline forfeits the reward but does not end the contract: for a further recovery window (recovery_ticks on the quote and board) you can still deliver, paying only a small capped late fee and taking a late mark rather than a default. Delivering late always costs less than walking away, so never break the seal on freight you are merely late with. The tick a run goes overdue the carrier gets a one-off 'shipment_overdue' push (also recorded in get_action_log) naming the shipment, the destination, the ticks left, and the late fee. Opening the seal, losing the package, or letting the recovery window lapse breaches/defaults the contract, forfeits payment, damages the global carrier record, creates the full displayed freight debt, and blocks new acceptances until paid. cancel applies only while still posted.

profile / pay_debt: view the selected player/faction's separate global freight-carrier record, tier history and next-tier requirements, active contracts, current liability usage, per-package/aggregate limits, remaining allowance, and outstanding freight debts. late_deliveries counts runs settled after the deadline: they earn no delivery count, no delivered value, and no tier progress, but they do not demote you the way a default does. Contract count itself is uncapped; acceptance capacity is liability-based. pay_debt repays the requested amount, or the full balance when amount is omitted. Paying faction debt requires its local Market Runner service plus Manage Treasury. Outstanding debt blocks new acceptances; repayment does not erase breach/default history.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoList page (default 1).
sortNoFor list, ordering of the board: reward (highest base_reward first, default), distance (fewest route hops first), or age (oldest first).
limitNoMaximum recent beacon events returned by track.
actionYesFreight-contract action. Any operational mission service provides all station-gated freight actions, including insurance; facility level does not unlock freight features. Faction quote/post, acceptance, and debt payment also require Manage Treasury and an active local Market Runner service. Tracking and settlement remain available in transit.
amountNoDebt payment amount for pay_debt. Omit to pay the full outstanding balance.
sourceNoWhere the sealed package currently sits at the origin station (cargo by default).
carrierNoPrime carrier accepting the contract: you personally (player, default) or your current faction. The selected actor permanently owns the consequences. Self-shipping bypasses standing and tier liability limits but earns no carrier reputation; unpaid freight debt still blocks acceptance.
insuredNoRequest cargo insurance. Unpriceable packages may still be shipped uninsured.
shipperNoWho posts and funds the contract: you personally (player, default) or your current faction. Faction posting requires manage_treasury.
per_pageNoContracts per page (default 20, max 50).
package_idNoSealed package ID, either the bare package ID or the package:<id> cargo item form. For quote/post it is the freight to ship, owned by the selected shipper at this station. For get, track, deliver, and return it identifies the contract by the sealed box you are holding, instead of shipment_id.
session_idYesYour session ID from login/register
visibilityNoWho may accept the listing. invited also requires invited_carrier_type and invited_carrier_id.
base_rewardNoFlat reward paid to the carrier on delivery. You set the price — required to post (post fails with reward_required if omitted or non-positive). quote returns estimated_reward from recently-completed similar-distance contracts to guide you; there is no automatic distance-based rate.
eligible_asNoFor list, show contracts you may accept personally (player, default) or for your current faction.
shipment_idNoFreight contract ID for get, track, accept, deliver, return, or cancel. get, track, deliver, and return also accept a package ID here, or in package_id.
speed_bonusNoOptional extra paid for fast delivery, decaying linearly from full at the on-time target tick to zero at the deadline. The timing window itself is set by service_level.
recipient_idNoPlayer, faction, or station ID matching recipient_type; a station takes either the base ID or the station POI ID.
service_levelNoDelivery timing tier only: standard, or priority for a tighter deadline. It does not set any payment — the carrier's pay is base_reward plus the optional speed_bonus.
filter_shipperNoFor list, only show runs posted by this shipper (a player username, faction name or tag, or station name).
max_total_costNoOptional post guard. The contract is rejected if the recomputed fees, reward escrow, and premium exceed this amount.
recipient_typeNoDelivery beneficiary kind. Omit both recipient fields to deliver back to the shipper.
source_bucket_idNoFaction Storage Extension bucket ID when source=faction; omit for the faction main store.
filter_destinationNoFor list, only show runs bound for this destination station, given by either its Base ID or station POI ID.
invited_carrier_idNoInvited player or faction ID when visibility=invited.
destination_base_idNoDestination station for quote or post, given as either a station's base ID or the station POI ID the map shows you. It must differ from the origin station; another station in the same system is valid.
filter_service_levelNoFor list, only show runs of this service tier.
invited_carrier_typeNoInvited prime carrier kind when visibility=invited.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedInput schema / properties / filter_destination / description
      Previous value: -"For list, only show runs bound for this destination station (ID or name)."New value: +"For list, only show runs bound for this destination station, given by either its Base ID or station POI ID."
  2. Changed3 schema fields changed
    • changedInput schema / properties / destination_base_id / description
      Previous value: -"Destination station/base ID for quote or post. It must differ from the origin station; another station in the same system is valid."New value: +"Destination station for quote or post, given as either a station's base ID or the station POI ID the map shows you. It must differ from the origin station; another station in the same system is valid."
    • changedInput schema / properties / package_id / description
      Previous value: -"Sealed package ID. For quote/post it is the freight to ship, owned by the selected shipper at this station. For get, track, deliver, and return it identifies the contract by the sealed box you are holding, instead of shipment_id."New value: +"Sealed package ID, either the bare package ID or the package:<id> cargo item form. For quote/post it is the freight to ship, owned by the selected shipper at this station. For get, track, deliver, and return it identifies the contract by the sealed box you are holding, instead of shipment_id."
    • changedInput schema / properties / recipient_id / description
      Previous value: -"Player, faction, or station ID matching recipient_type."New value: +"Player, faction, or station ID matching recipient_type; a station takes either the base ID or the station POI ID."
  3. Added

TDQS

A3.8/5.0
Behavior1/5

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

Annotation Contradiction. The annotations declare readOnlyHint=true and idempotentHint=true, while the description explicitly describes state-changing actions: post, accept, deliver, return, cancel, and pay_debt all mutate contracts, storage, debt, and records. Although the narrative is transparent about those behaviors, it directly contradicts the annotations, so this dimension must score 1.

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 organized by action groups and opens with a useful summary, but it is a dense wall of prose with repeated prerequisites (Market Runner and Manage Treasury appear multiple times) and long parenthetical asides. It earns its detail for 12 actions, yet could be tightened and bulleted.

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?

With no output schema, the description compensates by explaining returns for quote (estimated_reward, estimate_samples), list (empty_reason_code/reason), active (tick counts, next step), track (seal-beacon history), and profile (tier history, debts). It also covers prerequisites, failure_debt, package-cap bypass, late fees, recovery windows, and cancellation scope, leaving little ambiguity for an agent.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds critical meaning the schema alone does not convey: base_reward is shipper-set with quote as a guide, destination_base_id accepts base or POI IDs, max_total_cost is a post-time guard, package_id can substitute for shipment_id in specific actions, and invited visibility still does not waive standing/liability limits. These cross-parameter and action-dependency semantics make the tool callable correctly.

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 opening sentence names a specific verb set and resource: quote, post, haul, track, and settle sealed-package freight contracts, then narrows it to Action-dispatched freight contracting. This clearly separates it from the mission, station, and facility siblings in the tool list.

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?

Each action group is given a concrete context: quote/post require being docked at an operational mission service, list is the board for the current station, active is the recovery path for unlabelled packages, and cancel applies only while posted. It does not explicitly name sibling tools as alternatives, but no sibling covers freight contracts.

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.

TDQS

B3.4/5.0
Disambiguation4/5

Most tools are clearly distinct, targeting specific actions and resources. A few overlaps exist (e.g., attack vs hunt, view_insurance vs claim_insurance), but detailed descriptions clarify the boundaries. The scale makes selection harder, but each tool has a clear purpose.

Naming Consistency4/5

The majority use a consistent verb_noun snake_case pattern (e.g., create_buy_order, get_cargo, accept_mission). There are minor deviations like action-dispatch commands (facility, shipping, citizenship) and bare verbs (attack, dock, mine), but these are readable and follow a logical style.

Tool Count1/5

With 212 tools, the server far exceeds any reasonable scope for an MCP. While the game is complex, this is an extreme number that overwhelms agents and users, making discovery and selection impractical. The calibration considers 25+ already too many, and 212 is extreme.

Completeness5/5

The toolset covers nearly every aspect of the game: combat, trading, crafting, factions, missions, exploration, drones, passengers, freight, insurance, taxation, and more. It provides full CRUD for most resources and includes both action and query tools, leaving few obvious gaps.

Resources