Skip to main content
Glama

Singapore Buying Desk (Connective Labs)

Server Details

Firm SGD quotes and delivery in Singapore for office and IT supplies, ink, toner and event print

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
connectivehub/sg-event-print
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation3/5

The three pricing tools overlap heavily: quote_list prices office supplies AND event print, which quote_office_supplies and quote_event_print also cover, so an agent could reasonably pick the wrong one. request_quote and request_service also blur (one opens a form, the other submits it). Descriptions do add guidance ('other custom print goes through request_quote'), and resolve_sg_address/rush_order_status/singapore_how_to are clearly distinct, but the core quote cluster is ambiguous.

Naming Consistency4/5

A predictable verb_noun pattern dominates (quote_*, request_*, list_categories, resolve_sg_address, rush_order_status), which is readable and mostly consistent. singapore_how_to is the one deviation, breaking the verb_noun convention, but not enough to disrupt parsing.

Tool Count4/5

Nine tools is a sensible size for a buying desk with quoting, order-status, and helper utilities. Each tool has a plausible role, though resolve_sg_address and singapore_how_to feel somewhat tangential to the quoting core.

Completeness4/5

The quote lifecycle is well covered: browse categories, instant pricing (single, bulk list, event print), firm-quote requests, form entry, and status lookup. No checkout/approval tool exists, but the flow states nothing is charged until email approval, so this is a minor gap rather than a dead end.

Available Tools

9 tools
list_categoriesList what the desk quotesA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description does add real value by naming the returned sections (specs needed to price, instant-price flags, operator details), but there is no output schema and the phrasing of the last two clauses is too vague to tell an agent what it actually receives.

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?

A single sentence with the verb and resource front-loaded, but it is a comma-heavy run-on whose tail ('then event print and merch categories, which ones get an instant price, and the operator details') is ambiguous and could be tightened into a clean list of returned sections.

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 no-parameter read tool whose annotations already carry the safety profile, the description gives an adequate picture of what the listing contains. The lack of an output schema means the description ideally would pin down the returned structure more concretely, which it only partially does.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter-related claims are made or needed.

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

Purpose4/5

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

States a specific verb (list) and resource (categories the Singapore Buying Desk quotes), and its content scope separates it from the sibling quote_* tools that actually produce prices. The trailing fragments ('which ones get an instant price, and the operator details') blur the boundary slightly, but the core purpose is unmistakable.

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

Usage Guidelines3/5

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

Usage is only implied: an enumeration tool naturally precedes the quote_* siblings, but the description never says 'call this before request_quote' or names an alternative. No when-not guidance either, so an agent must infer the routing.

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

quote_event_printInstant quote for event print and merchA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryYes
quantityYesNumber of pieces (name cards: number of cards, sold in boxes of 100).
needed_byNoDeadline the items must be in hand, YYYY-MM-DD, Singapore time.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint, so the description carries the rest of the burden. It discloses that the price is all-in (GST and Singapore delivery included, SGD) and that same-day to 5-day rush is available, which is genuinely useful context beyond the annotations. It does not discuss rate limits or pagination, but for a read-only quote endpoint that is a minor omission.

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 the core value (instant all-in price and ready-by date) before category detail, and every clause adds information. It is denser than needed in the first sentence, but no sentence is filler.

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 nonetheless tells the agent what comes back (all-in price in SGD plus a ready-by date). Combined with the clear scope boundary against request_quote, nothing an agent needs to select or invoke this tool correctly 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?

With 67% schema coverage, the description adds real meaning: it clarifies that needed_by drives rush-option selection ('Pass the deadline to see options that make it') and lists the category values in prose, reinforcing the enum. Quantity semantics are left to the schema's own note, so it goes slightly beyond baseline but not fully.

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 (instant all-in price and ready-by date for event print/merch) and enumerates the exact product categories covered. It explicitly names request_quote as the handler for everything outside that scope, so an agent can distinguish it from siblings 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 the trigger ('Use when someone wants these printed or priced'), the key action ('Pass the deadline to see options that make it'), and an explicit exclusion routing other custom print/merch to request_quote. When-to-use and when-not-to-use are both covered.

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

quote_listPrice a list of items (RFQ)A
Read-onlyIdempotent
Inspect

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).

ParametersJSON 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).

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context: prices are all-in SGD with 9% GST and Singapore delivery, and unpriced lines must be surfaced rather than fabricated. It does not discuss rate limits, batch cost, or failure modes for a 50-line call.

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-loads the purpose and return shape before the edge-case rule, and most clauses earn their place. The final sentence is dense and slightly run-on, packing the anti-fabrication rule and the request_quote escalation into one string.

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 takes on the burden and discharges it: it enumerates the per-line returns (match level, all-in SGD price, ready-by date), the aggregate total, and the clarify list. An agent knows what it will get back and when to escalate.

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

