MCP CLI-Ent

March 19, 2026 ยท View on GitHub

My Precious Tokens!
"Do not be hasty."

Use MCP servers without loading them into your agent's context window.

CLI-Ent = CLI tool + Context Guardian. Instead of loading MCP tool definitions into your agent's context, use mcp-cli-ent to call tools on-demand.

Key Features

  • Cross-Platform: Works on Linux, macOS, Windows
  • Zero Dependencies: Single binary, no runtime requirements
  • Universal Config: Compatible with existing MCP configurations
  • Dual Transport: HTTP and stdio-based servers
  • Multi-Server: Manage multiple MCP servers easily
  • Secure: Environment variable substitution for credentials
  • Smart Output: Intelligent handling of binary data and images
  • Auto-Start Daemon: Browser sessions created automatically

Quick Install

Homebrew (Linux, WSL & macOS):

brew install EstebanForge/tap/mcp-cli-ent

Direct binary install (Linux, WSL & macOS):

curl -fsSL https://raw.githubusercontent.com/EstebanForge/mcp-cli-ent/main/scripts/install.sh | bash

Windows (PowerShell):

Invoke-WebRequest -Uri "https://raw.githubusercontent.com/EstebanForge/mcp-cli-ent/main/scripts/install.ps1" -OutFile "install.ps1"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
.\install.ps1

Note: Windows support is experimental. Contributions and testing are welcome. If you encounter issues, please use Windows WSL (Linux) instead of the Windows executable.

Quick Start

# Create configuration
mcp-cli-ent create-config

# List available servers
mcp-cli-ent

# List tools from a server
mcp-cli-ent list-tools context7

# Call a tool (get library docs via context7)
mcp-cli-ent call-tool context7 get-library-docs '{
  "context7CompatibleLibraryID": "/EstebanForge/hyperpress",
  "query": "how to create a custom block"
}'

Screenshots

Tool Execution - Getting Documentation via Context7MCP CLI-ENT Server List

MCP CLI-ENT Tool Call

MCP CLI-ENT No Arguments

For AI Agents

Add to your AGENTS.md (or CLAUDE.md, thank you for not following standards):

Use MCP servers with CLI tool: `mcp-cli-ent`

Or:

MCP (Model Context Protocol) connects external tools. Use servers to fetch live docs, run complex reasoning, or automate browsers. Use them with CLI tool: `mcp-cli-ent`

Configuration

Config File Location

# Create config in standard location (~/.config/mcp-cli-ent/mcp_servers.json)
mcp-cli-ent create-config

Discovery priority:

  1. --config <path> flag
  2. ~/.config/mcp-cli-ent/mcp_servers.json (Linux/macOS)
  3. %APPDATA%\mcp-cli-ent\mcp_servers.json (Windows)
  4. ./mcp_servers.json (current directory)

JSON Configuration Reference

{
  "mcpServers": {
    "server-name": {
      "enabled": true,
      "description": "Human-readable description",
      "type": "http",
      "url": "https://example.com/mcp",
      "command": "npx",
      "args": ["-y", "package-name"],
      "env": {
        "API_KEY": "${ENV_VAR_NAME}"
      },
      "headers": {
        "Authorization": "Bearer ${TOKEN}"
      },
      "timeout": 30,
      "persistent": false,
      "session": {
        "type": "persistent",
        "autoStart": true,
        "timeout": 300,
        "maxIdle": 600,
        "healthCheck": true
      }
    }
  }
}

Server Configuration Keys

KeyTypeDefaultDescription
enabledbooltrueEnable/disable server
descriptionstring-Human-readable description (shown in tool listings)
typestringautoTransport type: "http" or "stdio" (auto-detected)
urlstring-URL for HTTP servers
commandstring-Command for stdio servers (e.g., npx, uvx)
argsstring[][]Command arguments
envobject{}Environment variables for the process
headersobject{}HTTP headers (HTTP servers only)
timeoutint30Request timeout in seconds
persistentboolfalseEnable daemon-managed persistent sessions

Session Configuration (Optional)

KeyTypeDefaultDescription
session.typestringauto"persistent", "stateless", or "hybrid"
session.autoStartboolfalseAuto-start session on first use
session.timeoutint300Session timeout in seconds
session.maxIdleint600Max idle time before auto-stop
session.healthCheckboolfalseEnable periodic health checks

Environment Variable Substitution

Use ${VAR_NAME} or $VAR_NAME in values:

