进程跟踪工具

一个轻量级的进程跟踪工具,通过Model Context Protocol (MCP)使Claude能够监控和检查运行中的进程。

  • by scottmsilver
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 scottmsilver/mcp-track-it

使用说明

跟踪它:MCP过程包装器

一个轻量级的进程跟踪器,使Claude能够通过模型上下文协议(MCP)监视和检查正在运行的进程。

特性

  • 🚀 简单的CLI包装器 -只需预置 track-it 任何命令
  • 🔍 环境变量支持 -将env变量传递给被跟踪的进程
  • 📝 分离stdout/stderr日志 -独立捕获输出流
  • 💾 持久SQLite存储 -重启后仍能生存,可查询历史记录
  • 🔒 只读MCP接口 -克劳德可以观察,但不能执行
  • 📊 实时监控 -运行进程的尾日志
  • 🛡️ 信号处理 -使用Ctrl+C清除关机

快速开始

安装

  1. 克隆存储库:
git clone https://github.com/scottmsilver/mcp-track-it.git
cd mcp-track-it
  1. 安装MCP依赖关系:
pip install mcp
  1. 运行安装程序:
./install-and-test.sh

这将:

  • 检查Python安装
  • 测试track-it包装
  • 配置Claude的MCP设置
  • 运行测试流程以验证一切正常

基本用法

# Simple command
./track-it echo "Hello World"

# With custom ID
./track-it --id myapp python server.py

# With environment variables
./track-it PORT=8080 DEBUG=true -- python app.py

# Multiple env vars and options
./track-it --id webserver PORT=3000 HOST=0.0.0.0 -- npm start

环境变量支持

新语法支持将环境变量传递给被跟踪的进程:

# Format: track-it [options] [ENV=value ...] [--] command [args]

# Examples:
./track-it DATABASE_URL=postgres://localhost/mydb -- python manage.py runserver
./track-it --id worker REDIS_HOST=localhost WORKERS=4 -- python worker.py

使用 -- 在需要时将环境变量从命令中分离出来。

克劳德集成

安装后,Claude可以使用以下短语监视您的进程:

  • “列出我跟踪的所有流程”
  • “显示[进程id]的日志”
  • “检查我的服务器是否仍在运行”
  • “在进程日志中查找任何错误”

克劳德看到了什么

跑步时:

./track-it --id myserver PORT=8080 -- python server.py

克劳德将看到:

  • 进程ID: myserver
  • 状态: running 或 completed
  • 带参数的完整命令
  • 已设置的环境变量
  • 完成stdout/stderr日志
  • 完成时的退出代码

文件结构

mcp-track-it/
├── track-it                    # Main CLI wrapper
├── mcp_server.py              # MCP server for Claude
├── process_registry.py        # SQLite database interface
├── install-and-test.sh        # Main installer
├── process_logs/              # Log files (auto-created)
│   ├── [process-id].log       # Combined stdout+stderr
│   ├── [process-id].stdout.log
│   └── [process-id].stderr.log
└── process_registry.db        # SQLite database (auto-created)

运作原理

  1. 跟踪它包装器 捕获您的流程输出
  2. SQLite数据库 存储流程元数据
  3. 日志文件 保留stdout/stderr流
  4. MCP服务器 提供对Claude的只读访问权限
User runs: track-it python app.py
    ↓
Creates 3 log files + DB entry
    ↓
Process runs with real-time output
    ↓
Claude can query via MCP server

高级配置

自定义日志目录

设置环境变量:

export MCP_PROCESS_WRAPPER_LOG_DIR=/path/to/logs
./track-it python app.py

手动MCP配置

如果您需要手动配置Claude的MCP设置,请添加到 ~/.claude/mcp.json:

{
  "mcpServers": {
    "process-wrapper": {
      "command": "python3",
      "args": ["/path/to/mcp-track-it/mcp_server.py"],
      "env": {
        "MCP_PROCESS_WRAPPER_LOG_DIR": "/path/to/logs",
        "MCP_PROCESS_REGISTRY_DB": "/path/to/process_registry.db"
      }
    }
  }
}

故障排除

运行轨迹时权限被拒绝:

chmod +x track-it

Claude看不到进程:

  • 安装后重新启动Claude Code
  • 验证MCP服务器是否已列出:要求Claude运行 /mcp 命令

按下Ctrl+C时进程卡住:

  • 更新到最新版本(此错误已修复)

日志未显示:

  • 检查日志目录中的写入权限
  • 验证磁盘空间是否可用

最近的改进

  • ✅ 环境变量支持 -将env变量传递给被跟踪的进程
  • ✅ 绝对路径存储 -跨目录的可靠日志文件访问
  • ✅ 固定信号处理 -无无限循环的干净关机
  • ✅ 更好的路径分辨率 -MCP服务器正确地从任何工作目录中查找日志

贡献

欢迎投稿!请随时提交问题和拉取请求。

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

作者

作为复杂流程管理器的轻量级替代品,专为Claude MCP集成而设计。