Skip to main content

The Context Window Problem

Each MCP tool consumes ~600-800 tokens on average. An average server has 20-30 tools (~20,000 tokens). Large servers like google_workspace have 90+ tools consuming 60,000+ tokens. With just 10 servers enabled, you're easily consuming 200,000-250,000 tokens—exceeding your entire context budget before your first prompt.

Massive Token Waste

Each tool: ~700 tokens. Average server: 20-30 tools = 20,000 tokens. 10 servers = 200k+ tokens consumed before you start.

Context Overflow

Budget exhausted or exceeded before your code. Large servers (60-100+ tools) can consume 50k-85k tokens each.

Severe Performance Impact

Processing hundreds of unused tool definitions slows every response and dramatically inflates costs.

Debugging authentication? You need 0 MCP servers. Yet with 10 enabled, Claude is burning 200k+ tokens on cryptocurrency APIs, router configs, and web scrapers.

Claude Code MCP Server Selector: Lightning-Fast Local Control

Works alongside Claude's built-in MCP management UI, providing a faster, project-local alternative for power users. While Claude Code offers a comprehensive settings interface, our TUI delivers instant multi-server control with a single keypress. Toggle multiple servers simultaneously, save changes, and launch Claude—all in under a second.

Multi-Select Speed

Toggle multiple servers instantly with SPACE. Claude's UI requires clicking each server individually. Our TUI processes 10+ servers in seconds vs minutes.

Project-Local Control

Changes save to project-level config automatically. Switch between projects with different MCP profiles. No global config pollution.

Keyboard-First Workflow

No mouse clicks or menu navigation. Launch TUI → filter → toggle → save → launch Claude. All in 2-3 seconds with keyboard only.

See It In Action

MCP Server Selector TUI Demo showing interactive server selection with real-time visual feedback

Interactive TUI powered by React Ink - toggle servers instantly with visual feedback

Features

Context Optimization

Enable only the servers you need. Minimize token waste and maximize effective context for your work.

3-Way Toggle Cycle

RED (off) → GREEN (on) → ORANGE (paused) → RED. Keep servers configured but temporarily disabled without removing from config.

Lightning Fast

< 1 second startup with intelligent performance optimizations. Toggle servers instantly with sub-50ms response times.

Real-time Updates

Toggle servers instantly with visual feedback. Preview window shows current vs pending state.

Multi-Source Config

Discovers and merges 12+ configuration sources with smart scope precedence (enterprise → local → project → user).

Marketplace Discovery

Automatically discovers ALL marketplace plugins with MCP servers, regardless of category. Finds plugins in developer-toolkit, analytics, ai, and more.

🏢 Enterprise Support v2.0

Centralized MCP deployment with allowlist/denylist/command/URL matching. Exclusive mode, marketplace lockdown, fail-safe security.

Smart Migration

Automatically migrate global servers to project-level control with backup and rollback protection.

CLI Subcommands v2.0

mcp enable/disable for scriptable server control. Supports --all, --json, and --quiet flags.

Integration Commands v2.0

--export-disabled, --sync-check, --context-report for hook automation and bug detection.

Safe by Design

Atomic writes, automatic backups, JSON validation. Explicit consent before global changes.

Your New Workflow

Optimize your context in seconds, every time you start a new task

1

Exit Claude Code

If Claude is currently running, exit to refresh with new settings

2

Run claudemcp

Launch the TUI in your project directory

3

Enable What You Need

Press SPACE to toggle. Only enable 1-3 servers for your current task (most tasks need 0-1)

4

Launch & Work

Press ENTER to save and auto-launch Claude with optimized context

Speed comparison: Claude's UI requires opening settings, scrolling through servers, clicking each one individually (10+ clicks for 10 servers), then restarting. Our TUI does the same in 2-3 seconds with just your keyboard.
Pro tip: Most tasks need 0-1 servers. Working on web APIs? Enable fetch (1 server, ~800 tokens). Debugging timezones? Enable time (1 server, ~600 tokens). Everything else? Disable all servers and reclaim 200k+ tokens.

🏢 Enterprise MCP Support v2.0

Deploy centralized MCP servers organization-wide with enforced access policies. IT administrators control which servers are available while users maintain flexibility within approved boundaries.

