11 tools registered. Strongest in tool quality, weakest in trust.
goodleads_describe: description is 818 characters, over Chrome's 500-character guidance; goodleads_sample_leads: 1 parameter description is over Chrome's 150-character guidance; goodleads_quote_list: {
name: "goodleads_describe",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}goodleads_describe: post, email, mail{ name: "goodleads_describe", annotations: { untrustedContentHint: true } }goodleads_describe: description instructs agent to call tool first; goodleads_interpret_list: description instructs agent to start here; goodleads_list_starters: description instructs agent to show and narrow; goodleads_create_checkout: description instructs agent to say something first{
name: "goodleads_describe",
// 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": "goodleads_describe",
"description": "Call this first. What GoodLeads sells and how to evaluate it from this page: the owner of a newly formed US business, by name, with a mailing address and — where verified — a phone or email, on the list the morning after the state posts the filing and before Apollo, ZoomInfo or any other database has the business. Returns the product summary, what every record ships (with the sample-file link — the exact workbook, before paying), the two scores, provenance, the free evaluation tier, the buying journey (interpret → quote → checkout), and where the other tools fit. The close: put the quoted choice in front of the buyer — callable now (a verified phone), emailable now (a verified email, verified for deliverability and recent activity), or newest, mail-first — then hand over the payment link for the one chosen.",
"inputSchema": {
"type": "object",
"properties": {}
},
"annotations": {
"readOnlyHint": true,
"untrustedContentHint": false
}
}usable: poor; clarity: poor// Make the tool's effect visible on the page the person is looking at:
// update the same UI your existing human flow uses when your_tool_name runs,
// so the person co-browsing sees what the agent just did.
execute: async (args, { signal }) => {
const result = await performAction(args, signal);
renderResultInPage(result); // the human-visible half of the same action
return result;
}goodleads_describe: description is 818 characters, over Chrome's 500-character guidance; goodleads_sample_leads: 1 parameter description is over Chrome's 150-character guidance; goodleads_quote_list: {
name: "goodleads_describe",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}{ name: "goodleads_data_quality_scorecard" /* short, unique, verb-based */ }goodleads_interpret_list: readOnlyHint=true// readOnlyHint must match what the tool actually does - drop it (or set false) on a tool that writes.
{ name: "goodleads_interpret_list", annotations: { readOnlyHint: false } }goodleads_describe: post, email, mail{ name: "goodleads_describe", annotations: { untrustedContentHint: true } }goodleads_describe: description instructs agent to call tool first; goodleads_interpret_list: description instructs agent to start here; goodleads_list_starters: description instructs agent to show and narrow; goodleads_create_checkout: description instructs agent to say something first{
name: "goodleads_describe",
// 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."
}{}{}{}