返回市场
powershell-mcp

powershell-mcp

作者:gunjanjp9 星标更新:2025-06-07

项目介绍

PowerShell MCP Server

一个全面的模型上下文协议(MCP)服务器,使Claude和其他大型语言模型应用程序能够在Windows系统上执行PowerShell命令、脚本并进行系统操作。

🌟 关键特性

  • 🔧 PowerShell 执行:执行命令、运行脚本、创建新的PowerShell文件
  • 🖥️ 系统监控:获取系统信息、监控进程、检查服务和磁盘空间
  • 📁 文件操作:列出目录、获取文件信息、使用模式匹配搜索文件
  • ⚙️ 简单设置:一键安装并自动配置Claude Desktop
  • 🛡️ 安全性:通过适当的错误处理和会话管理实现安全执行

🛠️ 可用工具

PowerShell 工具

  • execute-powershell - 在可选的工作目录中执行PowerShell命令
  • execute-powershell-script - 运行带有参数的PowerShell脚本文件
  • create-powershell-script - 创建新的PowerShell脚本

系统工具

  • get-system-info - 获取全面的Windows系统信息
  • get-process-list - 运行中的进程及其CPU/内存使用情况(可排序/过滤)
  • get-service-status - Windows服务状态(可过滤)
  • check-disk-space - 检查所有或特定驱动器的磁盘空间使用情况

文件工具

  • list-directory - 增强的目录列表,支持过滤
  • get-file-info - 详细的文件和目录元数据
  • search-files - 使用模式匹配递归搜索文件

📋 前提条件

  • Windows 10/11 或 Windows Server 2016+
  • Node.js 18.0.0 或更高版本
  • PowerShell 5.1+ 或 PowerShell Core 7+
  • Claude Desktop 应用程序

🚀 快速设置

方案 1:安全自动化设置(推荐)

# 克隆并设置配置管理
git clone https://github.com/gunjanjp/powershell-mcp.git
cd powershell-mcp
complete-setup.bat

方案 2:配置恢复(如果已有设置)

# 如果之前的设置覆盖了现有的配置
node recovery.js status      # 检查当前状态
node recovery.js scan        # 查找备份配置
node recovery.js restore 1   # 从备份恢复
# 或者
node recovery.js merge 1     # 将备份与当前配置合并

方案 3:手动设置

# 克隆仓库
git clone https://github.com/gunjanjp/powershell-mcp.git
cd powershell-mcp

# 安装依赖
npm install

# 安全地添加到现有配置
node recovery.js add-powershell

# 重启Claude Desktop

📖 使用示例

询问Claude:

  • "执行PowerShell: Get-Date"
  • "检查我的系统信息"
  • "显示CPU使用率最高的10个进程"
  • "我的磁盘空间使用情况如何?"
  • "列出我下载文件夹中的文件"
  • "在C:\Users中搜索所有.txt文件"
  • "创建一个备份我的文档文件夹的PowerShell脚本"

🔧 命令

服务器命令

# 启动服务器
npm start

# 测试组件
npm test

# 运行诊断
node diagnose.bat

# 直接启动服务器
node src/server.js

配置管理

# 检查配置状态
node recovery.js status

# 查找备份配置
node recovery.js scan

# 安全地添加PowerShell服务器
node recovery.js add-powershell

# 从备份恢复
node recovery.js restore <number>

# 合并配置
node recovery.js merge <number>

# 显示备份内容
node recovery.js show <number>

快速设置命令

# 完整设置并进行安全检查
complete-setup.bat

# 仅测试服务器
run-test.bat

📁 项目结构

powershell-mcp/
├── src/
│   ├── server.js           # 主MCP服务器(带stderr日志修复)
│   ├── tools/              # 工具实现
│   │   ├── powershell-tools.js
│   │   ├── system-tools.js
│   │   └── file-tools.js
│   └── utils/              # 实用模块
│       └── system-utils.js
├── examples/               # 示例PowerShell脚本
├── scripts/               # 设置实用工具
├── test/                  # 测试文件
├── claude_desktop_config.json  # Claude Desktop配置
├── setup.bat             # 自动化设置脚本
├── diagnose.bat          # 诊断工具
├── test-server.js        # 组件测试
└── README.md

⚙️ Claude Desktop配置

服务器使用此配置(由设置自动应用):

{
  "mcpServers": {
    "powershell": {
      "command": "node",
      "args": ["D:/claude/claude-powershell-mcp/src/server.js"],
      "env": {}
    }
  }
}

配置位置%APPDATA%\Claude\claude_desktop_config.json

🛡️ 安全性功能

  • 安全执行:使用 -ExecutionPolicy Bypass-NoProfile 提供安全性
  • 输入验证:所有输入通过Zod模式进行验证
  • 会话管理:PowerShell会话在使用后正确释放
  • 错误处理:全面的错误处理防止系统问题
  • 日志记录:所有操作记录到stderr(不干扰JSON-RPC)

🐛 故障排除

服务器无法启动

# 检查Node.js版本(需要18+)
node --version

# 检查依赖项
npm install

# 测试组件
node test-server.js

Claude Desktop集成问题

# 再次运行设置
setup.bat

# 检查配置
type "%APPDATA%\Claude\claude_desktop_config.json"

# 完全重启Claude Desktop

PowerShell执行问题

# 测试PowerShell
powershell -Command "Get-Date"

# 检查执行策略
Get-ExecutionPolicy

# 运行诊断
node diagnose.bat

🔄 最近更新(v1.1.2)

配置管理改进

  • 安全配置管理 - 不再覆盖现有配置
  • 自动备份 - 在任何配置更改之前创建备份
  • 配置恢复 - 工具用于查找和恢复先前配置
  • 合并能力 - 多个MCP服务器配置的智能合并
  • 交互式恢复 - 分步配置恢复过程

上次修复(v1.1.1)

  • 修复Claude Desktop JSON解析错误 - 将console.log更改为console.error(stderr)
  • 清理项目结构 - 删除冗余服务器文件
  • 简化设置 - 单脚本设置过程
  • 正确的错误处理 - 增强的日志记录和错误管理

🤝 贡献

  1. 分叉仓库
  2. 创建功能分支:git checkout -b feature-name
  3. 修改并测试:npm test
  4. 提交:git commit -am '添加功能'
  5. 推送:git push origin feature-name
  6. 提交拉取请求

📄 许可证

MIT 许可证 - 详情见LICENSE文件。

🔗 链接


为Claude和PowerShell社区制作 ❤️

⚠️ 重要:此工具提供对PowerShell命令的直接访问。请负责任地使用,并注意安全影响。