For IT Administrators

Centralized Deployment

Deploy MCP servers via managed-mcp.json. Servers appear automatically for all users with highest priority—users cannot disable or modify them.

Access Control

Use allowedMcpServers to restrict which servers users can enable. Use deniedMcpServers to block specific servers across the organization.

Fail-Safe Security

Invalid configuration JSON triggers automatic lockdown mode—blocking all non-enterprise servers until IT fixes the issue. No risk of exposing blocked servers.

Configuration Locations

  • 📁 Linux: /etc/claude-code/managed-mcp.json and managed-settings.json
  • 📁 macOS: /Library/Application Support/ClaudeCode/managed-mcp.json and managed-settings.json
  • 📁 Windows: C:\ProgramData\ClaudeCode\managed-mcp.json and managed-settings.json

For Users in Enterprise Environments

Visual Indicators

  • 🏢 Enterprise-managed — Cannot be disabled (contact IT to change)
  • 🔒 Blocked by policy — Cannot be enabled (contact IT for access)
  • ⚠️ Not in allowlist — Cannot be enabled (request approval from IT)

Enterprise Policy Banner

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏢 Enterprise Policies Active
   • 2 enterprise-managed servers (cannot be modified)
   • Access restricted to 5 approved servers
   • 1 servers blocked by policy
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Policy Rules

  • Denylist is absolute — Blocks servers across ALL scopes (including enterprise)
  • Allowlist restricts user/project — Enterprise servers bypass allowlist restrictions
  • Empty allowlist = lockdown — Blocks all non-enterprise servers
  • Invalid JSON = lockdown mode — Fail-safe protects against misconfigurations

Advanced Restriction Matching v2.0

By Server Command

Match by exact command array: {"serverCommand": ["npx", "-y", "mcp-server-github"]}

By Server URL

Match HTTP/SSE servers with wildcards: {"serverUrl": "https://*.company.com/*"}

Marketplace Lockdown

Restrict plugins via strictKnownMarketplaces. Empty array blocks all marketplace plugins.

Exclusive Enterprise Mode

When managed-mcp.json contains mcpServers, users cannot add ANY servers—only enterprise-defined servers are available.

Get Started

npm Install v2.0

npm install -g @henkisdabro/mcp-selector

Requires Node.js 20+. Or run directly with: npx @henkisdabro/mcp-selector

Usage

mcp Short command
claudemcp Descriptive command (same functionality)

Passing Arguments

You can pass command-line arguments directly to Claude Code:

mcp --help Shows Claude Code help
mcp /path/to/project Opens specific project
mcp --version Shows Claude Code version

The tool acts as a transparent wrapper - all arguments are forwarded to Claude Code after configuration.

CLI Subcommands v2.0

Control servers directly without the TUI:

mcp enable fetch github Enable specific servers
mcp disable --all Disable all servers
mcp --export-disabled List disabled servers
mcp --sync-check Check config/runtime sync

Keybindings

SPACE Toggle server (quick-disable for Direct)
Alt-M Migrate Direct server to project
ENTER Save changes & launch Claude
ESC Cancel without saving
Ctrl-A Add new server
Ctrl-X Remove selected server
Alt-E Enable all servers
Alt-D Disable all servers
↑/↓ or / Navigate & filter

Keeping Up to Date

Stay current with the latest features and bug fixes.

Manual Update (Recommended)

Update to the latest version with a single command:

npm update -g @henkisdabro/mcp-selector

Or explicitly install the latest: npm install -g @henkisdabro/mcp-selector@latest

Version Management

mcp --version Check current version
npm list -g @henkisdabro/mcp-selector Show installed package version
npm outdated -g @henkisdabro/mcp-selector Check for available updates

Always-Latest Option

If you prefer to always use the latest version without managing updates, use npx:

npx @henkisdabro/mcp-selector

This fetches the latest version each time (with caching for performance).

About Automatic Updates

npm does not support automatic updates for global packages - this is intentional to prevent breaking changes from being introduced without user awareness.

Recommended: Check for updates periodically with npm outdated -g or subscribe to GitHub releases.

Free for the Claude Code Community

Open source and MIT licensed. Built to solve a real problem for developers like you.