Skip to main content
Glama
eduardoddddddd

DesktopCommanderPy

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HANA_HOSTNoSAP HANA Cloud host (optional, can also be configured via config/hana_config.yaml)
HANA_PORTNoSAP HANA Cloud port (optional)443
HANA_USERNoSAP HANA Cloud user (optional)
HANA_SCHEMANoSAP HANA Cloud schema (optional)
HANA_PASSWORDNoSAP HANA Cloud password (optional)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
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

NameDescription
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.

  • pattern is matched against file names using glob syntax OR substring match.

  • content_search scans file contents (text files only, skips binary).

  • Returns a list of matching absolute paths with optional match context.

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:

  1. start_process('python -i') → PID 1234

  2. interact_with_process(1234, 'import pandas as pd')

  3. interact_with_process(1234, 'df = pd.read_csv("datos.csv")')

  4. interact_with_process(1234, 'print(df.describe())')

  5. kill_process(1234)

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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