Skip to main content

[DEPRECATED - Use Go version] MeshPOP Fleet Orchestration

Project description

mpop

⚠️ DEPRECATED: This Python package is no longer maintained. Please use the Go version instead:

# macOS
brew install meshpop/tap/mpop

# Linux
curl -sSL https://github.com/meshpop/mpop/releases/latest/download/mpop-linux-amd64 -o /usr/local/bin/mpop && chmod +x /usr/local/bin/mpop

GitHub: https://github.com/meshpop/mpop

PyPI Python License: MIT

Server fleet management from one command. Monitor, execute, and heal with AI.

pip install meshpop

Pure Python. No external dependencies. Linux and macOS.


What mpop does

mpop                   # Fleet dashboard — all servers at a glance
mpop heal              # Auto-detect and fix issues across the fleet
mpop exec web1 "systemctl restart nginx"
mpop ask "which server is running low on disk?"

mpop gives you a single place to see and manage your entire server fleet. It uses a lightweight gossip agent (port 8721) that runs on each server, collects local stats, and shares them with peers every 30 seconds.

┌──────────────────────────────────────────┐
│  mpop CLI / MCP  (your machine or AI)    │
└──────────────────┬───────────────────────┘
                   │  HTTP :8721
      ┌────────────┼────────────┐
      │            │            │
┌─────▼─────┐ ┌───▼─────┐ ┌───▼─────┐
│  agent    │ │  agent  │ │  agent  │
│  web1     │ │  web2   │ │  db1    │
└─────┬─────┘ └────┬────┘ └────┬────┘
      └────────────┴────────────┘
        gossip every 30s

Installation

pip install meshpop

Configure your servers

Create ~/.mpop/config.json:

{
  "connection": {"vpn": "wire", "ssh_method": "vssh"},
  "relays": ["YOUR_RELAY_IP"],
  "servers": {
    "web1": {"ip": "10.99.0.10", "user": "root", "role": "Web server", "public_ip": "203.0.113.10"},
    "web2": {"ip": "10.99.0.11", "user": "root", "role": "Web server", "public_ip": "203.0.113.11"},
    "db1":  {"ip": "10.99.0.20", "user": "root", "role": "Database",   "public_ip": "203.0.113.20"}
  }
}

Deploy the agent

mpop setup web1     # Install and start the monitoring agent
mpop setup web2
mpop setup db1
mpop servers        # Verify all agents are online

The agent runs as a systemd service — ~10MB RAM, negligible CPU.


CLI Reference

Monitoring

mpop                       # Main fleet dashboard
mpop servers               # List servers with IPs, roles, agent status
mpop info web1             # Deep dive — CPU, GPU, processes, security
mpop full                  # Comprehensive report with AI summary
mpop watch                 # Real-time monitoring with anomaly alerts
mpop temp                  # CPU/GPU temperatures
mpop gpu                   # GPU status — VRAM, utilization, processes
mpop services              # Running services on each server
mpop logs web1 nginx        # View logs
mpop trend                 # Historical trends
mpop matrix                # Server-to-server connectivity matrix
mpop diff web1 web2        # Compare two servers side-by-side

Network profiles

Manage multiple wire VPN networks (main fleet, private cluster, etc.):

mpop network               # Show active network + connection status
mpop network list          # List saved profiles
mpop network create        # Create a profile from a relay (auto-discovers peers)
mpop network switch main   # Switch to 'main' profile
mpop network save main     # Save current config as 'main'

Profiles: ~/.mpop/networks/<name>.json · Active: ~/.mpop/.active_network

Security

mpop security              # Security overview — firewall, fail2ban, SSH
mpop audit web1            # Detailed security audit
mpop ssh-attacks           # SSH attack analysis — top IPs, geo distribution

Remote execution

mpop exec web1 "df -h"
mpop exec web1 "systemctl restart nginx"
mpop python web1 "import os; print(os.uname())"
mpop read-file web1 /etc/nginx/nginx.conf
mpop scp ./config.json web1 /etc/app/config.json

