On macOS and Linux, axiomcode mcp always prints this warning to stderr:
axiomcode mcp: AXIOMCODE_BASH is set to bash, which does not exist.
The server starts, but every tool will say it cannot run the CLI.
The warning is false: tools/call returns correct answers. An MCP client that shows server stderr tells the user the tools are broken when they work.
Cause. On a non-Windows platform findBash() returns the bare name bash, and bin/axiomcode.js exports it as AXIOMCODE_BASH=bash. axiomcode mcp then goes through mcp/launch.js, which calls findBash() again. It sees the override and checks fs.existsSync("bash"), which is resolved against the working directory, so the check fails. server.py still inherits AXIOMCODE_BASH=bash and runs normally.
Fix. Test for existence only when the override is a path, or have bin/axiomcode.js export AXIOMCODE_BASH only when it holds an absolute path.
Found by an end-to-end run of 0.1.1 on macOS and Linux. Windows is not affected, because there the value is an absolute path.
On macOS and Linux,
axiomcode mcpalways prints this warning to stderr:The warning is false:
tools/callreturns correct answers. An MCP client that shows server stderr tells the user the tools are broken when they work.Cause. On a non-Windows platform
findBash()returns the bare namebash, andbin/axiomcode.jsexports it asAXIOMCODE_BASH=bash.axiomcode mcpthen goes throughmcp/launch.js, which callsfindBash()again. It sees the override and checksfs.existsSync("bash"), which is resolved against the working directory, so the check fails.server.pystill inheritsAXIOMCODE_BASH=bashand runs normally.Fix. Test for existence only when the override is a path, or have
bin/axiomcode.jsexportAXIOMCODE_BASHonly when it holds an absolute path.Found by an end-to-end run of 0.1.1 on macOS and Linux. Windows is not affected, because there the value is an absolute path.