LM_PS_MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LM_PS_MCPList the top 3 processes using PowerShell"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LM_PS_MCP — 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,cd,cwd,env_get,env_set,pingPersistent 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)
Related MCP server: LmsPs
Install (dev)
cd K:/Repos/LM_PS_MCP
python -m venv .venv
. .venv/Scripts/activate # Windows
pip install -e .Run (stdio)
From WSL (recommended by LM Studio):
bash K:/Repos/LM_PS_MCP/scripts/start_ps_mcp_stdio.shOr directly (Windows):
python -m lm_ps_mcp.serverEnvironment variables
LM_PS_MCP_POWERSHELL_PATH— Preferred path to Windows PowerShell 5.1 (defaultC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe).LM_PS_MCP_PWSH— Legacy override for the PowerShell executable (retained for backward compatibility).LM_PS_MCP_LOGDIR— log directory (default:<repo>/logs)LM_PS_MCP_TRIM_CHARS— max characters returned to client (default:500)LM_PS_MCP_TIMEOUT_SEC— per‑call timeout in seconds (default:30)LM_PS_MCP_MAX_COMMAND_CHARS— maximum PowerShell command length accepted byps_run(default:8192)
ps_run tool
Arguments
command(required): exact PowerShell command text passed to-Command.timeout_sec(optional): overrides the per-call timeout (defaults toLM_PS_MCP_TIMEOUT_SECor 30s).trim_chars(optional): overrides the maximum characters returned to the client (defaults toLM_PS_MCP_TRIM_CHARSor 500).
Execution
Uses Windows PowerShell 5.1 (
powershell.exe) with-NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypassto avoid side effects. Override the path withLM_PS_MCP_POWERSHELL_PATH(or legacyLM_PS_MCP_PWSH).The process runs with the server's current working directory and an environment overlay managed by
env_set.The working directory persists across calls; use
cdto reposition before running relative-path commands.
Return payload
The tool now returns a JSON object with fields:
status:ok,powershell-error,timeout,invalid-command, orinternal-error.exit_code: integer PowerShell exit code (ornullfor tool-level failures).stdout/stderr: decoded (UTF‑16/UTF‑8 aware) output trimmed totrim_chars.message: optional human-readable context (e.g., timeout notice, validation failure).timeout_seconds: populated only for timeout responses so callers know the enforced limit.
Validation & failure modes
Commands must be non-empty strings and shorter than
LM_PS_MCP_MAX_COMMAND_CHARS; invalid input returnsstatus: invalid-commandwithout touching PowerShell.Timeouts return
status: timeoutwith any partial decoded output that PowerShell produced.Spawn failures or unexpected exceptions return
status: internal-erroralong with the exception type inmessage.
LM Studio configuration example
Add to your LM Studio settings JSON:
{
"mcpServers": {
"lm_ps_mcp": {
"command": "bash",
"args": ["-lc", "K:/Repos/LM_PS_MCP/scripts/start_ps_mcp_stdio.sh"],
"env": {
"LM_PS_MCP_PWSH": "/mnt/c/Program Files/PowerShell/7/pwsh.exe",
"LM_PS_MCP_LOGDIR": "/mnt/k/LMstudio/LM_PS_MCP/logs",
"LM_PS_MCP_TRIM_CHARS": "500"
}
}
}
}Smoke test (from LM Studio)
ps_run→Get-Process | Select-Object -First 3cwd→ should show current locationcd→ change to a test directory and re‑runcwdenv_set/env_get→ write/read a temp environment variableRe‑run
ps_runto confirm session persistence
Working directory model
The MCP server maintains a single-process working directory stored in memory.
cwdreports the current directory, andcdupdates it (accepting absolute or relative paths).Subsequent
ps_runcommands execute within that directory, soGet-ChildItem -Path .andGet-Contenton relative paths resolve as expected.FastMCP routes requests sequentially, so there is no concurrent mutation of this state; the model matches LM Studio's expectation of a single PowerShell session.
Logs
Full request/response JSON lines are appended to
LM_PS_MCP_LOGDIR/lm_ps_mcp_server.log.
Repo layout
src/lm_ps_mcp/server.py— MCP server implementationscripts/start_ps_mcp_stdio.sh— stdio launcher (used by LM Studio)logs/— default log directory (overridable viaLM_PS_MCP_LOGDIR)
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- FlicenseCqualityDmaintenanceA Model Context Protocol server that enables AI assistants to execute PowerShell commands, retrieve system information, manage modules, and run scripts on Windows systems.62-
- AlicenseNot gradedqualityDmaintenanceEnables interaction with a persistent PowerShell session through LM Studio. Provides tools to run commands, manage directories, and handle environment variables while maintaining session state between calls.1MIT
- AlicenseAqualityFmaintenanceA comprehensive Model Context Protocol (MCP) server that enables Claude and other LLM applications to execute PowerShell commands, scripts, and perform system operations on Windows systems.1025MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for advanced PowerShell integration with AI agents, enabling autonomous script execution, code analysis, and IntelliSense.3MIT