CanWeShip Product Guidance
Server Details
Preliminary USPS, UPS and FedEx rules for shipping perfume, batteries, aerosols and more in the U.S.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool has a clearly distinct role: list_products discovers products, get_product_guidance retrieves detailed guidance for one product, and check_product evaluates supplied facts against carrier rules. The descriptions explicitly clarify how they relate and when to use each, so an agent should not confuse them.
All three tools follow a consistent snake_case verb_noun pattern: list_products, get_product_guidance, check_product. The vocabulary is predictable and readable, with no mixed casing or inconsistent verb styles.
Three tools is well-scoped for a narrow product-shipping-guidance domain: discovery, detailed guidance, and fact-checking. Each tool earns its place, and related functionality such as FAQs and sources is handled through parameters rather than separate tools.
The core lifecycle is covered: find a product, retrieve its guidance with sources, and validate facts. Minor gaps remain, such as batch evaluation or richer standalone source/FAQ access, though the include parameter mitigates most of these.
Available Tools
3 toolscheck_productEvaluate Product Shipping FactsARead-onlyIdempotentInspect
Evaluate supplied product facts through the same deterministic USPS, UPS and FedEx rule runtime used by the CanWeShip checker. Use the fact ids from get_product_guidance questions. Unknown or invalid facts are ignored and never treated as clearance; next_questions lists the facts still open, in the order the checker asks them.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | A product slug from list_products (laptop, power-bank), a named product (iphone-15, anker-737-power-bank, aerosol-deodorant) or a product name or alias (cbd oil). | |
| facts | No | Facts already confirmed by the user, keyed by question id, for example { "device_condition": "used", "battery_wh": 52.6 }. | |
| carriers | No | Optional carrier subset; defaults to all three carriers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive/non-open-world, so the description correctly spends its words elsewhere. It adds two genuinely non-obvious behaviors: unknown or invalid facts are silently ignored and never count as clearance (a safety-critical fail-closed semantic), and next_questions is ordered the way the checker asks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, each carrying distinct information: what it does, how to source the inputs, and the fail-closed/ordering behavior. The prerequisite sentence is front-loaded before the edge-case behavior, so an agent can act on it immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with a nested free-form object and no output schema, it covers input provenance, invalid-input handling, and one key return field. The gap is the response shape: besides next_questions it does not say whether carrier-specific failures, reasons, or a verdict field are returned, which matters given there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 earns an extra point by explaining where the `facts` keys come from (question ids from get_product_guidance) and what happens to bad keys (ignored). It adds nothing for `carriers` or `slug`, which the schema already documents well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Evaluate') and resource ('supplied product facts') and pins the mechanism to 'the same deterministic USPS, UPS and FedEx rule runtime used by the CanWeShip checker'. It also signals output content ('next_questions lists the facts still open'), though the actual verdict/clearance result is only implied via the negation 'never treated as clearance'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit sequencing guidance: 'Use the fact ids from get_product_guidance questions', which tells the agent to call the sibling first and how to key the facts object. It stops short of an explicit when-not-to-use statement or naming list_products as the entry point for slugs, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_product_guidanceGet Product Shipping GuidanceARead-onlyIdempotentInspect
Get preliminary U.S. domestic shipping guidance for one product: the answer with claim-level source IDs, the facts check_product accepts (ids, types, allowed values), carrier context, review dates and the cited official sources. Accepts product slugs, named products and aliases. FAQs, rule evidence and the full source list are left out unless requested with include.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | A product slug from list_products (laptop, power-bank), a named product (iphone-15, anker-737-power-bank, aerosol-deodorant) or a product name or alias (cbd oil). | |
| include | No | Optional extras: faqs, rule_evidence (every rule with its condition) or all_sources. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely non-annotated context: the answer is 'preliminary', it arrives with claim-level source IDs and review dates, and FAWs/rule evidence/all sources are omitted by default and must be opted into via include — that default-vs-optional behavior is exactly the kind of disclosure an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, and the two short follow-on sentences handle input tolerance and the default/opt-in split. The middle enumeration of returned content is dense but every item is a distinct payload component, so it earns its place; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return shape, and it does: claim-level source IDs, check_product-compatible facts, carrier context, review dates and cited sources. Together with the input tolerance note and the include opt-in, an agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 applies, but the description adds meaning beyond the schema: it explains that slug tolerates slugs, named products and aliases (matching the schema's examples but framing the tolerance explicitly), and it characterizes include as an opt-in for material that is otherwise withheld, which the enum list alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause gives a specific verb and resource with scope ('Get preliminary U.S. domestic shipping guidance for one product'), which is far more informative than the title alone. It also lists the return contents, so an agent knows what it gets. It stops short of explicitly contrasting itself with list_products or check_product, so it falls just below the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the description says the response includes 'the facts check_product accepts', hinting at the get-then-check workflow, but never says when to call this versus list_products. The include clause does give actionable guidance on when to request extras ('left out unless requested with include'), which is real, if narrow, when-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_productsList Supported ProductsARead-onlyIdempotentInspect
List the products CanWeShip checks, each with the first sentence of its answer, verification date and guide URL. Pass query to search product names, aliases and named products such as iPhone 15 or aerosol deodorant; each named product says which product check answers for it.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional text to search, for example iphone 15, deodorant or cbd oil. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds real value beyond that by specifying the shape of returned records (first sentence, verification date, guide URL) and that named products indicate which product check answers for them. It stops short of noting result limits or pagination, which is the remaining gap for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what is returned before the parameter guidance, with no filler. The second sentence is dense but each clause contributes new information about search behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one optional parameter, no output schema, and rich annotations, the definition covers purpose, return contents, and search semantics well enough to invoke correctly. Minor omissions are result-volume behavior and an explicit pointer to the sibling check tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the query parameter is already documented with examples, so the baseline would be 3. The description nonetheless adds meaning the schema lacks: query searches product names, aliases, and named products, and named products resolve to a specific product check.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('List the products CanWeShip checks') and even characterizes each result (first sentence of its answer, verification date, guide URL). It does not explicitly contrast itself with check_product or get_product_guidance, so the agent must infer that this is the browsing/listing entry point rather than the per-product check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence explains what passing query does and gives concrete examples, which implies the browsing use case. There is no explicit when-to-use-this-vs-check_product guidance, no statement that omitting query lists everything, and no exclusions, leaving the sibling routing to inference.
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.
3 tool updates
- First observed
check_product - First observed
get_product_guidance - First observed
list_products
Related MCP Connectors
Duties, tariffs, taxes and fees for parcels and freight between Canada and the US.
Live USPS, UPS, FedEx and DHL rates from the US: domestic, Canada, UK, Germany, Australia. No scale.
Dated US import facts: CBP rulings, Section 301 ladder, landed cost, rule changes, recalls.
All-in DDP quotes for China to USA shipments, 100 g to 2,000 kg, from a live rate card
Related MCP Servers
- AlicenseAqualityAmaintenanceLive USPS, UPS, FedEx and DHL Express parcel rates from a US origin, domestic or to Canada, the UK, Germany and Australia, from a plain-words item description: no scale, no account, no API key. Also creates checkout links, reports checkout status, tracks parcels bought on smklog.com and serves a monthly US parcel price index.51MIT
- AlicenseAqualityDmaintenanceManage shipping workflows by creating labels, tracking packages, and scheduling carrier pickups. Compare live rates from major carriers like FedEx and UPS to optimize costs for every shipment. Organize logistical operations with a centralized address book and detailed shipping analytics.189 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to track packages, rate and create shipments, manage pickups and customs documentation, and perform international shipping logistics checks through natural language.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to buy US shipping labels (USPS, UPS, FedEx) with automatic cheapest-rate selection, track parcels, and refund unused labels via the EasyPost API. Stateless, bring-your-own API key, free test keys available.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.