DesktopCommanderPy
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HANA_HOST | No | SAP HANA Cloud host (optional, can also be configured via config/hana_config.yaml) | |
| HANA_PORT | No | SAP HANA Cloud port (optional) | 443 |
| HANA_USER | No | SAP HANA Cloud user (optional) | |
| HANA_SCHEMA | No | SAP HANA Cloud schema (optional) | |
| HANA_PASSWORD | No | SAP HANA Cloud password (optional) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| read_fileA | Read a text file and return its contents, with optional pagination. Pagination via offset and length allows reading large files in chunks without loading everything into the LLM context. The security sandbox is enforced: the path must be inside an allowed directory. Returns the file text. Raises PermissionError or FileNotFoundError on error. |
| write_fileA | Write or append text content to a file. The parent directory is created automatically if it doesn't exist. The path must be inside an allowed directory and the extension must not be in the blocked list. Returns a success message with the number of lines written. |
| search_filesA | Search for files by name pattern and/or content substring.
|
| edit_file_diffA | Edit a file by replacing an exact text snippet with new content. This is the preferred editing approach: send only the changed part instead of rewriting the whole file. The old_string must match exactly (whitespace, indentation) and should include enough context to be unique. Raises ValueError if old_string is not found or found more/fewer times than expected_replacements. |
| list_directoryA | List the contents of a directory with file sizes and types. Returns a formatted tree showing [DIR] and [FILE] entries with sizes. Respects the allowed_directories sandbox. |
| get_file_infoA | Return metadata about a file or directory. Includes: type, size, creation time, modification time, permissions, and a content preview for text files (first 10 lines). |
| create_directoryA | Crea un directorio (y todos los intermedios necesarios). Equivale a mkdir -p. Si el directorio ya existe, no falla. La ruta debe estar dentro de los directorios permitidos. |
| move_fileA | Mueve o renombra un fichero o directorio. Funciona entre rutas dentro de los directorios permitidos. Si el destino es un directorio existente, mueve el origen dentro de él. Si el destino no existe, renombra el origen a ese nombre. |
| read_multiple_filesA | Lee varios ficheros de texto en una sola llamada. Útil para comparar ficheros o cargar múltiples módulos de una vez. Devuelve el contenido de cada fichero separado por cabeceras claras. |
| get_configA | Return the active runtime configuration with type metadata. |
| set_config_valueA | Update a runtime config value and persist it to YAML. |
| execute_commandA | Execute a shell command and return its combined stdout+stderr output. Uses PowerShell on Windows, bash/zsh on Linux/macOS. The command is checked against the security blacklist before execution. Output is captured and returned as a string (truncated if too large). Returns the combined output. On non-zero exit code, output includes the exit code so the caller can detect failures. |
| execute_command_streamingA | Execute a long-running command and return output incrementally. Intended for commands that produce output over time (builds, tests, long scripts). Output is collected line by line and returned as a single string; for true streaming, the MCP client would use SSE. The command is blocked if it matches the security blacklist. |
| list_processesA | List running processes with PID, name, CPU%, and memory usage. Uses psutil for cross-platform compatibility (Windows, Linux, macOS). Results are filtered and sorted as requested. Returns a formatted table of processes. |
| kill_processA | Terminate a running process by PID. By default sends SIGTERM (graceful shutdown). Set force=True to immediately kill the process (SIGKILL on Linux, TerminateProcess on Windows). Returns confirmation or error message. |
| start_processA | Arranca un proceso en segundo plano y devuelve su PID. A diferencia de execute_command, el proceso queda vivo y con su stdout/stderr siendo capturados en un buffer interno. Usa read_process_output para leer el output acumulado e interact_with_process para enviar input (ideal para REPLs). Devuelve el PID y el output inicial (primeros segundos de arranque). |
| read_process_outputA | Lee el output acumulado de un proceso activo. Espera hasta timeout_seconds por output nuevo. Si el proceso ha terminado, devuelve todo el output pendiente en el buffer. Llama a esta tool repetidamente para leer output de forma incremental. Devuelve el output y el estado del proceso (running/finished). |
| interact_with_processA | Envía input a un proceso activo y devuelve su respuesta. Ideal para REPLs interactivos: Python (-i), Node.js (-i), shells, etc. El input se escribe en el stdin del proceso y se espera output nuevo. Ejemplo de flujo:
|
| list_sessionsA | Lista todas las sesiones de proceso activas (start_process). Muestra PID, comando, estado, tiempo activo y líneas emitidas. Las sesiones terminadas se limpian automáticamente al listarlas. |
| force_terminateA | Mata un proceso inmediatamente sin esperar a que termine limpiamente. Equivale a SIGKILL en Linux o TerminateProcess en Windows. Usa kill_process con force=False para un cierre más limpio (SIGTERM). Limpia la sesión del registro tras terminar. |
| hana_test_connectionA | Prueba la conexión a SAP HANA Cloud y devuelve información del servidor. Verifica credenciales, versión de HANA, usuario conectado y schema actual. No devuelve nunca la contraseña ni datos sensibles. |
| hana_execute_queryA | Ejecuta una sentencia SQL en SAP HANA Cloud y devuelve los resultados. Para consultas SELECT devuelve una tabla formateada con los resultados. Para INSERT/UPDATE/DELETE devuelve las filas afectadas. Para CALL (stored procedures) devuelve el resultado del procedure. El número de filas está limitado para evitar volcar tablas enteras. Usa max_rows para ajustar el límite. |
| hana_execute_ddlA | Ejecuta una sentencia DDL en SAP HANA Cloud (CREATE, ALTER, DROP, GRANT...). REQUIERE confirm=True explícito — protección contra ejecuciones accidentales. DROP y TRUNCATE son irreversibles. Úsalo con cuidado. |
| hana_list_schemasA | Lista los schemas visibles para el usuario actual en SAP HANA Cloud. Muestra nombre del schema, propietario y si es un schema de sistema. |
| hana_list_tablesA | Lista tablas, vistas y Calculation Views de un schema en SAP HANA Cloud. Muestra nombre, tipo, número de columnas y comentario si existe. |
| hana_describe_tableA | Describe la estructura de una tabla en SAP HANA Cloud. Devuelve columnas con tipo de dato, longitud, nullable, clave primaria y comentario de columna si existe. Equivale a DESC table en SQL*Plus. |
| hana_get_row_countA | Devuelve el número de filas de una o varias tablas. Rápido para monitorización — usa M_TABLE_STATISTICS en lugar de COUNT(*). |
| hana_get_system_infoA | Devuelve información del sistema SAP HANA Cloud: memoria, CPU, alertas activas. Útil para monitorización básica del Free Tier (que tiene límites de recursos). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/eduardoddddddd/DesktopCommanderPy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server