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 等核心模块,并支持外部模块注入配置