feat: Add DISABLED_TOOLS environment variable for selective tool disabling (#127)
## Description This PR adds support for selectively disabling tools via the DISABLED_TOOLS environment variable, allowing users to customize which MCP tools are available in their Zen server instance. This feature enables better control over tool availability for security, performance, or organizational requirements. ## Changes Made - [x] Added `DISABLED_TOOLS` environment variable support to selectively disable tools - [x] Implemented tool filtering logic with protection for essential tools (version, listmodels) - [x] Added comprehensive validation with warnings for unknown tools and attempts to disable essential tools - [x] Updated `.env.example` with DISABLED_TOOLS documentation and examples - [x] Added comprehensive test suite (16 tests) covering all edge cases - [x] No breaking changes - feature is opt-in with default behavior unchanged ## Configuration Add to `.env` file: ```bash # Optional: Tool Selection # Comma-separated list of tools to disable. If not set, all tools are enabled. # Essential tools (version, listmodels) cannot be disabled. # Available tools: chat, thinkdeep, planner, consensus, codereview, precommit, # debug, docgen, analyze, refactor, tracer, testgen # Examples: # DISABLED_TOOLS= # All tools enabled (default) # DISABLED_TOOLS=debug,tracer # Disable debug and tracer tools # DISABLED_TOOLS=planner,consensus # Disable planning tools
This commit is contained in:
committed by
GitHub
parent
3b250c95df
commit
a355b80afc
10
.env.example
10
.env.example
@@ -143,3 +143,13 @@ MAX_CONVERSATION_TURNS=20
|
||||
# ERROR: Shows only errors
|
||||
LOG_LEVEL=DEBUG
|
||||
|
||||
# Optional: Tool Selection
|
||||
# Comma-separated list of tools to disable. If not set, all tools are enabled.
|
||||
# Essential tools (version, listmodels) cannot be disabled.
|
||||
# Available tools: chat, thinkdeep, planner, consensus, codereview, precommit,
|
||||
# debug, docgen, analyze, refactor, tracer, testgen
|
||||
# Examples:
|
||||
# DISABLED_TOOLS= # All tools enabled (default)
|
||||
# DISABLED_TOOLS=debug,tracer # Disable debug and tracer tools
|
||||
# DISABLED_TOOLS=planner,consensus # Disable planning tools
|
||||
|
||||
|
||||
Reference in New Issue
Block a user