Feature request for product/service
Cursor IDE
Describe the request
Summary
Add the ability to pre-configure which MCP tools are enabled/disabled via the mcp.json configuration file, eliminating the need to manually enable tools in the UI after every Cursor restart.
Problem Statement
Current Behavior
When configuring MCP servers in ~/.cursor/mcp.json, users can only specify:
- Server connection details (command, args, url)
- Authentication (env vars, OAuth)
- Environment configuration
After every Cursor restart, users must manually:
- Open the chat interface
- Navigate to “Available Tools”
- Click each tool individually to enable it
- Repeat for every MCP server with multiple tools
Impact
For MCP servers with many tools (e.g., @azure-devops/mcp has 77 tools), this creates significant friction:
- Time cost: 2-5 minutes per restart to re-enable tools
- Cognitive load: Remembering which tools you typically use
- Team inconsistency: Different team members may have different tools enabled
- Onboarding friction: New users don’t know which tools to enable
Proposed Solution
Option 1: enabledTools Array (Whitelist)
{
"mcpServers": {
"ado": {
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "geico"],
"enabledTools": [
"wit_create_work_item",
"wit_update_work_item",
"wit_my_work_items",
"repo_create_pull_request",
"repo_list_pull_requests_by_repo_or_project"
]
}
}
}
Option 2: Glob/Wildcard Patterns
{
"mcpServers": {
"ado": {
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "geico"],
"enabledTools": [
"wit_*", // All work item tools
"repo_*", // All repository tools
"!pipelines_*" // Exclude pipeline tools
]
}
}
}
Option 3: disabledTools Array (Blacklist - Enable All by Default)
{
"mcpServers": {
"ado": {
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "geico"],
"disabledTools": [
"pipelines_run_pipeline", // Dangerous - disable by default
"repo_delete_branch"
]
}
}
}
Option 4: toolConfig Object (Most Flexible)
{
"mcpServers": {
"ado": {
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "geico"],
"toolConfig": {
"defaultEnabled": true,
"autoRun": ["wit_my_work_items", "wit_get_work_item"],
"disabled": ["pipelines_run_pipeline"],
"requireApproval": ["wit_update_work_item", "repo_create_pull_request"]
}
}
}
}
Use Cases
1. Enterprise Teams
// Shared team config in .cursor/mcp.json (project-level)
{
"mcpServers": {
"ado": {
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "${env:ADO_ORG}"],
"enabledTools": ["wit_*", "repo_list_*", "repo_get_*"],
"disabledTools": ["pipelines_run_*"] // Prevent accidental pipeline triggers
}
}
}
2. Developer Workflow Optimization
// Personal config in ~/.cursor/mcp.json (global)
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"enabledTools": [
"issue_write",
"create_pull_request",
"search_code"
]
}
}
}
3. Security-Conscious Configuration
{
"mcpServers": {
"ado": {
"command": "npx",
"args": ["-y", "@azure-devops/mcp", "geico"],
"toolConfig": {
"defaultEnabled": false, // Opt-in only
"enabled": ["wit_my_work_items", "wit_get_work_item"],
"requireApproval": ["wit_create_work_item", "wit_update_work_item"]
}
}
}
}
Benefits
| Benefit | Description |
|---|---|
| Reduced friction | No manual clicking after restarts |
| Team consistency | Shared configs ensure same tool availability |
| Security | Disable dangerous tools by default |
| Onboarding | New team members get curated tool sets |
| Workflow efficiency | Pre-configure tools for specific tasks |
Implementation Considerations
Backward Compatibility
- If no
enabledTools/disabledToolsspecified, maintain current behavior (all tools disabled by default) - Or: Add a global setting
"mcp.defaultToolBehavior": "enabled" | "disabled"
Validation
- Warn on invalid tool names (typos)
- Suggest similar tool names if no exact match
UI Sync
- Tools enabled via config should appear checked in UI
- Allow UI overrides that don’t persist (session-only)
- Or: Allow UI changes to write back to config
Config Interpolation
Support existing variable syntax in tool names:
"enabledTools": ["${env:ENABLED_TOOLS}"]
Related Feature Requests
- Tool categories - Group tools by function (read-only, write, dangerous)
- Tool presets - Save/load tool configurations
- Team tool policies - Enforce tool availability via enterprise settings
Alternatives Considered
| Alternative | Why Not Sufficient |
|---|---|
| Manual UI toggle | Doesn’t persist across restarts |
| Auto-run setting | Only skips approval, doesn’t enable tools |
| Custom modes | Only controls built-in tool categories, not MCP tools |
| Cursor rules | Can suggest tools but can’t enable them |