Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP CLI Wrappercommit with message 'Fix login bug' and stage all files"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP CLI Wrapper
A flexible MCP (Model Context Protocol) server that wraps any CLI tool and exposes its subcommands as individual MCP tools with typed parameters.
Features
Config-driven tools: Define CLI subcommands as MCP tools via JSON configuration
Fallback mode: Single
run_clitool when no config providedType-safe parameters: Zod validation for all inputs before execution
Flexible parameter types: Supports positional args, flags, and boolean switches
Preserved parameter order: Flags and positionals stay interleaved as defined
Nested subcommands: Supports
git remote addstyle commandsSafe execution: Uses
spawnSyncto prevent command injectionFull output capture: Returns stdout, stderr, and exit code
Installation
Usage
Basic (Fallback Mode)
Run without a config file to get a single run_cli tool that accepts raw arguments:
This exposes one tool:
run_cli- Acceptsargs: string[]and executesgit <args...>
With Configuration
Run with a config file to expose multiple typed tools:
This exposes tools like:
git_status- Show working tree statusgit_commit- Commit with typedmessageand optionalallflaggit_add- Stage files withpathspecparametergit_log- Show logs withonelineandmax_countoptionsAnd more...
Configuration Format
Create a JSON file with tool definitions:
Parameter Configuration
Each parameter supports:
Field | Type | Description |
| string | Parameter name (used in schema) |
|
| Parameter type |
| string | Description shown to AI agents |
| string (optional) | CLI flag (e.g., |
| boolean | Whether the parameter is required |
Parameter Order
Parameters are processed in declaration order. This allows you to define tools where flags must precede positional arguments:
This produces: docker run -it ubuntu bash (flags before positionals)
Nested Subcommands
Use spaces in subcommand for nested commands:
MCP Client Configuration
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
Claude Code
Add to your MCP settings:
Example Configs
Git (included)
See config.example.json for a complete Git configuration with 8 tools.
Docker (example)
Security
No shell interpolation: Arguments are passed directly via
spawnSync, preventing command injectionInput validation: All parameters validated with Zod schemas before execution
Local execution only: Commands run on the local machine with the user's permissions
Development
License
MIT