mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-01-30 06:22:04 +00:00
Added DISABLED_TOOLS environment variable to filter specific tools from registration at startup, enabling deployment-specific tool configuration for multi-tenant deployments, security hardening, and feature flags. ## Implementation - Added getDisabledTools() method to parse comma-separated tool names from env var - Modified ListToolsRequestSchema handler to filter both documentation and management tools - Modified CallToolRequestSchema handler to reject disabled tool calls with clear error messages - Added defense-in-depth guard in executeTool() method ## Features - Environment variable format: DISABLED_TOOLS=tool1,tool2,tool3 - O(1) lookup performance using Set data structure - Clear error messages with TOOL_DISABLED code - Backward compatible (no DISABLED_TOOLS = all tools enabled) - Comprehensive logging for observability ## Use Cases - Multi-tenant: Hide tools that check global env vars - Security: Disable management tools in production - Feature flags: Gradually roll out new tools - Deployment-specific: Different tool sets for cloud vs self-hosted ## Testing - 45 comprehensive tests (all passing) - 95% feature code coverage - Unit tests + additional test scenarios - Performance tested with 1000 tools (<100ms) ## Files Modified - src/mcp/server.ts - Core implementation (~40 lines) - .env.example, .env.docker - Configuration documentation - tests/unit/mcp/disabled-tools*.test.ts - Comprehensive tests - package.json, package.runtime.json - Version bump to 2.22.14 - CHANGELOG.md - Full documentation Resolves #410 Conceived by Romuald Członkowski - www.aiadvisors.pl/en
33 lines
699 B
Docker
33 lines
699 B
Docker
# .env.docker
|
|
# Docker-specific environment template
|
|
# Copy to .env and fill in values
|
|
|
|
# Required for HTTP mode
|
|
AUTH_TOKEN=
|
|
|
|
# Server configuration
|
|
PORT=3000
|
|
HTTP_PORT=80
|
|
HTTPS_PORT=443
|
|
|
|
# Application settings
|
|
NODE_ENV=production
|
|
LOG_LEVEL=info
|
|
MCP_MODE=http
|
|
|
|
# Database
|
|
NODE_DB_PATH=/app/data/nodes.db
|
|
REBUILD_ON_START=false
|
|
|
|
# Optional nginx mode
|
|
USE_NGINX=false
|
|
|
|
# Optional n8n API configuration (enables 16 additional management tools)
|
|
# N8N_API_URL=https://your-n8n-instance.com
|
|
# N8N_API_KEY=your-api-key-here
|
|
# N8N_API_TIMEOUT=30000
|
|
# N8N_API_MAX_RETRIES=3
|
|
|
|
# Optional: Disable specific tools (comma-separated list)
|
|
# Example: DISABLED_TOOLS=n8n_diagnostic,n8n_health_check
|
|
# DISABLED_TOOLS= |