LmsPs — LM Studio PowerShell MCP Server
A minimal, environment‑driven MCP server that exposes a persistent PowerShell session to LM Studio. It keeps a single pwsh.exe/powershell.exe process alive and offers tools to run commands, manage cwd, and get/set env vars. Responses to the client are trimmed (default 500 chars) while full I/O is logged.
Features
- Tools:
ps.run
,ps.cd
,ps.cwd
,ps.reset
,ps.env_get
,ps.env_set
- Persistent PowerShell between calls (stateful session)
- 500‑char response trim to the client; full logs on disk
- All paths/config via environment variables (no hardcoded paths)
Install (dev)
cd K:/Repos/LmsPs
python -m venv .venv
. .venv/Scripts/activate # Windows
pip install -e .
Run (stdio)
- From WSL (recommended by LM Studio):
bash K:/Repos/LmsPs/scripts/start_ps_mcp_stdio.sh
- Or directly (Windows):
python -m lmsps.server
Environment variables
LMSPS_PWSH
— PowerShell executable (defaultpwsh.exe
, fallbackpowershell.exe
)LMSPS_PWSH_FALLBACK
— override fallback exe if neededLMSPS_LOGDIR
— log directory (default:<repo>/logs
)LMSPS_TRIM_CHARS
— max characters returned to client (default:500
)LMSPS_TIMEOUT_SEC
— per‑call timeout in seconds (default:30
)
LM Studio configuration example
Add to your LM Studio settings JSON:
{
"mcpServers": {
"lmsps": {
"command": "bash",
"args": ["-lc", "K:/Repos/LmsPs/scripts/start_ps_mcp_stdio.sh"],
"env": {
"LMSPS_PWSH": "/mnt/c/Program Files/PowerShell/7/pwsh.exe",
"LMSPS_LOGDIR": "/mnt/k/LMstudio/LmsPs/logs",
"LMSPS_TRIM_CHARS": "500"
}
}
}
}
Smoke test (from LM Studio)
ps.run
→Get-Process | Select-Object -First 3
ps.cwd
→ should show current locationps.cd
→ change to a test directory and re‑runps.cwd
ps.env_set
/ps.env_get
→ write/read a temp environment variable- Re‑run
ps.run
to confirm session persistence
Logs
- Full request/response JSON lines are appended to
LMSPS_LOGDIR
/lmsps_server.log
.
Repo layout
src/lmsps/server.py
— MCP server implementationscripts/start_ps_mcp_stdio.sh
— stdio launcher (used by LM Studio)logs/
— default log directory (overridable viaLMSPS_LOGDIR
)
License
MIT