Parameters3/5

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

Schema description coverage is 100% and every parameter is already documented there. The description restates the string-vs-object line format ('item, quantity, category, brand, model, specs') without adding syntax or precedence rules beyond the schema, so the baseline 3 applies.

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') and scopes it to many line items across office/IT supplies and event print, which cleanly separates it from the single-item siblings quote_office_supplies and quote_event_print.

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: use this for bulk lists, and 'convert the list to a firm quote with request_quote (pass list_id)' names the alternative plus the parameter to thread. It also states the negative case ('Never invent prices for unpriced lines') and what to do instead.

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

quote_office_suppliesInstant quote for office and IT suppliesA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNoThe 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.
brandNoBrand, e.g. HP, Brother, Canon, Logitech, SanDisk, APC, Eaton, Ugreen.
modelNoModel 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'.
specsNoKey specs you know. Use the fields that apply to the category; omit the rest.
categoryNoItem category if known. ink-toner covers ink, toner and ribbons; usb-hub covers hubs and docking stations; camera covers webcams.
quantityNoNumber of units.
needed_byNoDeadline the items must be in hand, YYYY-MM-DD, Singapore time. Each option then shows makes_deadline.

TDQS

A4.6/5.0
Behavior4/5

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

Without output schema, the description carries the burden and does so well: it specifies the exact price semantics (9% GST + Singapore delivery included), the confidence tiers (exact/spec/similar, with differences listed for similar), the no-match behavior ('needs_detail' plus what to ask), and the hard rule to never invent a price. The annotations (readOnlyHint, openWorldHint=false) already establish safety and closed-world scope; the description adds the pricing and matching behavior on top. It doesn't cover rate limits or latency, but that's minor for a read-only quote tool.

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?

It is long and dense, but the upfront sentence delivers the core value first (all-in price + ready-by date + scope) before the enumeration and per-category spec list. The spec guidance is genuinely useful and not padded, though the length is at the upper end for a tool description. It earns most of its words.

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?

For a 7-param, no-output-schema read-only quoting tool, the description is complete: it defines what the tool returns, the input it expects, the confidence model for results, the vague-input handling path, and the fallback to request_quote when nothing matches. An agent has everything needed to call it, interpret the result, and act on 'needs_detail'. Nothing essential 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 schema already documents each parameter. The description adds value beyond that by prescribing per-category key specs (cables: connector at each end + length in metres; adapters: from + to; memory cards: card type + capacity; flash drives: capacity + connector; SSD/HDD: capacity + internal/external; UPS: VA rating or model; ink/toner: printer brand + cartridge code + colour; mice/keyboards: model or wired/wireless; monitors: size in inches; switches: port count). This is actionable guidance that improves match quality, exceeding the baseline 3 despite full schema coverage.

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 opens with a precise statement of what the tool returns: a current all-in SGD price (including 9% GST and Singapore delivery) and a ready-by date for office/IT/electronics supplies. It enumerates the supported categories and scopes the result to Singapore, distinguishing it clearly from the other quote_* siblings (quote_event_print, quote_list, request_quote).

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?

It explicitly tells the agent to 'Pass category, brand, model, specs, quantity and needed_by whenever you know them, plus the buyer's own words in item.' It also handles the vague-request case: if the result has match 'needs_detail', ask the buyer and call again. And it routes to the alternative sibling: 'if nothing matches, call request_quote with category office-it-supplies.' Nothing is left to inference.

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

request_quoteRequest a firm quote or place an orderAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsNoList 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).
companyNoBuyer's company, if any.
list_idNoList requests: the list_id returned by quote_list (valid 14 days). Its lines are used when items is not given.
categoryNoSingle-item requests: the category. Not needed when items or list_id is given.
quantityNoSingle-item requests: number of units.
needed_byYesDeadline date, YYYY-MM-DD.
budget_sgdNoOptional maximum budget in SGD.
descriptionNoSingle-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_nameNo
contact_emailYesWhere to send the firm quote.
delivery_locationNoDelivery address or area in Singapore, or 'self-collect'.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint=false, openWorldHint=true, destructiveHint=false), and the description adds workflow context they do not: a reference is returned, the firm price and date arrive by contact email usually the same business day, nothing is charged until the buyer approves, and delivery is Singapore-only. That is genuinely useful post-submission behavior. It stops short of five because it does not address whether resubmitting duplicates a request, even though idempotentHint=false.

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-loads the core purpose in the first sentence, then adds usage, return behavior, charging, and geography in a tight paragraph. Long but nearly every sentence carries information an agent needs; only the sibling enumeration borders on list-like density.

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 an 11-parameter mutation tool with no output schema, the description covers the input modes, what is returned (a reference), how the firm quote reaches the buyer, cost implications, and the Singapore-only constraint. What remains unexplained is mostly handled by the high-coverage schema, so it is complete enough to call correctly.

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 description coverage is 91%, so the baseline is 3 and the schema already documents most fields. The description adds routing meaning the schema lacks on its own: items must be "the same line items you gave quote_list," list_id comes from quote_list, and category/quantity/description are single-item-only, which clarifies the mutually exclusive modes.

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 ("Submit a request for a firm quote") and immediately contrasts its scope with siblings: it covers what quote_office_supplies doesn't match, plus custom print/merch and orders for instantly priced items. An agent can tell it apart from quote_list, quote_office_supplies, and quote_event_print 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?

