The model picks a tool by reading its name and description. Paste the result of tools/list, or a function-calling array, and the linter checks every tool against the rules that decide whether it gets called at the right time: a verb_noun name, a description that says when to use it and when not to, a description for every parameter, enums for closed sets, shallow schemas.
Bad descriptions are the most documented failure in agent and MCP deployments, ahead of server bugs. A tool that says "Updates things" will be called for everything, or for nothing.
Everything runs in your browser. We store nothing from your input except an anonymised event: which tool ran and when. The rewrite suggestions are templates, not a model: read them before you ship them.
›Sample input
{
"tools": [
{
"name": "billing.get_invoice",
"description": "Returns one invoice with its line items and payment status. Use when the user names an invoice number. Do not use to search; use billing.search_invoices instead.",
"inputSchema": {
"type": "object",
"properties": {
"invoice_id": {
"type": "string",
"description": "Invoice number, e.g. INV-2041."
}
},
"required": [
"invoice_id"
]
}
},
{
"name": "createInvoice",
"description": "Creates invoice",
"inputSchema": {
"type": "object",
"properties": {
"customer_id": {
"type": "string"
},
"status": {
"type": "string",
"description": "Draft or final."
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"sku": {
"type": "string"
},
"qty": {
"type": "integer",
"description": "Quantity."
}
}
}
}
}
}
},
{
"name": "billing.search_invoices",
"description": "Searches invoices by customer, date range or status. Use when the user asks for a list. Do not use to read one invoice; use billing.get_invoice.",
"inputSchema": {
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"description": "Customer account ID."
},
"status": {
"type": "string",
"enum": [
"draft",
"open",
"paid",
"void"
],
"description": "Invoice status."
},
"from": {
"type": "string",
"format": "date",
"description": "Start date, inclusive."
}
}
}
},
{
"name": "delete_customer_record",
"description": "Deletes a customer and all of their invoices from the billing system. Use when asked.",
"inputSchema": {
"type": "object",
"properties": {
"customer_id": {
"type": "string",
"description": "Customer account ID."
}
},
"required": [
"customer_id"
]
}
},
{
"name": "update",
"description": "Updates things in the billing system.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "object",
"description": "What to update.",
"properties": {
"ref": {
"type": "object",
"description": "Reference.",
"properties": {
"meta": {
"type": "object",
"description": "Metadata.",
"properties": {
"mode": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
]
}