14 tools registered. Strongest in shared experience, weakest in task completion.
list_findings: 6 parameters have no description (severity, status, component, tag); set_finding_severity: 1 parameter has no description (severity); set_finding_status: 1 parameter has no description {
name: "list_findings",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}list_findings: Description instructs the agent when to use the tool.; inspect_finding: Description instructs the agent when to use the tool.; set_finding_severity: Description instructs the agent when to use the tool.; set_finding_status: Description instructs the agent when to use the tool and what to include.{
name: "list_findings",
// 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": "list_findings",
"description": "List findings in the active ThreatCanvas workspace, optionally filtered by severity, status, component, tag, or minimum priority. Use this to triage the board before inspecting or changing individual findings.",
"inputSchema": {
"type": "object",
"properties": {
"severity": {
"type": "string",
"enum": [
"critical",
"high",
"medium",
"low"
]
},
"status": {
"type": "string",
"enum": [
"open",
"investigating",
"accepted",
"scheduled",
"resolved"
]
},
"component": {
"type": "string",
"maxLength": 120
},
"tag": {
"type": "string",
"maxLength": 60
},
"minimumPriority": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"additionalProperties": false
},
"annotations": {
"readOnlyHint": true,
"untrustedContentHint": true
}
}list_findings: 6 parameters have no description (severity, status, component, tag); set_finding_severity: 1 parameter has no description (severity); set_finding_status: 1 parameter has no description {
name: "list_findings",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}{ name: "inspect_finding" /* short, unique, verb-based */ }compare_findings{
name: "compare_findings",
// 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 }
}reset_demo_workspace: note, user, rating{ name: "reset_demo_workspace", annotations: { untrustedContentHint: true } }list_findings: Description instructs the agent when to use the tool.; inspect_finding: Description instructs the agent when to use the tool.; set_finding_severity: Description instructs the agent when to use the tool.; set_finding_status: Description instructs the agent when to use the tool and what to include.{
name: "list_findings",
// 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."
}{}{}{}