MCP Terminal Server
@RinardNick
An MCP server that provides secure terminal access for Claude and other LLMs
Overview
What is MCP Terminal Server?
MCP Terminal Server is a secure terminal execution server implementing the Model Context Protocol (MCP). It provides controlled command execution capabilities with security features and resource limits, designed for use with MCP-based applications like Claude Desktop.
How to use MCP Terminal Server?
Install the package using uv pip install mcp-terminal, then configure Claude Desktop with the command and args fields, specifying allowed commands, timeout, and maximum output size. The server can also be tested with the MCP Inspector tool.
Key features of MCP Terminal Server
- Execute shell commands with output capture and error handling
- Restrict allowed commands and prevent command injection
- Command timeouts and maximum output size limits
- Standard MCP message format with capability advertisement
- Streaming output support for long-running commands
Use cases of MCP Terminal Server
- Running development commands (git, pip, python, ls, cd) through Claude Desktop
- Executing controlled shell commands from AI agents via MCP
- Automating terminal tasks with enforced security boundaries and resource protection
FAQ from MCP Terminal Server
What commands are allowed by default?
The server does not allow any commands by default; you must specify the allowed commands using the --allowed-commands argument.
What are the runtime dependencies?
MCP Terminal Server requires Python and the uv package manager. It is designed to work with MCP clients such as Claude Desktop.
How are commands protected from injection?
The server validates commands against a whitelist, blocks shell operators, and prevents command injection attempts.
What resource limits are enforced?
Each command has a configurable timeout (default 30 seconds) and a maximum output size (default 1 MB) to prevent hanging or memory exhaustion.
How does the server communicate?
It implements the Model Context Protocol version 1.0.0, using JSON messages over standard input/output (stdio) with the client.