Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WSL_BRIDGE_DISTRONoThe default WSL distribution to use when the tool does not specify a `distro`.
WSL_BRIDGE_LOG_DIRNoDirectory for audit logs (Windows side).%APPDATA%\wsl-bridge-mcp
WSL_BRIDGE_SANDBOX_DIRSNoSemicolon-separated list of POSIX paths allowed for modifying file operations. Empty means the entire distro.[]
WSL_BRIDGE_GUARDRAIL_MODENoGuardrail mode: 'block-and-confirm', 'block', or 'off'.block-and-confirm
WSL_BRIDGE_PREWARM_SHELLSNoWhether to pre-spawn default distro shell on startup to eliminate first command latency.true
WSL_BRIDGE_MAX_OUTPUT_BYTESNoMaximum output size in bytes before truncation.1048576
WSL_BRIDGE_SCRIPT_TIMEOUT_MSNoTimeout for long-running operations such as search and system info in milliseconds.120000
WSL_BRIDGE_COMMAND_TIMEOUT_MSNoTimeout for `run_command` in milliseconds.30000

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_distrosB

List installed WSL distributions with their state and version, and mark the default.

get_system_infoA

Get WSL system info (OS, kernel, uptime, memory, disk, user) for a distro.

check_wsl_statusA

Health check: confirm a WSL distro is reachable and the persistent shell responds.

translate_pathA

Translate a WSL POSIX path to a Windows UNC path, or vice versa. Useful for understanding where a WSL file lives on the Windows side.

resolve_pathA

Resolve a possibly-relative WSL POSIX path (handles ~, ., ..) to an absolute POSIX path, using a working directory and the distro home.

read_fileA

Read a file from WSL. Text files return UTF-8 content; binary files return base64 with a mimeType. Supports offset/limit for large files; sha256=true returns a hash of the read bytes for round-trip verification.

read_multiple_filesA

Read multiple files from WSL in one call (reduces round-trips). Each entry is returned independently; failures do not abort the batch.

write_fileA

Write a file in WSL. content is UTF-8 text by default; set encoding="base64" for binary content. Creates parent directories as needed. sha256=true returns a hash of the written bytes for round-trip verification.

edit_fileA

Line/substring-based edit of a WSL file: replace oldString with newString. oldString must be unique unless replaceAll=true. Use dryRun=true to preview.

list_directoryA

List entries in a WSL directory, with type and size. Directories sort first. Supports offset/limit pagination for large directories.

get_file_infoB

Stat a WSL path: type, size, mode, mtime, atime.

create_directoryC

Create a directory in WSL (recursive).

move_fileC

Move or rename a file/directory within WSL.

delete_pathA

Delete a file or directory in WSL. Recursive directory deletion requires recursive=true and may require confirm=true for shallow paths (guardrail).

run_commandA

Run a shell command in WSL (foreground, waits for completion). Supports multi-line scripts, cwd, env vars, and timeout. Returns stdout (and stderr, separately when separateStderr=true; otherwise stderr is merged into stdout) and exit code. Dangerous commands are blocked by the guardrail (confirm=true overrides confirmable ones).

set_cwdA

Set the persistent shell working directory for a distro. Subsequent run_command calls without an explicit cwd will run here.

start_processA

Start a long-running process in WSL (backgrounded). Returns a handle and pid; output is streamed to a log file readable via read_process_output.

get_process_statusA

Check whether a started process is still running, and its exit code if finished.

read_process_outputA

Read new output from a started process log, incrementally by byte offset. Pass follow=true to briefly wait for new output; stream=true to additionally push each new chunk as a notifications/message (and notifications/progress when the client sent a progressToken) as it arrives. which selects stdout (default) or stderr. Returns the next offset to use.

list_processesA

List all processes started via start_process that this server is tracking.

stop_processA

Send a signal to a started process (default SIGTERM). Use signal=KILL to force. Uppercase signal names only.

search_filesA

Find files in WSL by name pattern (find -name). Returns matching POSIX paths.

search_contentA

Search file contents in WSL (recursive grep). Returns file:line:match entries. Uses ripgrep if available, else falls back to grep.

list_portsA

List TCP ports listening in WSL (via ss, falling back to /proc/net/tcp). Useful to find where a dev server is reachable (WSL2 forwards localhost to Windows).

get_envA

Read environment variables from the persistent WSL shell. Pass name for one var, or omit for all.

set_envA

Set an environment variable in the persistent WSL shell (persists across run_command calls).

diagnoseA

Run a diagnostic sweep: distros, UNC reachability, persistent shell, /tmp/wsl-bridge, and a UNC write/read probe. Returns a pass/fail report.

query_audit_logA

Query the audit log of past tool calls (most-recent-first). Filter by tool, since (ISO timestamp), or keyword.

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/Darling209/wsl-bridge-mcp'

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