Documentation Index
Fetch the complete documentation index at: https://springaicommunity.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Module 07: Tool Permissions
Controlling which tools Claude can use.What You’ll Learn
allowedTools: Explicitly allow specific tools (only these are available)disallowedTools: Block specific tools (all others remain available)- Common Claude Code tools
- When to use each approach
Claude Code Tools
Claude Code has access to these built-in tools:| Tool | Description | Risk Level |
|---|---|---|
Read | Read files | Low |
Glob | Find files by pattern | Low |
Grep | Search file contents | Low |
Write | Create/overwrite files | Medium |
Edit | Modify existing files | Medium |
Bash | Execute shell commands | High |
WebSearch | Search the web | Low |
WebFetch | Fetch web page content | Low |
Approach 1: Allowed Tools
Claude can ONLY use tools in this list. Use for maximum control:Approach 2: Disallowed Tools
All tools are available EXCEPT these. Use to block specific dangerous operations:Which Approach to Use?
| Scenario | Approach | Example |
|---|---|---|
| Read-only agent | allowedTools | List.of("Read", "Glob", "Grep") |
| General agent, no shell | disallowedTools | List.of("Bash") |
| File editing only | allowedTools | List.of("Read", "Write", "Edit", "Glob") |
| Research agent | allowedTools | List.of("WebSearch", "WebFetch", "Read") |
Common Tool Combinations
Read-Only Agent
Safe Editing Agent
Research Agent
Key Points
allowedToolsis more restrictive - use for sensitive environmentsdisallowedToolsis more permissive - use when you just want to block specific tools- Tool permissions are enforced at the CLI level, not just in your code
Tradeoffs
- allowedTools: More secure but requires knowing all tools needed upfront. New Claude Code tools added in future updates will be blocked by default.
- disallowedTools: More flexible but less secure. New tools added in future Claude Code versions will be allowed by default.
- Neither: All tools available. Only appropriate when running in a sandboxed environment.
- Tool names are case-sensitive and must match exactly (e.g.,
"Bash"not"bash"). - Invalid tool names fail silently - no error if you typo a tool name.