Pwsh-Repl MCP 服务器

使用说明

  • 项目简介 Pwsh-Repl 是一个基于 MCP 的服务器端实现,整合了 PowerShell 运行时、资源、工具和提示模板,向 LLM 客户端提供统一的上下文数据、可执行工具和可渲染的 Prompt 模板。服务器通过标准的 JSON-RPC 通信(在不同传输协议下实现,如 stdio)与 Claude Code 等环境对接。

  • 主要功能点

    • 持久化会话:提供命名会话(sessionId),变量和状态在同一会话中持久化,方便连续交互
    • 4 个 MCP 工具:pwsh、pwsh_output、stdio、list_sessions,覆盖脚本执行、后台输出监控、后台输入输出以及会话列表与健康检查
    • 资源与模块加载:AgentBlocks 等模块自动加载,支持从环境变量配置额外模块
    • 环境激活:支持 per-call 环境激活,支持 conda 与 venv 混合环境
    • 后台进程与任务对象:通过 Job Object 管理后台进程,确保超时或停止时能原子地终止子进程树
    • 自动缓存与数据分析:执行结果可缓存,提供 Get-StreamData 及 DevRun 相关的分析、摘要与缓存机制
    • 安全与审计:可选审计日志,记录执行内容和会话信息
  • 安装步骤

    • 需要 .NET 8.0 SDK(用于编译),目标平台为 Windows(PowerShell SDK 依赖)
    • 获取代码:克隆或直接下载本仓库
    • 构建项目:在项目根目录执行构建,生成可执行文件
    • 运行服务:以发布后的可执行文件运行,作为 MCP 服务端对外提供支持
  • 服务器配置(MCP 客户端使用的必备信息,JSON 描述) 服务器名称:pwsh-repl 启动方式:stdio 传输(标准输入输出,适用于模型客户端通过 JSON-RPC 调用) 可选参数:工作目录、环境变量、超时等 说明:MCP 客户端需要提供 server name、command 和 args 等信息,以建立与 MCP 服务器的连接。以下配置示意用于客户端配置参考(请按实际环境路径填写)

    { "mcpServers": { "pwsh-repl": { "type": "stdio", "command": "C:\path\to\PowerShellMcpServer.exe", "args": [], "cwd": "C:\path\to\pwsh-repl", "env": { "PWSH_MCP_TIMEOUT_DEFAULT": "60" } // 该配置定义了 MCP 服务器名称、执行文件路径、工作目录与默认超时等参数 } } }

  • 基本使用方法

    • 启动服务器后,客户端通过 MCP 协议的 JSON-RPC 调用与 pwsh、pwsh_output、stdio、list_sessions 等工具互动
    • 常用模式包括:
      • 通过 pwsh,调用持久化会话中的脚本或模式回调功能,支持 mode、name、kwargs、sessionId 等参数
      • 通过 pwsh_output,获取后台执行的输出并进行过滤
      • 通过 stdio,管理后台进程的 stdin/stdout/stderr,或终止并缓存输出
      • 通过 list_sessions,查看当前活跃的会话及健康状态
    • 环境激活与工作目录:在调用 pwsh 时可通过 environment 指定虚拟环境路径或 Conda 环境名,服务器会在执行前尝试激活相应环境
    • 安全注意:后台进程与命令执行会使用 Job Object 的机制来确保在超时或停止时能对整个进程树进行清理
  • 重要提示

    • 客户端需要的最低信息包括服务器名称、启动命令及参数等,用以建立与 MCP 服务器的连接
    • 服务器实现包含多种模块和工具,运行时会自动加载 AgentBlocks 等核心模块,并支持外部模块注入配置

服务器信息