MCP CLI Server
Click on "Deploy 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 Server start a process to ping google.com"
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 Server
An MCP server that provides tools to interact with CLI applications.
@author: Claudio Alarcon clalarco@gmail.com
Requirements
uvfor execution. Check https://docs.astral.sh/uv/ for installation instructions.npm(optional) to use the MCP inspector. Check https://docs.npmjs.com/ for installation instructions.
Related MCP server: mcpdeployment
MCP Tools
start_process(command: str): Start a new process.stop_process(pid: str): Stop a running process.is_alive(pid: str): Check if a process is running.write_input(pid: str, text: str): Send input to a process.read_output(pid: str): Read output from a process.get_processes(): Get a list of all processes.
MCP Configuration
Local repository configuration:
{
"mcpServers": {
"cli": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-cli", "run", "mcp-cli"]
}
}
}Using it from Github:
{
"mcpServers": {
"cli": {
"command": "uvx",
"args": ["--from", "git+https://github.com/clalarco/mcp-cli", "mcp-cli"]
}
}
}Using MCP inspector
Having npm installed, run:
Local repository:
npx -y @modelcontextprotocol/inspector uv run mcp-cliFrom github:
npx -y @modelcontextprotocol/inspector uvx --from git+https://github.com/clalarco/mcp-cli mcp-cliAvailable Tools
8 toolsget_processesA
Get a list of all processes.
Returns: A dictionary of ProcessDetails objects with PID as key. ProcessDetails contains pid, command and is_alive.
Inputs: no named parameters. Returns: result
is_aliveA
Check if a program is running.
Args: pid: The process ID returned by start_program().
Returns: True if the program is running, False otherwise.
Inputs: pid (required). Returns: result
read_outputA
Read available output from a running program.
Args: pid: The process ID returned by start_program(). max_bytes: Maximum number of bytes to read. timeout: Maximum time to wait for output.
Returns: The output text read from the process. Returns empty string if no output.
Inputs: pid (required), timeout, max_bytes. Returns: result
start_programB
Start a CLI program in a PTY.
Args: command: The command to run (e.g., "cat", "python -i", "ls -la").
Returns: The process ID (pid) of the started program.
Inputs: command (required). Returns: result
stop_all_programsB
Stop all running programs.
Returns: A confirmation message.
Inputs: no named parameters. Returns: result
stop_programB
Stop a running program.
Args: pid: The process ID returned by start_program.
Returns: A confirmation message.
Inputs: pid (required). Returns: result
wait_for_outputA
Wait until a specific text pattern appears in the output.
Args: pid: The process ID returned by start_program(). pattern: The text to wait for. timeout: Maximum time to wait in seconds.
Returns: The output captured so far, or an error/timeout message.
Inputs: pid (required), pattern (required), timeout. Returns: result
write_inputA
Send text input to a running program.
Args:
pid: The process ID returned by start_program().
text: The text to send. Newlines are usually needed (e.g., "
").
Returns:
A confirmation message.
Inputs: pid (required), text (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Tools are mostly distinct: get_processes lists all, is_alive checks status, start/stop manage lifecycle, read_output reads current output, wait_for_output waits for pattern, write_input sends text. Some minor overlap exists between read_output and wait_for_output, but they serve different purposes (immediate read vs. waiting).
All tool names use snake_case with a verb_noun pattern (e.g., start_program, stop_program). 'is_alive' deviates slightly (adjective_noun) but is still clear. Overall consistent enough for easy prediction.
8 tools is an ideal number for a CLI process management server. Each tool covers a distinct aspect without bloat, making the surface easy to navigate.
Covers core lifecycle (start, stop, list, check status), I/O (write, read, wait for pattern). Lacks a restart or signal-sending tool, but the set is sufficient for most interactive CLI use cases.
Related MCP Connectors
MCP Server for JFrog, providing tools for development and artifact management.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceAn MCP server that enables programmatic management and monitoring of development servers through a unified interface and interactive TUI. It provides tools for process control, log streaming, and experimental browser automation via Playwright.1MIT
- FlicenseCqualityDmaintenanceMCP server that enables deployment and management of MCP servers through a simple configuration-based interface.1-
- AlicenseNot gradedqualityDmaintenanceMCP server for interactive TCP connection management, enabling opening listeners, managing sessions, port forwarding, proxy with logging, and local command execution from any MCP host.MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides tools for filesystem, database, web, system, and shell operations, along with resources and prompts via SSE transport.-