4 tools registered. Strongest in shared experience, weakest in trust.
{ name: "sign_up" /* short, unique, verb-based */ }{
"name": "sign_up",
"description": "Starts a Judt account for a person. Judt emails them a sign-up link and a 6-digit code. The account exists only once the owner of the address follows the link, or gives you the code to pass to verify_code, which also signs in this browser. If the address already has an account, the email logs them in instead. The answer is the same either way.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The person's name, for the new account."
},
"email": {
"type": "string",
"format": "email",
"maxLength": 320,
"description": "The person's email address."
}
},
"required": [
"name",
"email"
],
"additionalProperties": false
},
"annotations": {
"consequentialHint": true
}
}{ name: "sign_up" /* short, unique, verb-based */ }verify_code{
name: "verify_code",
// 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 }
}send_message: message, replie, email{ name: "send_message", annotations: { untrustedContentHint: true } }verify_code: description instructs agent how to behave and what to do next; send_message: description instructs agent how to behave and what to output{
name: "verify_code",
// 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": "John Doe",
"email": "john.doe@example.com"
}{
"email": "john.doe@example.com"
}{
"email": "john.doe@example.com",
"code": "123456"
}