6 tools registered. Strongest in tool quality, weakest in trust.
// document.modelContext is the canonical entry point - the navigator.modelContext alias is deprecated.
document.modelContext.registerTool({ /* ... */ });get_profile: 1 parameter has no description (section); get_projects: 3 parameters have no description (category, limit, offset); get_articles: 3 parameters have no description (category, limit, offset{
name: "get_profile",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}get_profile, get_projects, get_articles, get_services, calculate_project_cost{
name: "get_profile",
// 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 }
}get_profile, get_projects, get_articles, get_services, submit_contact// Make the tool's effect visible on the page the person is looking at:
// update the same UI your existing human flow uses when get_profile 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": "get_profile",
"description": "Retrieve Zain Ahmed's verified multi-cloud engineering credentials (AWS, Azure, GCP, OCI), social profiles, and core specialties.",
"inputSchema": {
"type": "object",
"properties": {
"section": {
"type": "string",
"enum": [
"all",
"credentials",
"bio",
"contacts"
],
"default": "all"
}
}
},
"annotations": {}
}get_profile, get_projects, get_articles, get_services, submit_contact// Make the tool's effect visible on the page the person is looking at:
// update the same UI your existing human flow uses when get_profile 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;
}calculate_project_cost: registered at 1136ms// Register tools as soon as they're ready, not behind a deferred/async chunk.
document.modelContext.registerTool({ /* ... */ });// document.modelContext is the canonical entry point - the navigator.modelContext alias is deprecated.
document.modelContext.registerTool({ /* ... */ });get_profile: 1 parameter has no description (section); get_projects: 3 parameters have no description (category, limit, offset); get_articles: 3 parameters have no description (category, limit, offset{
name: "get_profile",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}duplicate tool name registered: get_profiledocument.modelContext.registerTool({ /* ... */ }).catch(function (err) {
console.error("WebMCP registration failed", err);
});get_profile, get_projects, get_articles, get_services, calculate_project_cost{
name: "get_profile",
// 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 }
}