使用说明

项目简介

MCP PowerShell 执行服务器是一个基于 Model Context Protocol (MCP) 的后端应用,它接收并执行 PowerShell 脚本,并将执行结果返回给客户端。这使得 AI 助手等 MCP 客户端能够利用 PowerShell 的强大功能,进行系统管理、自动化任务处理等。

主要功能点

  • PowerShell 脚本执行: 接收客户端发送的 PowerShell 脚本,并在服务器端安全执行。
  • 实时结果返回: 脚本执行完毕后,服务器将实时返回执行结果,包括标准输出和错误信息。
  • MCP 协议支持: 遵循 MCP 协议标准,可以与任何兼容 MCP 协议的客户端(如 GitHub Copilot 等)进行集成。
  • 工具注册: 通过 '@mcp.tool()' 装饰器,将 PowerShell 脚本执行功能注册为 MCP 工具,供客户端调用。

安装步骤

  1. 克隆仓库

    git clone https://github.com/dfinke/mcp-powershell-exec.git
    cd mcp-powershell-exec
  2. 环境准备

    • 确保已安装 Python 3.10 或更高版本
    • 确保已安装 PowerShell 5.1 或更高版本
    • (可选)建议创建 Python 虚拟环境以隔离项目依赖。
  3. 运行服务器 在项目根目录下,使用 Python 运行 'server.py' 文件:

    python server.py

    服务器默认会在本地启动,等待 MCP 客户端连接。

服务器配置

要让 MCP 客户端(例如 GitHub Copilot in VSCode Insiders)连接到此服务器,您需要在客户端的 MCP 配置文件中添加服务器配置信息。以下是一个示例 'mcp.json' 配置,通常位于客户端的 '.vscode' 目录下:

{
 "servers": {
  "powershell-integration": {  // 服务器名称,客户端用于识别和调用
   "command": "py",          // 启动服务器的命令,这里使用 python 解释器
   "args": [
    "drive:/path/to/server.py" // 服务器脚本 server.py 的路径,请替换为实际路径,例如 "D:/mcp-powershell-exec/server.py"
   ],
   "env": {}                // 环境变量配置,如果服务器需要特定环境变量,可以在这里配置
  }
 }
}

配置说明:

  • '"servers"': 定义所有 MCP 服务器的配置。
  • '"powershell-integration"': 您为此 PowerShell 服务器定义的名称,可以自定义,客户端通过此名称引用服务器。
  • '"command"': 启动服务器进程的命令。这里假设 'python' 命令可以直接运行 Python 解释器。如果您的 Python 环境配置不同,请修改为正确的 Python 解释器路径或命令,例如 'python3' 或 Python 解释器的完整路径。
  • '"args"': 传递给启动命令的参数列表。这里指定了 'server.py' 脚本的路径。请务必将 '"drive:/path/to/server.py"' 替换为 'server.py' 文件在您本地文件系统中的实际路径
  • '"env"': 可选的环境变量配置。如果您的服务器脚本依赖特定的环境变量,可以在这里设置。

基本使用方法

  1. 启动 MCP PowerShell 执行服务器:按照安装步骤中的说明运行 'server.py'。
  2. 配置 MCP 客户端:在 MCP 客户端(如 VSCode Insiders 中的 GitHub Copilot)中配置 'mcp.json' 文件,添加上述服务器配置信息,并确保路径正确。
  3. 启用 Agent Mode (代理模式):在 Copilot Chat 中启用 "Agent mode" 或 "Copilot Edits",并刷新工具列表。客户端应该能够检测到名为 "powershell-integration" 的服务器及其提供的工具。
  4. 在客户端中使用工具:在 Copilot Chat 中,您可以使用 '@powershell-integration.run_powershell' 工具来执行 PowerShell 代码。例如,您可以输入类似 '#run_powershell Get-Process' 的指令,Copilot 会调用 MCP 服务器执行 'Get-Process' 命令,并将结果返回给您。

信息

分类

桌面与硬件