PowerShell命令服务器

一个用于安全执行和管理PowerShell命令的服务器,支持多种语言模式和安全性配置。

  • by danielklecha
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 danielklecha/mcp-server-for-powershell

使用说明

PowerShell的MCP服务器

免责声明

非官方实施:这个项目是一个独立的开源软件项目。它是 不 附属于、认可、赞助或关联于 微软公司 或 PowerShell 团队。

商标:“PowerShell”和PowerShell徽标是微软公司在美国和/或其他国家的商标或注册商标。本文引用的所有其他商标均为其各自所有者的财产。这些名称的使用仅用于描述性目的(记名合理使用),以表明兼容性。

安装

  • 直接与 紫外线 (推荐): uvx mcp-server-for-powershell
  • 点: pip install mcp-server-for-powershell
  • 紫外线: uv pip install mcp-server-for-powershell

配置

可以使用以下命令行参数配置服务器:

参数 描述 默认值
--allowed-commands 允许的PowerShell命令列表。如果为空,则全部允许(受限制)。 []
--restricted-commands 受限PowerShell命令列表。 安全默认值
--restricted-directories 受限目录列表。 系统目录
--language-mode PowerShell语言模式: 0 (无语言), 1 (约束语言), 2 (受限语言), 3 (全语言)。 1
--cwd 初始工作目录。 当前目录

语言模式

  • 0(无语言):不允许执行脚本。
  • 1(约束语言):限制对敏感语言元素的访问(默认)。
  • 2(受限语言):只允许基本命令。
  • 3(完整语言):无限制访问。

安全配置文件

我们根据您的安全需求推荐不同的配置:

默认值(平衡)

默认情况下,服务器在 约束语言 该模式具有精心策划的危险命令和受限系统目录的块列表。这为一般用途提供了“足够好”的默认值,防止了常见的危险操作,同时允许大多数只读和安全操作。

uvx mcp-server-for-powershell

安全模式(严格)

对于需要更严格控制的环境,请使用 无语言 模式(--language-mode 0).只能执行内置命令和cmdlet。

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

核模式(仅允许列表)

对于最高安全级别的“核”选项,明确地只将您需要的命令列入白名单(例如,允许 get-items 仅)。此块 一切 否则默认。

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

许可证

mcp-server-for-powershell 根据MIT许可证提供。