Skip to main content
Glama

Singapore Event Print & Merch Quotes

This connector has been deprecated

Renamed to Singapore Buying Desk. Replaced by https://glama.ai/mcp/connectors/com.connective-labs/sg-buying-desk.

Price a list of items (RFQ)

quote_list

Price a whole shopping list or RFQ in one call: many line items, each with its own quantity, for office and IT supplies and instant event print (name cards, lanyards, roll-up banners, tote bags). Returns per line the match level (exact, spec, similar, needs_detail or no_match), the all-in SGD price (9% GST and Singapore delivery included) and the ready-by date, plus a total for priced lines and a list of what to clarify with the buyer. Pass lines as strings ('3 x HDMI cable 5m') or objects with item, quantity, category, brand, model, specs. Never invent prices for unpriced lines: ask what clarify lists, or convert the list to a firm quote with request_quote (pass list_id). Example input: {"items":["3 x HDMI cable 5m","microSD 128GB x10"]}.

Input Schema

NameRequiredDescriptionDefault
textNoAlternative to items: a pasted free-text list, one item per line (quantities like '3 x', 'x3', '3 pcs' are recognised).
itemsNoLine items, up to 50.
companyNoOptional: buyer company.
needed_byNoDeadline for the whole list, YYYY-MM-DD, Singapore time.
buyer_emailNoOptional: buyer email, used if the list is converted to a firm quote.
delivery_areaNoDelivery address or area in Singapore (prices already include Singapore delivery).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / items / items / anyOf
      Previous value: -[
      -  {
      -    "description": "One line in the buyer's words, quantity included, e.g. '3 x HDMI cable 5m', 'microSD 128GB x10', '2 pcs HP 206A cyan toner'.",
      -    "type": "string"
      -  },
      -  {
      -    "properties": {
      -      "brand": {
      -        "description": "Brand, e.g. HP, Logitech, SanDisk.",
      -        "type": "string"
      -      },
      -      "category": {
      -        "description": "Optional: a supplies category (cable, adapter, usb-hub, memory-card, flash-drive, ssd, hdd, card-reader, ...) or an event print category (name-cards, lanyards, roll-up-banners, tote-bags).",
      -        "type": "string"
      -      },
      -      "item": {
      -        "description": "The buyer's own wording for this line.",
      -        "type": "string"
      -      },
      -      "model": {
      -        "description": "Model number or cartridge code exactly as printed.",
      -        "type": "string"
      -      },
      -      "quantity": {
      -        "default": 1,
      -        "description": "Units needed for this line.",
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "specs": {
      -        "description": "Same fields as quote_office_supplies specs: connectors, length, capacity, card_type, va_rating, colour, ports, screen_size, wireless, interface.",
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "description": "One line in the buyer's words, quantity included, e.g. '3 x HDMI cable 5m', 'microSD 128GB x10', '2 pcs HP 206A cyan toner'.",
      +    "type": "string"
      +  },
      +  {
      +    "properties": {
      +      "brand": {
      +        "description": "Brand, e.g. HP, Logitech, SanDisk.",
      +        "type": "string"
      +      },
      +      "category": {
      +        "description": "Optional: a supplies category (cable, adapter, usb-hub, memory-card, flash-drive, ssd, hdd, card-reader, ...) or an event print category (name-cards, lanyards, roll-up-banners, tote-bags).",
      +        "type": "string"
      +      },
      +      "item": {
      +        "description": "The buyer's own wording for this line.",
      +        "type": "string"
      +      },
      +      "model": {
      +        "description": "Model number or cartridge code exactly as printed.",
      +        "type": "string"
      +      },
      +      "quantity": {
      +        "default": 1,
      +        "description": "How many units of this line item the buyer needs.",
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "specs": {
      +        "description": "Technical details that pin down the exact product, such as connector types, cable length, storage capacity or screen size. Uses the same fields as quote_office_supplies specs: connectors, length, capacity, card_type, va_rating, colour, ports, screen_size, wireless, interface.",
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / items / items / anyOf
      Previous value: -[
      -  {
      -    "description": "One line in the buyer's words, quantity included, e.g. '3 x HDMI cable 5m', 'microSD 128GB x10', '2 pcs HP 206A cyan toner'.",
      -    "type": "string"
      -  },
      -  {
      -    "properties": {
      -      "brand": {
      -        "type": "string"
      -      },
      -      "category": {
      -        "description": "Optional: a supplies category (cable, adapter, usb-hub, memory-card, flash-drive, ssd, hdd, card-reader, ...) or an event print category (name-cards, lanyards, roll-up-banners, tote-bags).",
      -        "type": "string"
      -      },
      -      "item": {
      -        "description": "The buyer's own wording for this line.",
      -        "type": "string"
      -      },
      -      "model": {
      -        "description": "Model number or cartridge code exactly as printed.",
      -        "type": "string"
      -      },
      -      "quantity": {
      -        "default": 1,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "specs": {
      -        "description": "Same fields as quote_office_supplies specs: connectors, length, capacity, card_type, va_rating, colour, ports, screen_size, wireless, interface.",
      -        "type": "object"
      -      }
      -    },
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "description": "One line in the buyer's words, quantity included, e.g. '3 x HDMI cable 5m', 'microSD 128GB x10', '2 pcs HP 206A cyan toner'.",
      +    "type": "string"
      +  },
      +  {
      +    "properties": {
      +      "brand": {
      +        "description": "Brand, e.g. HP, Logitech, SanDisk.",
      +        "type": "string"
      +      },
      +      "category": {
      +        "description": "Optional: a supplies category (cable, adapter, usb-hub, memory-card, flash-drive, ssd, hdd, card-reader, ...) or an event print category (name-cards, lanyards, roll-up-banners, tote-bags).",
      +        "type": "string"
      +      },
      +      "item": {
      +        "description": "The buyer's own wording for this line.",
      +        "type": "string"
      +      },
      +      "model": {
      +        "description": "Model number or cartridge code exactly as printed.",
      +        "type": "string"
      +      },
      +      "quantity": {
      +        "default": 1,
      +        "description": "Units needed for this line.",
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "specs": {
      +        "description": "Same fields as quote_office_supplies specs: connectors, length, capacity, card_type, va_rating, colour, ports, screen_size, wireless, interface.",
      +        "type": "object"
      +      }
      +    },
      +    "type": "object"
      +  }
      +]
  3. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well past the annotations (readOnlyHint=false, destructiveHint=false) by disclosing the outputs: per-line match level (exact, spec, similar, needs_detail, no_match), all-in SGD price with 9% GST and Singapore delivery included, ready-by date, a total for priced lines, and a clarify list. It also implies persistence by reference to a list_id, which is consistent with readOnlyHint=false — no contradiction.

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?

Front-loaded with purpose, then behavior, then the decision rule, then an example — the ordering is right and every sentence carries information. It is a single dense paragraph, though, and the return-value details could be split for faster scanning.

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 carries the return contract itself (match levels, all-in pricing with GST and delivery, ready-by date, totals, clarify list) and covers the escalation path to request_quote. Combined with a fully documented 6-parameter schema, nothing an agent needs to invoke or interpret it is missing.

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%, so the baseline is 3; the description adds value by restating the two accepted line shapes (a plain string like '3 x HDMI cable 5m' or an object with item, quantity, category, brand, model, specs) and supplying a concrete example input. It stops short of explaining how the string parser resolves quantities or how needed_by interacts with ready-by dates, so it is not a full 5.

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?

States a specific verb and resource — 'Price a whole shopping list or RFQ in one call: many line items' — and contrasts that batch scope with the single-item pricing siblings (quote_office_supplies, quote_event_print) and with request_quote for a firm quote. An agent can tell which tool handles a multi-line list versus a single item or a binding quote without opening any schema.

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?

Gives explicit routing: 'Never invent prices for unpriced lines: ask what clarify lists, or convert the list to a firm quote with request_quote (pass list_id).' That names the alternative and the exact handoff parameter, and the 'needs_detail/no_match' handling tells the agent what to do when pricing fails.

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.