ProcexeCMCP
Claude的无状态命令执行和进程管理MCP服务器
ProcExecMCP使Claude(扮演架构角色)能够搜索代码内容、执行命令、监视进程和终止进程。服务器使用FastMCP和Python 3.11+公开了4个MCP工具,psutil用于跨平台进程管理,系统ripgrep用于文件内容搜索。
特性
- 🔍 搜索_内容:使用ripgrep搜索文件内容中的模式
- ⚡ execute_命令:在有超时和输出限制的情况下安全执行命令
- 📊 列表_流程:使用筛选和排序列出正在运行的进程
- 🛑 kill过程:通过PID终止进程
安全
- ✅ 无外壳注射(无
shell=True) - ✅ 所有操作都必须超时
- ✅ 资源限制可防止内存耗尽
- ✅ 路径验证可防止遍历攻击
- ✅ 山宁泰错误消息
有关全面的安全文档,请参阅 安全_建筑.md.
先决条件
快速开始
1.安装依赖项
# Clone repository
git clone https://github.com/Positronikal/ProcExecMCP.git ProcExecMCP
cd ProcExecMCP
# Install with uv
uv sync2.验证ripgrep
# Check if ripgrep is installed
rg --version如果未安装:
- 视窗:
winget install BurntSushi.ripgrep.MSVC - macOS:
brew install ripgrep - Linux:
sudo apt install ripgrep
3.配置克劳德桌面
编辑您的Claude Desktop配置文件:
- 视窗:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
将ProcExecMCP添加到 mcpServers:
{
"mcpServers": {
"procexec": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/ProcExecMCP",
"run",
"procexec"
],
"env": {
"PROCEXEC_TIMEOUT": "30000",
"PROCEXEC_MAX_OUTPUT": "10485760",
"PROCEXEC_ENABLE_KILL": "true",
"PROCEXEC_RIPGREP_PATH": "/path/to/rg"
}
}
}
}Windows示例:
{
"mcpServers": {
"procexec": {
"command": "C:\\Users\\YourName\\.local\\bin\\uv.exe",
"args": [
"--directory",
"D:\\dev\\ProcExecMCP",
"run",
"procexec"
],
"env": {
"PROCEXEC_RIPGREP_PATH": "C:\\Program Files\\ripgrep\\rg.exe"
}
}
}
}4.重新启动克劳德桌面
关闭并重新打开Claude Desktop以加载新的MCP服务器。
5.验证安装
在Claude中,尝试:
What MCP tools do you have available?您应该看到列出的所有4个ProcExecMCP工具。
配置
环境变量
- PROCEXEC_TIMEOUT:命令超时(毫秒)(默认值:30000,范围:1000-300000)
- PROCEXEC_MAX_OUTPUT:最大输出大小(以字节为单位)(默认值:10485760=10MB)
- PROCEXEC_BLOCKED_PATHS:以逗号分隔的路径列表,用于阻止访问
- PROCEXEC_ENABLE_KILL:启用进程终止工具(默认值:“true”)
- PROCEXEC_RIPGREP_PATH:ripgrep二进制文件的完整路径(如果不在path中,请使用)
安全考虑
- 受阻的路径:配置
PROCEXEC_BLOCKED_PATHS保护敏感目录 - 过程终止:禁用
PROCEXEC_ENABLE_KILL="false"如果不需要 - 超时:设置适当的限制以防止命令失控
- 权限:除非必要,否则避免以提升的权限运行Claude Desktop
使用示例
搜索代码模式
Search for all TODO comments in my Python project at /path/to/project执行分析工具
Run 'pylint src/' in my project directory and show the results监控流程
List all Python processes sorted by memory usage终止卡住的进程
Terminate process 1234 gracefully发展
有关开发设置、运行测试、修改服务器和构建文档,请参阅 USING.md.
文档
故障排除
未找到ripgrep
确保ripgrep已安装并位于PATH中,或已设置 PROCEXEC_RIPGREP_PATH 环境变量。
超时错误
通过以下方式增加超时时间 PROCEXEC_TIMEOUT 环境变量(毫秒)。
权限不足
检查文件/目录权限或配置 PROCEXEC_BLOCKED_PATHS.
有关更多故障排除指南,请参阅 BUGS.md.
许可证
本项目根据GNU通用公共许可证版本3或任何更高版本(GPLv3+)获得许可。看 COPYING.md 获取完整的许可证文本。
贡献
欢迎投稿!请阅读 贡献.md 作为指导方针。
支持
- 问题:
- 安全:参见 安全.md 负责披露
- 文档:参见
docs/供API参考