AI diagnostics

mpop heal                         # Detect and suggest fixes
mpop heal web1 --execute          # Detect and apply fixes
mpop predict web1                 # Predict future issues (disk, memory)
mpop advise                       # Infrastructure optimization recommendations
mpop logai                        # AI cross-server log analysis
mpop ask "which server is low on disk?"
mpop ask "restart nginx on all web servers" --execute

NAS

mpop nas-ls /backups
mpop nas-read /backups/latest.log
mpop nas-backup web1 /var/data /backups/web1
mpop nas-usage /backups

Agents & automation

mpop agent-make --name disk-watcher \
  --behavior "Alert when any server disk exceeds 80%"
mpop agent-deploy disk-watcher web1 web2 db1
mpop agent-run disk-watcher

AI Management via MCP

{
  "mcpServers": {
    "mpop": { "command": "mpop-mcp" }
  }
}

"Show me the fleet dashboard" "Which servers are running low on disk?" "Restart nginx on all web servers" "Run a security audit on db1" "Predict which servers might have issues this week"

MCP Tools

Monitoring
Tool Description
mpop_dashboard Main fleet dashboard
mpop_servers List servers
mpop_info Deep server details
mpop_full Comprehensive report
mpop_watch Real-time monitoring
mpop_temp Temperatures
mpop_gpu GPU status
mpop_services Running services
mpop_logs Server logs
mpop_trend Historical trends
mpop_matrix Connectivity matrix
mpop_diff Side-by-side comparison
Execution & Files
Tool Description
mpop_exec Run shell command
mpop_python Run Python code
mpop_raw Raw CLI with pipes
mpop_read_file Read file
mpop_write_file Write file
mpop_scp Transfer file
AI & Diagnostics
Tool Description
mpop_heal Auto-detect and fix issues
mpop_predict Predict future problems
mpop_advise Optimization recommendations
mpop_logai AI log analysis
mpop_ask Natural language → commands
mpop_ai Trend analysis
Security
Tool Description
mpop_security Security overview
mpop_audit Detailed audit
mpop_ssh_attacks SSH attack analysis

MeshPOP Stack

mpop     Fleet orchestration — monitor, manage, automate  ← this
vssh     Authenticated transport — remote exec, file transfer
wire     Encrypted mesh VPN — connects all nodes
Package Role Install
wire Mesh VPN pip install meshpop-wire
vssh Transport pip install vssh
mpop Orchestration pip install meshpop
meshclaw Agent workflows pip install meshclaw
meshdb Distributed search pip install meshpop-db

License

MIT — MeshPOP

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meshpop-5.0.0.tar.gz (294.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meshpop-5.0.0-py3-none-any.whl (296.6 kB view details)

Uploaded Python 3

File details

Details for the file meshpop-5.0.0.tar.gz.

File metadata

  • Download URL: meshpop-5.0.0.tar.gz
  • Upload date:
  • Size: 294.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for meshpop-5.0.0.tar.gz
Algorithm Hash digest
SHA256 ed12a8ac776ed9f2193aa9656d67a259b7a18fe56a1d77d96b4a67907aed1954
MD5 b79994200633afc3b0509e61afc83cee
BLAKE2b-256 5f11be82096c2d53cf918e79c188da2b5cea61dd271182160109a1e59ac5f2e0

See more details on using hashes here.

File details

Details for the file meshpop-5.0.0-py3-none-any.whl.

File metadata

  • Download URL: meshpop-5.0.0-py3-none-any.whl
  • Upload date:
  • Size: 296.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for meshpop-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64d107a19d4338dfff5fd4a11f61ad5609fbb9d1e3112fdacf3e55c54b142516
MD5 050b14761d59e24a0380baf5ac7cc17a
BLAKE2b-256 9b03788220aa548be80fcd29b670e6f5461107773530391c2a1aab467c43fb99

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page