10 tools registered. Strongest in shared experience, weakest in trust.
search_catalog: 1 parameter has no description (catalog); browse_store: description is 891 characters, over Chrome's 500-character guidance; browse_store: 2 parameter descriptions are over Chrome's 15{
name: "search_catalog",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}search_catalog: Description instructs agent how to use other tools; browse_store: Description instructs agent how to use tool; get_product: Description instructs agent how to use tool; show_variant: Description instructs agent how to use tool{
name: "search_catalog",
// Metadata DESCRIBES the tool - it never addresses the agent reading it.
// Rewrite any name, description, title, or schema field description that
// instructs the agent (which tool to prefer, what to output, rules to
// ignore) so it states what the tool does and what it returns instead.
description: "Searches the catalog and returns matching items with prices."
}{
"name": "search_catalog",
"description": "Search the store catalog for products, collections, articles, and pages. Does NOT add anything to the cart; use update_cart for cart changes. If the user asks for a specific product variant, call get_product after search_catalog to inspect available variants, then show_variant to display one.",
"inputSchema": {
"type": "object",
"required": [
"catalog"
],
"properties": {
"catalog": {
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Search query string."
},
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Max results per type (1-10). Defaults to 5.",
"default": 5,
"minimum": 1,
"maximum": 10
}
}
}
}
}
}
},
"annotations": {
"readOnlyHint": true,
"untrustedContentHint": true
}
}search_catalog: 1 parameter has no description (catalog); browse_store: description is 891 characters, over Chrome's 500-character guidance; browse_store: 2 parameter descriptions are over Chrome's 15{
name: "search_catalog",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}{ name: "proceed_to_checkout" /* short, unique, verb-based */ }browse_store, get_product, show_variant{
name: "browse_store",
// Declare readOnlyHint: true on tools that truly have no side effects -
// that is the claim that lets an agent relax confirmation on reads.
// (false is the default, so declaring it adds no information.)
annotations: { readOnlyHint: true }
}manage_orders: user, customer{ name: "manage_orders", annotations: { untrustedContentHint: true } }search_catalog: Description instructs agent how to use other tools; browse_store: Description instructs agent how to use tool; get_product: Description instructs agent how to use tool; show_variant: Description instructs agent how to use tool{
name: "search_catalog",
// Metadata DESCRIBES the tool - it never addresses the agent reading it.
// Rewrite any name, description, title, or schema field description that
// instructs the agent (which tool to prefer, what to output, rules to
// ignore) so it states what the tool does and what it returns instead.
description: "Searches the catalog and returns matching items with prices."
}{
"catalog": {
"query": "carry-on suitcase under 300 dollars"
}
}{
"catalog": {
"id": "gid://shopify/Product/8092122409207",
"navigate": true
}
}{
"cart": {
"line_items": [
{
"item": {
"id": "gid://shopify/ProductVariant/44450301507895"
},
"quantity": 2
}
]
}
}