From d745ff590a6945c2d47bae67b304ad01a9f10dbc Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Sat, 2 May 2026 15:11:51 -0400 Subject: [PATCH] docs(README): add note about shell expansion in MCP config --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 690f620c13933befd26c6e549af90a90b930bd38..73997cd325f298d3fb8bce817baeee6fa4669fa6 100644 --- a/README.md +++ b/README.md @@ -292,10 +292,17 @@ like you would. LSPs can be added manually like so: ### MCPs -Crush also supports Model Context Protocol (MCP) servers through three -transport types: `stdio` for command-line servers, `http` for HTTP endpoints, -and `sse` for Server-Sent Events. Environment variable expansion is supported -using `$(echo $VAR)` syntax. +Crush also supports Model Context Protocol (MCP) servers through three transport +types: `stdio` for command-line servers, `http` for HTTP endpoints, and `sse` +for Server-Sent Events. + +Shell-style value expansion (`$VAR`, `${VAR:-default}`, `$(command)`, quoting, +and nesting (works in `command`, `args`, `env`, `headers`, and `url`, so +file-based secrets like work out of the box, so you can use values like +"$TOKEN"` and `"$(cat /path/to/secret/token)"``. Expansion runs through Crush's +embedded shell, so the same syntax works on all supported systems, including +Windows. Unset variables are an error; use `${VAR:-fallback}` to opt in to +a default. ```json {