PowerShell MCP Server

Unofficial PowerShell MCP server for executing commands and scripts

README.md

MCP server for PowerShell

Disclaimer

Unofficial Implementation: This project is an independent open-source software project. It is not affiliated with, endorsed by, sponsored by, or associated with Microsoft Corporation or the PowerShell team.

Trademarks: "PowerShell" and the PowerShell logo are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks cited herein are the property of their respective owners. Use of these names is for descriptive purposes only (nominative fair use) to indicate compatibility.

Installation

  • Run directly with uv (recommended): uvx mcp-server-for-powershell
  • pip: pip install mcp-server-for-powershell
  • uv: uv pip install mcp-server-for-powershell

Configuration

The server can be configured using the following command-line arguments:

Argument Description Default
--allowed-commands List of allowed PowerShell commands. If empty, all are allowed (subject to restrictions). []
--restricted-commands List of restricted PowerShell commands. Safe defaults
--restricted-directories List of restricted directories. System directories
--language-mode PowerShell Language Mode: 0 (NoLanguage), 1 (ConstrainedLanguage), 2 (RestrictedLanguage), 3 (FullLanguage). 1
--cwd Initial working directory. Current Directory

Language Modes

  • 0 (NoLanguage): No script execution allowed.
  • 1 (ConstrainedLanguage): Restricts access to sensitive language elements (default).
  • 2 (RestrictedLanguage): Only allows basic commands.
  • 3 (FullLanguage): Unrestricted access.

Security Profiles

We recommend different configurations based on your security needs:

Default (Balanced)

By default, the server runs in ConstrainedLanguage mode with a curated blocklist of dangerous commands and restricted system directories. This provides "good enough" defaults for general use, preventing common dangerous operations while allowing most read-only and safe actions.

uvx mcp-server-for-powershell

Safe Mode (Strict)

For environments requiring stricter controls, use NoLanguage mode (--language-mode 0). Only built-in commands and cmdlets can be executed.

uvx mcp-server-for-powershell --language-mode 0

Nuclear Mode (Allow-List Only)

For the highest security "nuclear" option, explicitly whitelist ONLY the commands you need (e.g., allow get-items only). This blocks everything else by default.

uvx mcp-server-for-powershell --allowed-commands Get-Item Get-ChildItem Get-Content

License

mcp-server-for-powershell is provided as-is under the MIT license.

Try it

List all files in the current directory using PowerShell.
Get the current system date and time using PowerShell.
Check the status of running processes using Get-Process.
Retrieve the current working directory path.

Frequently Asked Questions

What are the key features of PowerShell MCP Server?

Execute PowerShell commands and scripts directly. Configurable PowerShell language modes (NoLanguage to FullLanguage). Customizable allow-lists and block-lists for commands. Restricted directory access for enhanced security. Support for custom initial working directories.

What can I use PowerShell MCP Server for?

Automating file system tasks and directory management. Querying system information and process status. Running administrative scripts within a controlled environment. Integrating PowerShell-based automation into AI workflows.

How do I install PowerShell MCP Server?

Install PowerShell MCP Server by running: uvx mcp-server-for-powershell

What MCP clients work with PowerShell MCP Server?

PowerShell MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Conare · memory for coding agents

Turn this server into reusable context

Keep PowerShell MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Set up free$npx conare@latest