Explicit about the two invocation modes (single item vs whole list) and which field selects each. It enumerates the concrete situations that route here: unmatched office/IT items, custom event print and merch, unusual specs, deadlines faster than any instant option, and orders of instantly priced items. Nothing is left to inference.

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

request_serviceGet QuoteA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsNoOptional: lines to prefill in the form.
needed_byNoOptional: deadline to prefill, YYYY-MM-DD.
business_idYesprovider_business_id from the business feed. This desk: connective-labs-sg-buying-desk.
delivery_areaNoOptional: delivery area to prefill.

Output Schema

ParametersJSON Schema
NameRequiredDescription
prefillNo
businessYes
categoriesNo
business_idYes
how_it_worksNo
business_id_recognizedYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered; the description adds real value by clarifying 'Opening the form changes nothing', which confirms the no-side-effect behavior and defines the boundary with request_quote. It does not describe the returned form payload, but an output schema exists to carry that.

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?

Two sentences are front-loaded with the purpose and then the invocation/behavior, with no filler. The parentheticals (entity name, business_id slug) are dense but justified for disambiguation.

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 rich annotations, a full output schema, and 100% parameter coverage, the description only needs to add routing and behavior — which it does: purpose, trigger, no-op confirmation, and the hand-off to request_quote. Nothing an agent needs to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the descriptions are rich (regex-style examples, spec field lists, enums-by-example), so the schema does the heavy lifting. The description restates the business_id source already in the schema and only loosely gestures at the items prefill behavior, adding little beyond structured data. Baseline 3 applies.

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 ('Open the Get Quote form for the Singapore Buying Desk'), names the exact business entity, and explicitly distinguishes itself from the sibling that actually submits ('submitting it calls request_quote'). An agent can tell it apart from request_quote without opening either 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 the exact trigger ('ChatGPT calls this from the Get Quote button with the business_id from the business feed') and names the alternative action and when it applies (submitting calls request_quote). Both the when-to-use condition and the responsibility boundary are explicit.

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

resolve_sg_addressLook up a Singapore address, postal code or buildingA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesOne 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.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent and open-world, and the description adds substantial behavior beyond them: up to 3 candidates on ambiguous input, explicit mismatch warnings for block/street/floor, 'unknown' fallback for the delivery note, and named upstream data sources (OneMap/SLA, LTA, HDB). This is unusually thorough for a lookup tool.

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 the trigger condition, then a dense but justified enumeration of return fields. The long return list is warranted because there is no output schema, though the prose runs as one block and could be broken into shorter sentences.

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 takes on the burden of describing the response (normalized address, coordinates, district/HDB town, two nearest stations with distance and walk time, building type, delivery note) and does so completely, including the ambiguity and mismatch behaviors an agent must handle.

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

Parameters3/5

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

There is a single parameter and schema description coverage is 100%, so the schema already carries accepted forms and examples. The description restates the same input shapes ('as the user wrote it', abbreviations) without adding syntax or constraints the schema lacks, so the baseline of 3 applies.

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+resource (resolve/look up a Singapore address, postal code or building) and pins the scope with 'Singapore only'. The sibling list contains no overlapping tool, so differentiation is not an issue and the purpose is unmistakable.

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?

Opens with a rich trigger list ('Use when the user gives or asks about a Singapore postal code, block and street, unit number, or building or place name') plus concrete question archetypes the tool answers. It never names a fallback alternative for non-Singapore or multi-location inputs, only the 'Singapore only' exclusion.

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

rush_order_statusCheck a quote requestB
Read-only
Inspect

Check the status of a custom quote request or order by its reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
referenceYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that the lookup spans both quote requests and orders, but says nothing about auth needs, rate limits, or lookup-failure behavior. Modest added value on top of annotations.

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?

