Classify MCP tools as sensitive vs safe by glob policy
classify_sensitive_toolsCategorizes MCP tool names as sensitive or safe using operator-defined globs, letting you preview which tools need approval before adding a server.
Instructions
Split advertised tool names into sensitive vs safe using the operator's case-insensitive * globs (the same policy.sensitiveToolPatterns a host would use). Sensitive tools stay advertised; they require per-call approval — this tool does not run them.
When to use: show the user which names will need confirmation before they approve a server, or to preview a glob set. This is policy over identifiers, not an injection scan.
When NOT to use: scanning descriptions for poisoning (static_scan_tools or vet_mcp_server); checking whether a URL is allowed out (check_egress_url).
Behaviour: local glob match, no network. An empty patterns array marks every tool safe. Patterns match the whole name; "delete" hits create_delete_repo. Does not call Warden.vet and does not persist anything.
Returns { sensitive, safe }. Example: classify_sensitive_tools({ tools: [{ name: "delete_repo", description: "Delete a repository.", inputSchema: { type: "object" } }], patterns: ["delete"] }).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tools | Yes | tools/list items whose names will be classified. Descriptions and schemas are ignored; only name is matched. | |
| patterns | Yes | Operator globs, case-insensitive, matched against the whole tool name. "*" is the only wildcard. Empty array → every tool is safe. Same semantics as WardenPolicy.sensitiveToolPatterns, not threat-feed matching. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| safe | Yes | Names matching no pattern. | |
| sensitive | Yes | Names matching at least one pattern. Still advertised; require per-call approval. |