README.mdā¢4.97 kB
# track-it: MCP Process Wrapper
A lightweight process tracker that enables Claude to monitor and inspect running processes through the Model Context Protocol (MCP).
## Features
- **š Simple CLI wrapper** - Just prepend `track-it` to any command
- **š Environment variable support** - Pass env vars to tracked processes
- **š Separate stdout/stderr logs** - Independent capture of output streams
- **š¾ Persistent SQLite storage** - Survives restarts, queryable history
- **š Read-only MCP interface** - Claude can observe but not execute
- **š Real-time monitoring** - Tail logs of running processes
- **š”ļø Signal handling** - Clean shutdown with Ctrl+C
## Quick Start
### Installation
1. Clone the repository:
```bash
git clone https://github.com/scottmsilver/mcp-track-it.git
cd mcp-track-it
```
2. Install MCP dependency:
```bash
pip install mcp
```
3. Run the installer:
```bash
./install-and-test.sh
```
This will:
- Check Python installation
- Test the track-it wrapper
- Configure Claude's MCP settings
- Run a test process to verify everything works
### Basic Usage
```bash
# 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
```
### Environment Variable Support
The new syntax supports passing environment variables to tracked processes:
```bash
# 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
```
Use `--` to separate environment variables from the command when needed.
## Claude Integration
Once installed, Claude can monitor your processes using these phrases:
- "List all my tracked processes"
- "Show me the logs for [process-id]"
- "Check if my server is still running"
- "Find any errors in the process logs"
### What Claude Sees
When you run:
```bash
./track-it --id myserver PORT=8080 -- python server.py
```
Claude will see:
- Process ID: `myserver`
- Status: `running` or `completed`
- Full command with arguments
- Environment variables that were set
- Complete stdout/stderr logs
- Exit code when completed
## File Structure
```
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)
```
## How It Works
1. **track-it wrapper** captures your process output
2. **SQLite database** stores process metadata
3. **Log files** preserve stdout/stderr streams
4. **MCP server** provides read-only access to 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
```
## Advanced Configuration
### Custom Log Directory
Set the environment variable:
```bash
export MCP_PROCESS_WRAPPER_LOG_DIR=/path/to/logs
./track-it python app.py
```
### Manual MCP Configuration
If you need to manually configure Claude's MCP settings, add to `~/.claude/mcp.json`:
```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"
}
}
}
}
```
## Troubleshooting
**Permission denied when running track-it:**
```bash
chmod +x track-it
```
**Claude can't see processes:**
- Restart Claude Code after installation
- Verify MCP server is listed: Ask Claude to run `/mcp` command
**Process gets stuck when hitting Ctrl+C:**
- Update to the latest version (this bug was fixed)
**Logs not appearing:**
- Check write permissions in the log directory
- Verify disk space is available
## Recent Improvements
- ā
**Environment variable support** - Pass env vars to tracked processes
- ā
**Absolute path storage** - Reliable log file access across directories
- ā
**Fixed signal handling** - Clean shutdown without infinite loops
- ā
**Better path resolution** - MCP server correctly finds logs from any working directory
## Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
## License
MIT License - See LICENSE file for details.
## Author
Created as a lightweight alternative to complex process managers, specifically designed for Claude MCP integration.