A single front-loaded sentence with no wasted words. It is sized correctly for a one-parameter read tool, though it is minimal enough that it could have afforded one more clarifying clause.

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 simple single-parameter read operation with annotations covering the safety profile and no output schema required in the description, this is nearly complete. The only shortfall is the absence of any lookup-failure or result-shape context.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate for the single parameter. 'By its reference' does give the parameter's semantic role, but it adds no format, type, or example detail. Adequate but thin given the zero coverage.

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

Purpose4/5

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

States a clear verb+resource ('Check the status of a custom quote request or order') and names the lookup key ('by its reference'), which separates it from the list-type siblings like quote_list. It could be sharper about the odd mismatch between the tool name (rush_order_status) and the quoted breadth (quote requests AND orders).

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

Usage Guidelines2/5

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

It implies the usage precondition (you must have a reference) but never says when to pick this over quote_list or request_quote, nor any exclusions. That is the same level of guidance as the MID calibration example, which scored 2.

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

singapore_how_toHow to get an errand or government process done in SingaporeA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesThe 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'.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial behavior beyond them: returns 1-3 matches with source_url and last_checked, discloses uncertainty by flagging guesswork for uncovered tasks, and explains agent-vs-user hand-off. This is rich disclosure layered on top of annotations.

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-loads the use case and the return contract before the long coverage inventory, and the inventory does earn its place for retrieval routing. However, the mid-section is a dense run-on list that would read better as bullets, costing some scannability.

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 full burden and does so: it specifies the returned fields (source_url, last_checked), the match count (1-3), the 'not covered' behavior, and the guess-labelling. Nothing material is missing 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 shows example task strings, so baseline is 3. The description adds value by enumerating the domains of valid tasks (passports, tax, work passes, HDB, etc.), which helps an agent frame the free-text 'task' argument correctly, though it does not define syntax beyond that.

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 function (find how to get a Singapore errand/government process done) and enumerates the exact domain coverage, so an agent can tell it apart from the quote/address siblings at a glance. The scope is bounded (Singapore only) and the output shape (best 1-3 matches) is named.

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?

Explicitly says who it is for (residents, employers, visitors), what it returns, and gives clear exclusions: 'Singapore only; not for other countries, and not for recommendations such as restaurants or sights.' The alternative-use boundary is stated rather than inferred.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedresolve_sg_address1 field changed
      • changedInput schema / properties / query / description
        Previous value: -"A 6-digit postal code, an address with block, street and optional unit, or a building or place name, e.g. '570151', 'Blk 123 Ang Mo Kio Ave 6 #04-56', 'ION Orchard'."New value: +"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."
    • Changedsingapore_how_to1 field changed
      • changedInput schema / properties / task / description
        Previous value: -"The errand in plain words, e.g. 'renew passport', 'dispose of an old sofa', 'book a badminton court'."New value: +"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'."
  2. 2 tool updates
    • Addedresolve_sg_address
    • Addedsingapore_how_to
  3. 3 tool updates
    • Addedquote_list
    • Changedrequest_quote7 fields changed
      • addedInput schema / properties / category / description
        Added value: +"Single-item requests: the category. Not needed when items or list_id is given."
      • addedInput schema / properties / company
        Added value: +{
        +  "description": "Buyer's company, if any.",
        +  "type": "string"
        +}
      • changedInput schema / properties / description / description
        Previous value: -"What is needed, with all known specs (brand, model, connectors, capacity, size, material, finish, colours, artwork status)."New value: +"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."
      • addedInput schema / properties / items
        Added value: +{
        +  "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).",
        +  "items": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "object"
        +      }
        +    ]
        +  },
        +  "maxItems": 50,
        +  "type": "array"
        +}
      • addedInput schema / properties / list_id
        Added value: +{
        +  "description": "List requests: the list_id returned by quote_list (valid 14 days). Its lines are used when items is not given.",
        +  "type": "string"
        +}
      • addedInput schema / properties / quantity / description
        Added value: +"Single-item requests: number of units."
      • changedInput schema / required
        Previous value: -[
        -  "category",
        -  "description",
        -  "quantity",
        -  "needed_by",
        -  "contact_email"
        -]New value: +[
        +  "needed_by",
        +  "contact_email"
        +]
    • Addedrequest_service
  4. 5 tool updates
    • First observedlist_categories
    • First observedquote_event_print
    • First observedquote_office_supplies
    • First observedrequest_quote
    • First observedrush_order_status

Publisher details

Operator
Connective Labs Pte. Ltd.
Vendor relationship
Not applicable
Documentation
Not applicable
Trust center
Not applicable
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.