{
  "args": ["--api-key", "${CONTEXT7_API_KEY}"],
  "env": { "API_KEY": "$MY_API_KEY" },
  "headers": { "Authorization": "Bearer ${TOKEN}" }
}

Fallback Behavior: For each variable, the CLI checks the unprefixed name first (e.g., CONTEXT7_API_KEY), then falls back to the ENT_ prefixed version (e.g., ENT_CONTEXT7_API_KEY) if the first is empty. This prevents conflicts with existing environment variables.

# Linux/macOS - either format works
export CONTEXT7_API_KEY="your_key"
# or
export ENT_CONTEXT7_API_KEY="your_key"

# Windows PowerShell
$env:CONTEXT7_API_KEY = "your_key"
# or
$env:ENT_CONTEXT7_API_KEY = "your_key"

Pre-configured Servers

The example config includes:

ServerDescription
chrome-devtoolsBrowser automation: console, navigation, screenshots
playwrightBrowser automation: elements, snapshots, interactions
context7Code library docs and snippets
sequential-thinkingProblem-solving and planning
deepwikiRepository documentation from public Git repos
brave-searchWeb search, images, videos, news + AI summaries
timeCurrent time and timezone conversions
cipherMemory layer for coding agents

CLI Reference

Global Flags

FlagShortDefaultDescription
--config-autoConfiguration file path
--verbose-vfalseVerbose output (shows tool descriptions)
--timeout-30Request timeout in seconds
--refresh-falseForce refresh tools cache
--clear-cache-falseClear tools cache (alias for --refresh)

Commands

# Server management
mcp-cli-ent                           # Show all tools from all servers
mcp-cli-ent list-servers              # List enabled servers
mcp-cli-ent list-servers --all        # Include disabled servers
mcp-cli-ent list-tools [server]       # List tools (all or specific server)

# Tool execution
mcp-cli-ent call-tool <server> <tool> [json-args]

# Configuration
mcp-cli-ent create-config [filename]  # Create example config
mcp-cli-ent version                   # Show version info

# Session management
mcp-cli-ent session list              # List active sessions
mcp-cli-ent session status <server>   # Show session status
mcp-cli-ent session start <server>    # Start persistent session
mcp-cli-ent session stop <server>     # Stop session
mcp-cli-ent session restart <server>  # Restart session
mcp-cli-ent session attach <server>   # Attach to existing session
mcp-cli-ent session cleanup           # Clean up dead sessions

# Daemon management
mcp-cli-ent daemon start              # Start daemon (background)
mcp-cli-ent daemon start --foreground # Start daemon (foreground)
mcp-cli-ent daemon stop               # Stop daemon
mcp-cli-ent daemon status             # Show daemon status
mcp-cli-ent daemon restart            # Restart daemon
mcp-cli-ent daemon logs               # Show daemon logs
mcp-cli-ent daemon logs --tail 100    # Show last 100 log lines

Browser Automation

Persistent browser automation (Chrome DevTools, Playwright) works automatically. Just call the tools:

mcp-cli-ent call-tool chrome-devtools navigate_page '{"url": "https://example.com"}'
mcp-cli-ent call-tool chrome-devtools take_screenshot

The daemon starts automatically when you use these tools.

Build from Source

git clone https://github.com/EstebanForge/mcp-cli-ent.git
cd mcp-cli-ent
make build

Requirements: Go 1.21+

Build Commands

make build          # Build unsigned local binary (bin/mcp-cli-ent)
make sign           # Sign local binary on macOS (optional)
make build-signed   # Build + sign local binary on macOS (optional)
make build-all      # Build for all platforms
make dev-setup      # Development setup
make test           # Run tests
make test-coverage  # Run tests with coverage
make fmt            # Format code (go fmt + optional goimports)
make vet            # Run go vet
make lint           # Lint code
make check          # Full flow: fmt + vet + lint + test + build (+check-config)
make ci             # CI alias for make check

Security & Build Integrity

MCP CLI-Ent uses automated, reproducible builds through GitHub Actions:

  • CI/CD Pipeline: All releases built automatically via GitHub Actions
  • No Manual Builds: Prevents tampering by never building locally
  • Reproducible Builds: Every build traceable to source commits
  • Automated Testing: Each build passes comprehensive tests
  • Cryptographic Verification: Release artifacts include SHA256 checksums

Verify Downloads

# Verify checksum (provided in release notes)
sha256sum mcp-cli-ent-linux-amd64

Trust, but verify. Always download from official GitHub releases and verify checksums.

License

MIT