10 tools registered. Strongest in tool quality, weakest in trust.
search_portfolio, get_portfolio_works, get_case_study, get_services_and_pricing, get_testimonials{
name: "search_portfolio",
// 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 }
}{
"name": "search_portfolio",
"description": "Searches portfolio projects, client case studies, and engineering work by company name or topic and returns matching records with summaries and live URLs.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Company name, client name, or project keyword to search (e.g., Arbor, Morgenlevering, JobQualified, Northwind)."
}
},
"required": [
"query"
]
},
"annotations": {}
}usable: poor; clarity: poor; readability: 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;
}{ name: "scan_images_c2pa" /* short, unique, verb-based */ }duplicate tool name registered: search_portfoliodocument.modelContext.registerTool({ /* ... */ }).catch(function (err) {
console.error("WebMCP registration failed", err);
});search_portfolio, get_portfolio_works, get_case_study, get_services_and_pricing, get_testimonials{
name: "search_portfolio",
// 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 }
}create_contact_message: message, email; get_testimonials: review, author; get_contact_info: profile, email{ name: "create_contact_message", annotations: { untrustedContentHint: true } }scan_images_c2pa: Description instructs agent to use tool and notes about verification.; inspect_image_c2pa: Description instructs agent on parameter use and notes about verification.{
name: "scan_images_c2pa",
// 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."
}{
"query": "Northwind"
}{}{}