MCP Module Reference

Resources (sellable products) module — JetSetGo MCP reference

The resources module manages JetSetGo's sellable-product catalogue. A resource is anything a customer can book — a ferry service, guided tour, accommodation or cruise product, transfer, gift voucher, or an attachable add-on. The module exposes the resource row plus every sibling collection managed on it: fare-class variations, allowed capacity templates, add-on associations, checkout recommendations, bullet points, pickup/dropoff options, variation-to-add-on links, and image-gallery listing.

What the operator uses it for

Operators define and maintain each bookable product here: identity (name, description, imagery), classification (product type/sub-type), the consumption rule set binding, allowed capacity templates, fare classes, add-on availability, checkout recommendations, itinerary notes, pickup/dropoff locations, and an expected fill curve for revenue management.

A resource is not sellable until it has a consumption rule set, at least one allowed capacity template, at least one variation, and a price list (configured in Pricing). Creating a resource auto-creates one default variation via a database trigger. Two specialisations exist: is_addon resources are only sellable attached to a parent; is_package resources are composed onto by the Packaging module.

Two specialisations exist: a resource flagged as an add-on (is_addon) is only sellable attached to a parent product, and a resource flagged as a package root (is_package) is composed onto by the Packaging module.

Where it sits

Resources sit near the top of the catalogue. Upstream, a resource points at: a product type (required — NOT NULL), an optional sub-type, a consumption rule set, cancellation policy, allocation category, email/print templates, and its allowed capacity templates. Downstream, routes, timetabled services, price lists, inventory, packaging, and revenue management all key off the resource id; stop dwell/grace minutes feed route optimisation. Reads resolve foreign-key names (e.g. the product type's name, not just its id) wherever the tenant's schema tracks those relationships.

Key concepts

  • Resource — the central sellable-product row; everything that routes, schedules, prices, packs, boards, or reports a journey references it.
  • Product type / sub-type — broad classification used for filtering and reporting; it does not drive booking behaviour.
  • Consumption rule set binding (behaviour_id) — the single most important setting: decides which fare items are bookable, how much capacity each consumes, and whether the product is inventory-controlled or ticket-controlled.
  • Variation — a fare class (Standard/Premium/…) priced in Pricing; one default is auto-created on resource creation.
  • Allowed capacity templates (layout/blueprint assignments) — which layout templates may be used; the actual one is chosen per scheduled service.
  • Add-on association — a link row connecting an add-on-flagged resource to a parent resource.
  • Checkout recommendation group / item — named groups of recommended resources surfaced during checkout.
  • Booking curve configuration — a four-parameter expected-fill curve compared against actual sales; it does not change prices itself.

Tools

All writes are two-phase: call without confirm to preview (returns a previewToken and the exact payload), then call again with confirm: true plus the token to execute. Destructive calls also count toward a server-side consecutive-destructive cap.

Tool Class Purpose
resources_list Read List resources; filters: name (contains), active, product type, is_addon. Resolves FK names where tracked.
resources_get Read Fetch one resource by id with the full field set.
resources_list_blueprints Read List the capacity-template catalogue available for assignment.
resources_list_blueprint_assignments Read List a resource's assigned capacity-template links.
resources_list_recommendations Read List a resource's checkout-recommendation groups with nested items.
resources_list_variations Read List a resource's fare-class variations.
resources_list_addons Read List the add-on catalogue (add-on-flagged resources).
resources_list_addon_assignments Read List add-ons linked to a specific resource.
resources_list_bullet_points Read List a resource's itinerary-note bullet points.
resources_list_pickup_dropoff Read List a resource's pickup/dropoff options (type, stop, default flag, order).
resources_list_variation_addons Read List a variation's add-on associations (included/bundled flag, requirement).
resources_list_images Read List gallery images eligible for attachment via resources_save.
resources_save Guarded write Create (omit id; product type required) or update the resource row; upserts custom-field values passed through to storage.
resources_deactivate Guarded write (destructive) Retire a resource by setting active=false (soft state; there is no hard delete).
resources_save_variation Guarded write Create or update a fare-class variation (name, cancellation policy, default flag, order, optional per-variation rule-set override).
resources_remove_variation Guarded write (destructive) Delete a variation.
resources_save_blueprint Guarded write Assign a capacity template to a resource.
resources_remove_blueprint Guarded write (destructive) Unassign a capacity-template link (template itself untouched).
resources_save_addon Guarded write Link an add-on resource to a parent resource.
resources_remove_addon Guarded write (destructive) Remove an add-on link row.
resources_save_recommendation Guarded write Create or update a checkout-recommendation group scoped to a resource.
resources_save_recommendation_item Guarded write Create or update a recommended-resource entry within a group.
resources_remove_recommendation Guarded write (destructive) Delete a recommendation group (its items go with it per the database relationship).
resources_remove_recommendation_item Guarded write (destructive) Delete a single recommended-resource entry.
resources_save_bullet_point Guarded write Create or update an itinerary bullet point.
resources_remove_bullet_point Guarded write (destructive) Delete a bullet point.
resources_save_pickup_dropoff Guarded write Create or update a pickup/dropoff option (pick_up or drop_off, stop, description, default, order).
resources_remove_pickup_dropoff Guarded write (destructive) Delete a pickup/dropoff option.
resources_save_variation_addon Guarded write Associate an add-on with a variation (bundled/included flag plus requirement descriptor).
resources_remove_variation_addon Guarded write (destructive) Remove a variation-to-add-on association.

Out of scope: uploading image bytes (list images and attach one via resources_save instead), or creating capacity templates, rule sets, custom-field definitions, cancellation policies, templates, allocation categories, product types, or stops — those belong to their own modules; resources only reference them by id (or assign capacity templates/add-ons).

Rules worth knowing

  • Soft-state lifecycle, not delete. Resources are retired with active=false (resources_deactivate); there is no hard delete, and resources use an active boolean rather than a status string.
  • The rule-set binding is load-bearing. Changing behaviour_id on a live resource alters bookability and capacity consumption for future bookings; prefer creating a new resource over re-binding a live one.
  • Product type is mandatory on create (NOT NULL column); the tool refuses a create without it.
  • Optional-column gating. Several recently added columns (stop timing, hotel pickup stop, commuter-app visibility, team-lead descriptor, service-progression profile, pickup notification template) may be absent from a tenant's schema metadata. Reads and writes probe availability once per tenant; writes silently omit unavailable columns instead of failing.
  • Image handling. Input image_url is stored as the image column and mirrored into the gallery by a trigger. Byte upload is not possible over MCP.
  • Booking curve is all-or-nothing. booking_curve_config is either null or a complete six-key numeric object; partial curves are rejected.
  • Field validations. Stop wait/grace times are integers ≥ 0; team-lead descriptor caps at 50 characters; print-template ids must be UUID-formatted.
  • Custom fields pass through unvalidated (v1 design gap). Mandatory/pattern rules from custom-field definitions are not enforced by the MCP today.
  • No unique key. A timeout between execution and response could in rare cases duplicate a newly created resource — re-read before retrying a failed create.
  • Behaviours — the consumption rule set each resource binds to; governs bookability and capacity consumption.
  • Product types — the classification referenced by every resource.
  • Fare items (passenger & vehicle types) — the fare items a resource sells, constrained by its rule set.
  • Pricing — owns price lists keyed by resource and variation; a resource without one is not sellable.
  • Blueprints — owns the capacity templates a resource may assign.

See it on your operation

A 30-minute call. We show you the platform with your routes, your fleet, your numbers. No slideshow, no high-pressure sales.

Book a Demo