Firm SGD quotes and delivery in Singapore for office and IT supplies, ink, toner and event print
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
List what the Singapore Buying Desk quotes: office and IT supply categories with the specs each needs to price, then event print and merch categories, which ones get an instant price, and the operator details.
This tool takes no arguments.
List what the Singapore Buying Desk quotes: office and IT supply categories with the specs each needs to price, then event print and merch categories, which ones get an instant price, and the operator details.
No arguments.
{
"type": "object",
"properties": {}
}Instant all-in price (SGD, GST and Singapore delivery included) and ready-by date for name cards (business cards), printed lanyards, roll-up banners and tote bags in Singapore, for staff, offices or events, including same-day to 5-day rush. Use when someone wants these printed or priced. Pass the deadline to see options that make it. Other custom print and merch goes through request_quote.
| Argument | Type | Description |
|---|---|---|
| category* | string | |
| quantity* | integer | Number of pieces (name cards: number of cards, sold in boxes of 100). |
| needed_by | string | Deadline the items must be in hand, YYYY-MM-DD, Singapore time. |
{
"type": "object",
"required": [
"category",
"quantity"
],
"properties": {
"category": {
"enum": [
"name-cards",
"lanyards",
"roll-up-banners",
"tote-bags"
],
"type": "string"
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "Number of pieces (name cards: number of cards, sold in boxes of 100)."
},
"needed_by": {
"type": "string",
"description": "Deadline the items must be in hand, YYYY-MM-DD, Singapore time."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| text | string | Alternative to items: a pasted free-text list, one item per line (quantities like '3 x', 'x3', '3 pcs' are recognised). |
| items | array | Line items, up to 50. |
| company | string | Optional: buyer company. |
| needed_by | string | Deadline for the whole list, YYYY-MM-DD, Singapore time. |
| buyer_email | string | Optional: buyer email, used if the list is converted to a firm quote. |
| delivery_area | string | Delivery address or area in Singapore (prices already include Singapore delivery). |
Current all-in SGD price (9% GST and Singapore delivery included) and ready-by date for office, IT and electronics supplies, single units welcome: cables and adapters (HDMI, DisplayPort, USB-C, VGA, network), USB hubs and docks, storage (flash drives, microSD/SD cards, SSDs, hard drives), peripherals (mice, keyboards, webcams, headsets, speakers), monitors, UPS units, networking (switches, routers), printers, ink and toner, label tapes, tools. Pass category, brand, model, specs, quantity and needed_by whenever you know them, plus the buyer's own words in item. Key specs by category: cables: connector at each end + length in metres; adapters: from + to connector; memory cards: card type (microSD/SD/CF) + capacity; flash drives: capacity + connector (USB-A/USB-C); SSD/HDD: capacity + internal or external; UPS: VA rating or model; ink and toner: printer brand + cartridge code (or printer model) + colour; mice/keyboards: model, or wired/wireless; monitors: size in inches; network switches: port count. Each option carries confidence: exact (model number matches), spec (category and every key spec given match) or similar (closest line, with the differences listed). If the request is too vague to price, the result has match 'needs_detail' and lists what to ask the buyer; ask, then call again. Never invent a price: if nothing matches, call request_quote with category office-it-supplies.
| Argument | Type | Description |
|---|---|---|
| item | string | The buyer's own wording, e.g. 'HDMI cable 5m', 'microSD 128GB', 'Logitech M185', 'HP 206A cyan toner'. Kept for compatibility; structured fields below improve matching. |
| brand | string | Brand, e.g. HP, Brother, Canon, Logitech, SanDisk, APC, Eaton, Ugreen. |
| model | string | Model number or cartridge code exactly as printed, e.g. 'M185', '206A', 'TN-2480', '5E700UI'. For ink or toner the printer model also works, e.g. 'M283fdw'. |
Submit a request for a firm quote. Use it for one item (category, description, quantity) or for a whole list: pass items (the same line items you gave quote_list) or the list_id that quote_list returned. Covers office or IT items not matched by quote_office_supplies, custom event print and merch (backdrops, signage, branded merch, flyers, packaging), unusual specs, deadlines faster than any instant option, and orders for instantly priced items. Returns a reference; a firm price and date is sent to the contact email, usually the same business day. Nothing is charged until the buyer approves the firm quote. Singapore delivery only.
| Argument | Type | Description |
|---|---|---|
| items | array | List requests: line items, each a string like '2 x HDMI cable 5m' or an object with item, quantity and optional category, brand, model, specs (same shape as quote_list). |
| company | string | Buyer's company, if any. |
| list_id | string | List requests: the list_id returned by quote_list (valid 14 days). Its lines are used when items is not given. |
| category | string | Single-item requests: the category. Not needed when items or list_id is given. |
| quantity | integer | Single-item requests: number of units. |
| needed_by* | string | Deadline date, YYYY-MM-DD. |
| budget_sgd | number |
Open the Get Quote form for the Singapore Buying Desk (Connective Labs Pte. Ltd.): the buyer lists the office, IT or event print items they need, sees instant all-in SGD prices, and sends the list for a firm quote. ChatGPT calls this from the Get Quote button with the business_id from the business feed (connective-labs-sg-buying-desk). Opening the form changes nothing; submitting it calls request_quote.
| Argument | Type | Description |
|---|---|---|
| items | array | Optional: lines to prefill in the form. |
| needed_by | string | Optional: deadline to prefill, YYYY-MM-DD. |
| business_id* | string | provider_business_id from the business feed. This desk: connective-labs-sg-buying-desk. |
| delivery_area | string | Optional: delivery area to prefill. |
{
"type": "object",
"required": [
"business_id"
],
"properties": {
"items": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"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": "object",
"properties": {
"item": {
"type": "string",
"description": "The buyer's own wording for this line."
},
"brand": {
"type": "string"
},
"model": {
"type": "string",
"description": "Model number or cartridge code exactly as printed."
},
"specs": {
"type": "object",
"description": "Same fields as quote_office_supplies specs: connectors, length, capacity, card_type, va_rating, colour, ports, screen_size, wireless, interface."
},
"category": {
"type": "string",
"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)."
},
"quantity": {
"type": "integer",
"default": 1,
"minimum": 1
}
}
}
]
},
"maxItems": 50,
"description": "Optional: lines to prefill in the form."
},
"needed_by": {
"type": "string",
"description": "Optional: deadline to prefill, YYYY-MM-DD."
},
"business_id": {
"type": "string",
"description": "provider_business_id from the business feed. This desk: connective-labs-sg-buying-desk."
},
"delivery_area": {
"type": "string",
"description": "Optional: delivery area to prefill."
}
}
}Use when the user gives or asks about a Singapore postal code, block and street, unit number, or building or place name: what building or postal code it is, whether it is an HDB block, a condominium or a commercial building, the nearest MRT/LRT station and roughly how long the walk is, which postal district or HDB town it is in, or what a courier or delivery needs to know (guardhouse, loading bay). Returns the normalized address with block, street, postal code and parsed unit (floor and unit number), latitude and longitude, postal district (plus HDB town for HDB blocks), the 2 nearest MRT/LRT stations with straight-line distance and an approximate walking time, the building type and a one-line delivery note ('unknown' when the type cannot be told). Gives up to 3 candidates when the input is ambiguous and warns when the block, street or floor does not match. Singapore only. Data: OneMap search (Singapore Land Authority), LTA station exits and HDB property data from data.gov.sg. Read-only.
| Argument | Type | Description |
|---|---|---|
| query* | string | One Singapore location as the user wrote it: a 6-digit postal code, an address with block, street and optional #floor-unit, or a building or place name, e.g. '570151', 'Blk 123 Ang Mo Kio Ave 6 #04-56', 'Suntec Tower 3', 'ION Orchard'. Abbreviations such as Blk, Ave, St, Lor are fine. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "One Singapore location as the user wrote it: a 6-digit postal code, an address with block, street and optional #floor-unit, or a building or place name, e.g. '570151', 'Blk 123 Ang Mo Kio Ave 6 #04-56', 'Suntec Tower 3', 'ION Orchard'. Abbreviations such as Blk, Ave, St, Lor are fine."
}
}
}Check the status of a custom quote request or order by its reference.
| Argument | Type | Description |
|---|---|---|
| reference* | string |
{
"type": "object",
"required": [
"reference"
],
"properties": {
"reference": {
"type": "string"
}
}
}Singapore public holidays and working days for 2026 and 2027 (MOM data, including observed Monday holidays). Pass date alone to ask whether it is a public holiday or working day; from + add to get the date N working days later (negative N for earlier); from + to to count working days between two dates; or year to list that year's holidays. Weekends and public holidays are skipped. Each answer has as_of and the official source.
| Argument | Type | Description |
|---|---|---|
| to | string | YYYY-MM-DD end date: count working days from date to this date. |
| add | integer | Working days to add to date (negative to go back). The start date is not counted. |
| date | string | YYYY-MM-DD. Alone: is it a public holiday or working day? With add or to: the start date. |
| year | integer | 2026 or 2027: list that year's public holidays. |
{
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "YYYY-MM-DD end date: count working days from date to this date."
},
"add": {
"type": "integer",
"description": "Working days to add to date (negative to go back). The start date is not counted."
},
"date": {
"type": "string",
"description": "YYYY-MM-DD. Alone: is it a public holiday or working day? With add or to: the start date."
},
"year": {
"type": "integer",
"description": "2026 or 2027: list that year's public holidays."
}
}
}Latest NEA readings for Singapore, fetched about every 30 minutes: the 24-hour weather forecast (outlook, temperature, humidity, wind, conditions by region and period) and the 24-hour PSI and PM2.5 by region with NEA's air quality descriptor. Pass what: 'weather', 'psi' or 'both' (default). Each part has as_of and the official source.
| Argument | Type | Description |
|---|---|---|
| what | string | Which readings to return. Default both. |
{
"type": "object",
"properties": {
"what": {
"enum": [
"weather",
"psi",
"both"
],
"type": "string",
"description": "Which readings to return. Default both."
}
}
}Use for an errand, government process or practical how-to in Singapore, for residents, employers and visitors. It says which agency or type of business handles the task, the official channel and URL, whether Singpass, Corppass or a UEN is needed, whether it is fully online or needs a visit, fees and processing times only where the official page states them, whether an agent can act or must hand off to the user (login, app or phone), the next step, and any related API or MCP tool. Covers, among others: passports, NRIC and change of address; visas, the SG Arrival Card, tourist GST refunds at the airport, paying for MRT and buses as a visitor, SIM cards at Changi; personal and company income tax, GST registration, company and business registration and annual filing; work passes and domestic helper permits (new and renewal); HDB matters such as season parking, bulky item disposal, home-based businesses and neighbour or smoking complaints; municipal issues, police reports, scams, vehicles, road tax and parking; utilities, CPF, healthcare appointments, ActiveSG court bookings, school registration, pets; sending parcels; and buying office supplies or event print. Returns the best 1 to 3 matches from a list checked against official pages, each with source_url and last_checked. Says plainly when a task is not covered, and labels any agency suggestion for it as a guess. Singapore only; not for other countries, and not for recommendations such as restaurants or sights. Read-only.
| Argument | Type | Description |
|---|---|---|
| task* | string | The task in the user's own plain words, one task per call, e.g. 'renew my passport', 'get rid of an old mattress from my HDB flat', 'claim GST refund at the airport as a tourist', 'file corporate tax for my company', 'book a tennis court'. |
{
"type": "object",
"required": [
"task"
],
"properties": {
"task": {
"type": "string",
"description": "The task in the user's own plain words, one task per call, e.g. 'renew my passport', 'get rid of an old mattress from my HDB flat', 'claim GST refund at the airport as a tourist', 'file corporate tax for my company', 'book a tennis court'."
}
}
}{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Alternative to items: a pasted free-text list, one item per line (quantities like '3 x', 'x3', '3 pcs' are recognised)."
},
"items": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"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": "object",
"properties": {
"item": {
"type": "string",
"description": "The buyer's own wording for this line."
},
"brand": {
"type": "string"
},
"model": {
"type": "string",
"description": "Model number or cartridge code exactly as printed."
},
"specs": {
"type": "object",
"description": "Same fields as quote_office_supplies specs: connectors, length, capacity, card_type, va_rating, colour, ports, screen_size, wireless, interface."
},
"category": {
"type": "string",
"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)."
},
"quantity": {
"type": "integer",
"default": 1,
"minimum": 1
}
}
}
]
},
"maxItems": 50,
"minItems": 1,
"description": "Line items, up to 50."
},
"company": {
"type": "string",
"description": "Optional: buyer company."
},
"needed_by": {
"type": "string",
"description": "Deadline for the whole list, YYYY-MM-DD, Singapore time."
},
"buyer_email": {
"type": "string",
"description": "Optional: buyer email, used if the list is converted to a firm quote."
},
"delivery_area": {
"type": "string",
"description": "Delivery address or area in Singapore (prices already include Singapore delivery)."
}
}
}| specs | object | Key specs you know. Use the fields that apply to the category; omit the rest. |
| category | string | Item category if known. ink-toner covers ink, toner and ribbons; usb-hub covers hubs and docking stations; camera covers webcams. |
| quantity | integer | Number of units. |
| needed_by | string | Deadline the items must be in hand, YYYY-MM-DD, Singapore time. Each option then shows makes_deadline. |
{
"type": "object",
"properties": {
"item": {
"type": "string",
"description": "The buyer's own wording, e.g. 'HDMI cable 5m', 'microSD 128GB', 'Logitech M185', 'HP 206A cyan toner'. Kept for compatibility; structured fields below improve matching."
},
"brand": {
"type": "string",
"description": "Brand, e.g. HP, Brother, Canon, Logitech, SanDisk, APC, Eaton, Ugreen."
},
"model": {
"type": "string",
"description": "Model number or cartridge code exactly as printed, e.g. 'M185', '206A', 'TN-2480', '5E700UI'. For ink or toner the printer model also works, e.g. 'M283fdw'."
},
"specs": {
"type": "object",
"properties": {
"ports": {
"type": "integer",
"description": "Number of ports (hubs, switches)."
},
"colour": {
"type": "string",
"description": "Ink or toner colour: black, cyan, magenta, yellow."
},
"length": {
"type": "string",
"description": "Cable length, e.g. '5m'."
},
"capacity": {
"type": "string",
"description": "Storage capacity, e.g. '128GB', '2TB'."
},
"wireless": {
"type": "boolean",
"description": "true for wireless, false for wired (mice, keyboards, headsets)."
},
"card_type": {
"enum": [
"microSD",
"SD",
"CF"
],
"type": "string",
"description": "Memory card type."
},
"interface": {
"type": "string",
"description": "Other interface detail, e.g. 'USB 3.0', 'Cat6', 'external', 'M.2 NVMe'."
},
"va_rating": {
"type": "string",
"description": "UPS rating, e.g. '1000VA' or '1.5kVA'."
},
"connectors": {
"type": "array",
"items": {
"type": "string"
},
"description": "Connector at each end, e.g. ['HDMI','HDMI'], ['USB-C','USB-A'], ['RJ45']. For hubs and flash drives, the host connector."
},
"screen_size": {
"type": "string",
"description": "Monitor size, e.g. '24 inch'."
}
},
"description": "Key specs you know. Use the fields that apply to the category; omit the rest."
},
"category": {
"enum": [
"cable",
"adapter",
"usb-hub",
"memory-card",
"flash-drive",
"ssd",
"hdd",
"card-reader",
"ups",
"ups-accessory",
"ink-toner",
"label-tape",
"mouse",
"keyboard",
"keyboard-mouse",
"mousepad",
"monitor",
"camera",
"headset",
"speaker",
"printer",
"network-switch",
"router",
"kvm",
"av-switch",
"power",
"tool",
"ram",
"optical",
"blocker",
"projector"
],
"type": "string",
"description": "Item category if known. ink-toner covers ink, toner and ribbons; usb-hub covers hubs and docking stations; camera covers webcams."
},
"quantity": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Number of units."
},
"needed_by": {
"type": "string",
"description": "Deadline the items must be in hand, YYYY-MM-DD, Singapore time. Each option then shows makes_deadline."
}
}
}| Optional maximum budget in SGD. |
| description | string | Single-item requests: what is needed, with all known specs (brand, model, connectors, capacity, size, material, finish, colours, artwork status). For a list, any overall notes. |
| contact_name | string |
| contact_email* | string | Where to send the firm quote. |
| delivery_location | string | Delivery address or area in Singapore, or 'self-collect'. |
{
"type": "object",
"required": [
"needed_by",
"contact_email"
],
"properties": {
"items": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object"
}
]
},
"maxItems": 50,
"description": "List requests: line items, each a string like '2 x HDMI cable 5m' or an object with item, quantity and optional category, brand, model, specs (same shape as quote_list)."
},
"company": {
"type": "string",
"description": "Buyer's company, if any."
},
"list_id": {
"type": "string",
"description": "List requests: the list_id returned by quote_list (valid 14 days). Its lines are used when items is not given."
},
"category": {
"enum": [
"office-it-supplies",
"name-cards",
"lanyards",
"roll-up-banners",
"tote-bags",
"backdrops",
"event-merch",
"printed-collateral",
"packaging"
],
"type": "string",
"description": "Single-item requests: the category. Not needed when items or list_id is given."
},
"quantity": {
"type": "integer",
"minimum": 1,
"description": "Single-item requests: number of units."
},
"needed_by": {
"type": "string",
"description": "Deadline date, YYYY-MM-DD."
},
"budget_sgd": {
"type": "number",
"description": "Optional maximum budget in SGD."
},
"description": {
"type": "string",
"description": "Single-item requests: what is needed, with all known specs (brand, model, connectors, capacity, size, material, finish, colours, artwork status). For a list, any overall notes."
},
"contact_name": {
"type": "string"
},
"contact_email": {
"type": "string",
"description": "Where to send the firm quote."
},
"delivery_location": {
"type": "string",
"description": "Delivery address or area in Singapore, or 'self-collect'."
}
}
}