Skip to main content
Glama

MCP Terminal Server

by RinardNick

Servidor de terminales MCP

Un servidor de ejecución de terminal seguro que implementa el Protocolo de Contexto de Modelo (MCP). Este servidor proporciona capacidades de ejecución controlada de comandos con funciones de seguridad y límites de recursos.

Características

  • Ejecución de comandos : Ejecute comandos de shell con captura de salida y manejo de errores
  • Controles de seguridad : restrinja los comandos permitidos y evite la inyección de comandos
  • Controles de recursos :
    • Tiempos de espera de comandos
    • Límites de tamaño máximo de salida
  • Compatibilidad con el protocolo MCP :
    • Formato de mensaje MCP estándar
    • Anuncio de capacidad
    • Compatibilidad con salida de streaming

Desarrollo

Configuración local

# Clone the repository git clone https://github.com/RinardNick/mcp-terminal.git cd mcp-terminal # Create and activate virtual environment using uv uv venv source .venv/bin/activate # or .venv\Scripts\activate on Windows # Install development dependencies uv pip install -e ".[dev]"

Publicación en PyPI

# Build the package uv pip install build python -m build # Upload to PyPI uv pip install twine python -m twine upload dist/*

Pruebas con MCP Inspector

La herramienta MCP Inspector se puede utilizar para probar la implementación del servidor:

# Install inspector npm install -g @modelcontextprotocol/inspector # Test server npx @modelcontextprotocol/inspector python3 src/mcp_terminal/server.py --allowed-commands "python,pip,git,ls,cd"

Ejecución de pruebas

# Run all tests pytest tests/ # Run specific test file pytest tests/test_terminal.py # Run with coverage pytest --cov=mcp_terminal tests/

Uso con Claude Desktop

Una vez que el paquete se publica en PyPI:

  1. Instalar UV (si aún no está instalado):
    pip install uv
  2. Instalar el paquete usando UV :
    uv pip install mcp-terminal
  3. Configurar Claude Desktop : edite el archivo de configuración de Claude Desktop (normalmente en ~/Library/Application Support/Claude/claude_desktop_config.json en macOS):
    { "mcpServers": { "terminal": { "command": "uv", "args": [ "pip", "run", "mcp-terminal", "--allowed-commands", "python,pip,git,ls,cd", "--timeout-ms", "30000", "--max-output-size", "1048576" ] } } }

Implementación del protocolo

El servidor implementa el Protocolo de Contexto de Modelo (MCP) con las siguientes capacidades:

Anuncio de capacidades

{ "protocol": "1.0.0", "name": "terminal", "version": "1.1.0", "capabilities": { "execute": { "description": "Execute a terminal command", "parameters": { "command": { "type": "string", "description": "The command to execute" } }, "returns": { "type": "object", "properties": { "exitCode": { "type": "number" }, "stdout": { "type": "string" }, "stderr": { "type": "string" }, "startTime": { "type": "string" }, "endTime": { "type": "string" } } } } } }

Formato del mensaje

Pedido :

{ "type": "execute", "data": { "command": "echo 'hello world'" } }

Respuesta :

{ "type": "result", "data": { "command": "echo 'hello world'", "exitCode": 0, "stdout": "hello world\n", "stderr": "", "startTime": "2024-01-20T12:34:56.789Z", "endTime": "2024-01-20T12:34:56.790Z" } }

Error :

{ "type": "error", "data": { "message": "command not allowed" } }

Consideraciones de seguridad

  1. Validación de comandos :
    • Sólo se pueden ejecutar los comandos permitidos
    • Los operadores de Shell están bloqueados
    • Se evitan los intentos de inyección de comandos
  2. Protección de recursos :
    • Los tiempos de espera de los comandos evitan que se cuelguen
    • Los límites de tamaño de salida evitan el agotamiento de la memoria
    • Manejo de errores para todos los casos de falla
  3. Mejores prácticas :
    • Establezca siempre allowed-commands en producción
    • Utilice límites de tamaño y tiempo de espera conservadores
    • Supervisar los registros de ejecución de comandos

Contribuyendo

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones ( git checkout -b feature/amazing-feature )
  3. Confirme sus cambios ( git commit -m 'Add some amazing feature' )
  4. Empujar a la rama ( git push origin feature/amazing-feature )
  5. Abrir una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Un servidor de ejecución de terminal seguro que permite la ejecución controlada de comandos con funciones de seguridad y límites de recursos a través del Protocolo de Contexto de Modelo (MCP).

  1. Características
    1. Desarrollo
      1. Configuración local
      2. Publicación en PyPI
      3. Pruebas con MCP Inspector
      4. Ejecución de pruebas
    2. Uso con Claude Desktop
      1. Implementación del protocolo
        1. Anuncio de capacidades
        2. Formato del mensaje
      2. Consideraciones de seguridad
        1. Contribuyendo
          1. Licencia

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A secure shell command execution server implementing the Model Context Protocol (MCP). This server allows remote execution of whitelisted shell commands with support for stdin input.
              Last updated -
              1
              74
              Python
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              A secure server for executing terminal commands within predefined paths, allowing safe interaction by Large Language Models with operating system environments.
              Last updated -
              1
              11
              3
              JavaScript
              MIT License
              • Apple
              • Linux
            • A
              security
              A
              license
              A
              quality
              A Model Context Protocol server that provides secure command-line access to Windows systems, allowing MCP clients like Claude Desktop to safely execute commands in PowerShell, CMD, and Git Bash shells with configurable security controls.
              Last updated -
              9
              350
              105
              JavaScript
              MIT License
            • -
              security
              F
              license
              -
              quality
              An MCP server that allows secure execution of macOS terminal commands through Claude or Roo Code with built-in security whitelisting and approval mechanisms.
              Last updated -
              1
              JavaScript
              • Apple

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/RinardNick/mcp-terminal'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server