iflow-mcp_proxmox-mcp


Nameiflow-mcp_proxmox-mcp JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA Model Context Protocol server for interacting with Proxmox hypervisors
upload_time2025-08-18 07:50:38
maintainerNone
docs_urlNone
authorKevin
requires_python>=3.9
licenseMIT
keywords proxmox mcp virtualization cline qemu lxc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 🚀 Proxmox Manager - Proxmox MCP Server

![ProxmoxMCP](https://github.com/user-attachments/assets/e32ab79f-be8a-420c-ab2d-475612150534)

A Python-based Model Context Protocol (MCP) server for interacting with Proxmox hypervisors, providing a clean interface for managing nodes, VMs, and containers.

## 🏗️ Built With

- [Cline](https://github.com/cline/cline) - Autonomous coding agent - Go faster with Cline.
- [Proxmoxer](https://github.com/proxmoxer/proxmoxer) - Python wrapper for Proxmox API
- [MCP SDK](https://github.com/modelcontextprotocol/sdk) - Model Context Protocol SDK
- [Pydantic](https://docs.pydantic.dev/) - Data validation using Python type annotations

## ✨ Features

- 🤖 Full integration with Cline
- 🛠️ Built with the official MCP SDK
- 🔒 Secure token-based authentication with Proxmox
- 🖥️ Tools for managing nodes and VMs
- 💻 VM console command execution
- 📝 Configurable logging system
- ✅ Type-safe implementation with Pydantic
- 🎨 Rich output formatting with customizable themes



https://github.com/user-attachments/assets/1b5f42f7-85d5-4918-aca4-d38413b0e82b



## 📦 Installation

### Prerequisites
- UV package manager (recommended)
- Python 3.10 or higher
- Git
- Access to a Proxmox server with API token credentials

Before starting, ensure you have:
- [ ] Proxmox server hostname or IP
- [ ] Proxmox API token (see [API Token Setup](#proxmox-api-token-setup))
- [ ] UV installed (`pip install uv`)

### Option 1: Quick Install (Recommended)

1. Clone and set up environment:
   ```bash
   # Clone repository
   cd ~/Documents/Cline/MCP  # For Cline users
   # OR
   cd your/preferred/directory  # For manual installation
   
   git clone https://github.com/canvrno/ProxmoxMCP.git
   cd ProxmoxMCP

   # Create and activate virtual environment
   uv venv
   source .venv/bin/activate  # Linux/macOS
   # OR
   .\.venv\Scripts\Activate.ps1  # Windows
   ```

2. Install dependencies:
   ```bash
   # Install with development dependencies
   uv pip install -e ".[dev]"
   ```

3. Create configuration:
   ```bash
   # Create config directory and copy template
   mkdir -p proxmox-config
   cp config/config.example.json proxmox-config/config.json
   ```

4. Edit `proxmox-config/config.json`:
   ```json
   {
       "proxmox": {
           "host": "PROXMOX_HOST",        # Required: Your Proxmox server address
           "port": 8006,                  # Optional: Default is 8006
           "verify_ssl": false,           # Optional: Set false for self-signed certs
           "service": "PVE"               # Optional: Default is PVE
       },
       "auth": {
           "user": "USER@pve",            # Required: Your Proxmox username
           "token_name": "TOKEN_NAME",    # Required: API token ID
           "token_value": "TOKEN_VALUE"   # Required: API token value
       },
       "logging": {
           "level": "INFO",               # Optional: DEBUG for more detail
           "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
           "file": "proxmox_mcp.log"      # Optional: Log to file
       }
   }
   ```

### Verifying Installation

1. Check Python environment:
   ```bash
   python -c "import proxmox_mcp; print('Installation OK')"
   ```

2. Run the tests:
   ```bash
   pytest
   ```

3. Verify configuration:
   ```bash
   # Linux/macOS
   PROXMOX_MCP_CONFIG="proxmox-config/config.json" python -m proxmox_mcp.server

   # Windows (PowerShell)
   $env:PROXMOX_MCP_CONFIG="proxmox-config\config.json"; python -m proxmox_mcp.server
   ```

   You should see either:
   - A successful connection to your Proxmox server
   - Or a connection error (if Proxmox details are incorrect)

## ⚙️ Configuration

### Proxmox API Token Setup
1. Log into your Proxmox web interface
2. Navigate to Datacenter -> Permissions -> API Tokens
3. Create a new API token:
   - Select a user (e.g., root@pam)
   - Enter a token ID (e.g., "mcp-token")
   - Uncheck "Privilege Separation" if you want full access
   - Save and copy both the token ID and secret


## 🚀 Running the Server

### Development Mode
For testing and development:
```bash
# Activate virtual environment first
source .venv/bin/activate  # Linux/macOS
# OR
.\.venv\Scripts\Activate.ps1  # Windows

# Run the server
python -m proxmox_mcp.server
```

### Cline Desktop Integration

For Cline users, add this configuration to your MCP settings file (typically at `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`):

```json
{
    "mcpServers": {
        "github.com/canvrno/ProxmoxMCP": {
            "command": "/absolute/path/to/ProxmoxMCP/.venv/bin/python",
            "args": ["-m", "proxmox_mcp.server"],
            "cwd": "/absolute/path/to/ProxmoxMCP",
            "env": {
                "PYTHONPATH": "/absolute/path/to/ProxmoxMCP/src",
                "PROXMOX_MCP_CONFIG": "/absolute/path/to/ProxmoxMCP/proxmox-config/config.json",
                "PROXMOX_HOST": "your-proxmox-host",
                "PROXMOX_USER": "username@pve",
                "PROXMOX_TOKEN_NAME": "token-name",
                "PROXMOX_TOKEN_VALUE": "token-value",
                "PROXMOX_PORT": "8006",
                "PROXMOX_VERIFY_SSL": "false",
                "PROXMOX_SERVICE": "PVE",
                "LOG_LEVEL": "DEBUG"
            },
            "disabled": false,
            "autoApprove": []
        }
    }
}
```

To help generate the correct paths, you can use this command:
```bash
# This will print the MCP settings with your absolute paths filled in
python -c "import os; print(f'''{{
    \"mcpServers\": {{
        \"github.com/canvrno/ProxmoxMCP\": {{
            \"command\": \"{os.path.abspath('.venv/bin/python')}\",
            \"args\": [\"-m\", \"proxmox_mcp.server\"],
            \"cwd\": \"{os.getcwd()}\",
            \"env\": {{
                \"PYTHONPATH\": \"{os.path.abspath('src')}\",
                \"PROXMOX_MCP_CONFIG\": \"{os.path.abspath('proxmox-config/config.json')}\",
                ...
            }}
        }}
    }}
}}''')"
```

Important:
- All paths must be absolute
- The Python interpreter must be from your virtual environment
- The PYTHONPATH must point to the src directory
- Restart VSCode after updating MCP settings

# 🔧 Available Tools

The server provides the following MCP tools for interacting with Proxmox:

### get_nodes
Lists all nodes in the Proxmox cluster.

- Parameters: None
- Example Response:
  ```
  🖥️ Proxmox Nodes

  🖥️ pve-compute-01
    • Status: ONLINE
    • Uptime: ⏳ 156d 12h
    • CPU Cores: 64
    • Memory: 186.5 GB / 512.0 GB (36.4%)

  🖥️ pve-compute-02
    • Status: ONLINE
    • Uptime: ⏳ 156d 11h
    • CPU Cores: 64
    • Memory: 201.3 GB / 512.0 GB (39.3%)
  ```

### get_node_status
Get detailed status of a specific node.

- Parameters:
  - `node` (string, required): Name of the node
- Example Response:
  ```
  🖥️ Node: pve-compute-01
    • Status: ONLINE
    • Uptime: ⏳ 156d 12h
    • CPU Usage: 42.3%
    • CPU Cores: 64 (AMD EPYC 7763)
    • Memory: 186.5 GB / 512.0 GB (36.4%)
    • Network: ⬆️ 12.8 GB/s ⬇️ 9.2 GB/s
    • Temperature: 38°C
  ```

### get_vms
List all VMs across the cluster.

- Parameters: None
- Example Response:
  ```
  🗃️ Virtual Machines

  🗃️ prod-db-master (ID: 100)
    • Status: RUNNING
    • Node: pve-compute-01
    • CPU Cores: 16
    • Memory: 92.3 GB / 128.0 GB (72.1%)

  🗃️ prod-web-01 (ID: 102)
    • Status: RUNNING
    • Node: pve-compute-01
    • CPU Cores: 8
    • Memory: 12.8 GB / 32.0 GB (40.0%)
  ```

### get_storage
List available storage.

- Parameters: None
- Example Response:
  ```
  💾 Storage Pools

  💾 ceph-prod
    • Status: ONLINE
    • Type: rbd
    • Usage: 12.8 TB / 20.0 TB (64.0%)
    • IOPS: ⬆️ 15.2k ⬇️ 12.8k

  💾 local-zfs
    • Status: ONLINE
    • Type: zfspool
    • Usage: 3.2 TB / 8.0 TB (40.0%)
    • IOPS: ⬆️ 42.8k ⬇️ 35.6k
  ```

### get_cluster_status
Get overall cluster status.

- Parameters: None
- Example Response:
  ```
  ⚙️ Proxmox Cluster

    • Name: enterprise-cloud
    • Status: HEALTHY
    • Quorum: OK
    • Nodes: 4 ONLINE
    • Version: 8.1.3
    • HA Status: ACTIVE
    • Resources:
      - Total CPU Cores: 192
      - Total Memory: 1536 GB
      - Total Storage: 70 TB
    • Workload:
      - Running VMs: 7
      - Total VMs: 8
      - Average CPU Usage: 38.6%
      - Average Memory Usage: 42.8%
  ```

### execute_vm_command
Execute a command in a VM's console using QEMU Guest Agent.

- Parameters:
  - `node` (string, required): Name of the node where VM is running
  - `vmid` (string, required): ID of the VM
  - `command` (string, required): Command to execute
- Example Response:
  ```
  🔧 Console Command Result
    • Status: SUCCESS
    • Command: systemctl status nginx
    • Node: pve-compute-01
    • VM: prod-web-01 (ID: 102)

  Output:
  ● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2025-02-18 15:23:45 UTC; 2 months 3 days ago
  ```
- Requirements:
  - VM must be running
  - QEMU Guest Agent must be installed and running in the VM
  - Command execution permissions must be enabled in the Guest Agent
- Error Handling:
  - Returns error if VM is not running
  - Returns error if VM is not found
  - Returns error if command execution fails
  - Includes command output even if command returns non-zero exit code

## 👨‍💻 Development

After activating your virtual environment:

- Run tests: `pytest`
- Format code: `black .`
- Type checking: `mypy .`
- Lint: `ruff .`

## 📁 Project Structure

```
proxmox-mcp/
├── src/
│   └── proxmox_mcp/
│       ├── server.py          # Main MCP server implementation
│       ├── config/            # Configuration handling
│       ├── core/              # Core functionality
│       ├── formatting/        # Output formatting and themes
│       ├── tools/             # Tool implementations
│       │   └── console/       # VM console operations
│       └── utils/             # Utilities (auth, logging)
├── tests/                     # Test suite
├── proxmox-config/
│   └── config.example.json    # Configuration template
├── pyproject.toml            # Project metadata and dependencies
└── LICENSE                   # MIT License
```

## 📄 License

MIT License

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "iflow-mcp_proxmox-mcp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "proxmox, mcp, virtualization, cline, qemu, lxc",
    "author": "Kevin",
    "author_email": "Kevin <kevin@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/8d/e0/90d3c00cbab29f90bbc90ef8d3f9392ae53347196c08b3953d7327a9d151/iflow_mcp_proxmox_mcp-0.1.0.tar.gz",
    "platform": null,
    "description": "# \ud83d\ude80 Proxmox Manager - Proxmox MCP Server\n\n![ProxmoxMCP](https://github.com/user-attachments/assets/e32ab79f-be8a-420c-ab2d-475612150534)\n\nA Python-based Model Context Protocol (MCP) server for interacting with Proxmox hypervisors, providing a clean interface for managing nodes, VMs, and containers.\n\n## \ud83c\udfd7\ufe0f Built With\n\n- [Cline](https://github.com/cline/cline) - Autonomous coding agent - Go faster with Cline.\n- [Proxmoxer](https://github.com/proxmoxer/proxmoxer) - Python wrapper for Proxmox API\n- [MCP SDK](https://github.com/modelcontextprotocol/sdk) - Model Context Protocol SDK\n- [Pydantic](https://docs.pydantic.dev/) - Data validation using Python type annotations\n\n## \u2728 Features\n\n- \ud83e\udd16 Full integration with Cline\n- \ud83d\udee0\ufe0f Built with the official MCP SDK\n- \ud83d\udd12 Secure token-based authentication with Proxmox\n- \ud83d\udda5\ufe0f Tools for managing nodes and VMs\n- \ud83d\udcbb VM console command execution\n- \ud83d\udcdd Configurable logging system\n- \u2705 Type-safe implementation with Pydantic\n- \ud83c\udfa8 Rich output formatting with customizable themes\n\n\n\nhttps://github.com/user-attachments/assets/1b5f42f7-85d5-4918-aca4-d38413b0e82b\n\n\n\n## \ud83d\udce6 Installation\n\n### Prerequisites\n- UV package manager (recommended)\n- Python 3.10 or higher\n- Git\n- Access to a Proxmox server with API token credentials\n\nBefore starting, ensure you have:\n- [ ] Proxmox server hostname or IP\n- [ ] Proxmox API token (see [API Token Setup](#proxmox-api-token-setup))\n- [ ] UV installed (`pip install uv`)\n\n### Option 1: Quick Install (Recommended)\n\n1. Clone and set up environment:\n   ```bash\n   # Clone repository\n   cd ~/Documents/Cline/MCP  # For Cline users\n   # OR\n   cd your/preferred/directory  # For manual installation\n   \n   git clone https://github.com/canvrno/ProxmoxMCP.git\n   cd ProxmoxMCP\n\n   # Create and activate virtual environment\n   uv venv\n   source .venv/bin/activate  # Linux/macOS\n   # OR\n   .\\.venv\\Scripts\\Activate.ps1  # Windows\n   ```\n\n2. Install dependencies:\n   ```bash\n   # Install with development dependencies\n   uv pip install -e \".[dev]\"\n   ```\n\n3. Create configuration:\n   ```bash\n   # Create config directory and copy template\n   mkdir -p proxmox-config\n   cp config/config.example.json proxmox-config/config.json\n   ```\n\n4. Edit `proxmox-config/config.json`:\n   ```json\n   {\n       \"proxmox\": {\n           \"host\": \"PROXMOX_HOST\",        # Required: Your Proxmox server address\n           \"port\": 8006,                  # Optional: Default is 8006\n           \"verify_ssl\": false,           # Optional: Set false for self-signed certs\n           \"service\": \"PVE\"               # Optional: Default is PVE\n       },\n       \"auth\": {\n           \"user\": \"USER@pve\",            # Required: Your Proxmox username\n           \"token_name\": \"TOKEN_NAME\",    # Required: API token ID\n           \"token_value\": \"TOKEN_VALUE\"   # Required: API token value\n       },\n       \"logging\": {\n           \"level\": \"INFO\",               # Optional: DEBUG for more detail\n           \"format\": \"%(asctime)s - %(name)s - %(levelname)s - %(message)s\",\n           \"file\": \"proxmox_mcp.log\"      # Optional: Log to file\n       }\n   }\n   ```\n\n### Verifying Installation\n\n1. Check Python environment:\n   ```bash\n   python -c \"import proxmox_mcp; print('Installation OK')\"\n   ```\n\n2. Run the tests:\n   ```bash\n   pytest\n   ```\n\n3. Verify configuration:\n   ```bash\n   # Linux/macOS\n   PROXMOX_MCP_CONFIG=\"proxmox-config/config.json\" python -m proxmox_mcp.server\n\n   # Windows (PowerShell)\n   $env:PROXMOX_MCP_CONFIG=\"proxmox-config\\config.json\"; python -m proxmox_mcp.server\n   ```\n\n   You should see either:\n   - A successful connection to your Proxmox server\n   - Or a connection error (if Proxmox details are incorrect)\n\n## \u2699\ufe0f Configuration\n\n### Proxmox API Token Setup\n1. Log into your Proxmox web interface\n2. Navigate to Datacenter -> Permissions -> API Tokens\n3. Create a new API token:\n   - Select a user (e.g., root@pam)\n   - Enter a token ID (e.g., \"mcp-token\")\n   - Uncheck \"Privilege Separation\" if you want full access\n   - Save and copy both the token ID and secret\n\n\n## \ud83d\ude80 Running the Server\n\n### Development Mode\nFor testing and development:\n```bash\n# Activate virtual environment first\nsource .venv/bin/activate  # Linux/macOS\n# OR\n.\\.venv\\Scripts\\Activate.ps1  # Windows\n\n# Run the server\npython -m proxmox_mcp.server\n```\n\n### Cline Desktop Integration\n\nFor Cline users, add this configuration to your MCP settings file (typically at `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`):\n\n```json\n{\n    \"mcpServers\": {\n        \"github.com/canvrno/ProxmoxMCP\": {\n            \"command\": \"/absolute/path/to/ProxmoxMCP/.venv/bin/python\",\n            \"args\": [\"-m\", \"proxmox_mcp.server\"],\n            \"cwd\": \"/absolute/path/to/ProxmoxMCP\",\n            \"env\": {\n                \"PYTHONPATH\": \"/absolute/path/to/ProxmoxMCP/src\",\n                \"PROXMOX_MCP_CONFIG\": \"/absolute/path/to/ProxmoxMCP/proxmox-config/config.json\",\n                \"PROXMOX_HOST\": \"your-proxmox-host\",\n                \"PROXMOX_USER\": \"username@pve\",\n                \"PROXMOX_TOKEN_NAME\": \"token-name\",\n                \"PROXMOX_TOKEN_VALUE\": \"token-value\",\n                \"PROXMOX_PORT\": \"8006\",\n                \"PROXMOX_VERIFY_SSL\": \"false\",\n                \"PROXMOX_SERVICE\": \"PVE\",\n                \"LOG_LEVEL\": \"DEBUG\"\n            },\n            \"disabled\": false,\n            \"autoApprove\": []\n        }\n    }\n}\n```\n\nTo help generate the correct paths, you can use this command:\n```bash\n# This will print the MCP settings with your absolute paths filled in\npython -c \"import os; print(f'''{{\n    \\\"mcpServers\\\": {{\n        \\\"github.com/canvrno/ProxmoxMCP\\\": {{\n            \\\"command\\\": \\\"{os.path.abspath('.venv/bin/python')}\\\",\n            \\\"args\\\": [\\\"-m\\\", \\\"proxmox_mcp.server\\\"],\n            \\\"cwd\\\": \\\"{os.getcwd()}\\\",\n            \\\"env\\\": {{\n                \\\"PYTHONPATH\\\": \\\"{os.path.abspath('src')}\\\",\n                \\\"PROXMOX_MCP_CONFIG\\\": \\\"{os.path.abspath('proxmox-config/config.json')}\\\",\n                ...\n            }}\n        }}\n    }}\n}}''')\"\n```\n\nImportant:\n- All paths must be absolute\n- The Python interpreter must be from your virtual environment\n- The PYTHONPATH must point to the src directory\n- Restart VSCode after updating MCP settings\n\n# \ud83d\udd27 Available Tools\n\nThe server provides the following MCP tools for interacting with Proxmox:\n\n### get_nodes\nLists all nodes in the Proxmox cluster.\n\n- Parameters: None\n- Example Response:\n  ```\n  \ud83d\udda5\ufe0f Proxmox Nodes\n\n  \ud83d\udda5\ufe0f pve-compute-01\n    \u2022 Status: ONLINE\n    \u2022 Uptime: \u23f3 156d 12h\n    \u2022 CPU Cores: 64\n    \u2022 Memory: 186.5 GB / 512.0 GB (36.4%)\n\n  \ud83d\udda5\ufe0f pve-compute-02\n    \u2022 Status: ONLINE\n    \u2022 Uptime: \u23f3 156d 11h\n    \u2022 CPU Cores: 64\n    \u2022 Memory: 201.3 GB / 512.0 GB (39.3%)\n  ```\n\n### get_node_status\nGet detailed status of a specific node.\n\n- Parameters:\n  - `node` (string, required): Name of the node\n- Example Response:\n  ```\n  \ud83d\udda5\ufe0f Node: pve-compute-01\n    \u2022 Status: ONLINE\n    \u2022 Uptime: \u23f3 156d 12h\n    \u2022 CPU Usage: 42.3%\n    \u2022 CPU Cores: 64 (AMD EPYC 7763)\n    \u2022 Memory: 186.5 GB / 512.0 GB (36.4%)\n    \u2022 Network: \u2b06\ufe0f 12.8 GB/s \u2b07\ufe0f 9.2 GB/s\n    \u2022 Temperature: 38\u00b0C\n  ```\n\n### get_vms\nList all VMs across the cluster.\n\n- Parameters: None\n- Example Response:\n  ```\n  \ud83d\uddc3\ufe0f Virtual Machines\n\n  \ud83d\uddc3\ufe0f prod-db-master (ID: 100)\n    \u2022 Status: RUNNING\n    \u2022 Node: pve-compute-01\n    \u2022 CPU Cores: 16\n    \u2022 Memory: 92.3 GB / 128.0 GB (72.1%)\n\n  \ud83d\uddc3\ufe0f prod-web-01 (ID: 102)\n    \u2022 Status: RUNNING\n    \u2022 Node: pve-compute-01\n    \u2022 CPU Cores: 8\n    \u2022 Memory: 12.8 GB / 32.0 GB (40.0%)\n  ```\n\n### get_storage\nList available storage.\n\n- Parameters: None\n- Example Response:\n  ```\n  \ud83d\udcbe Storage Pools\n\n  \ud83d\udcbe ceph-prod\n    \u2022 Status: ONLINE\n    \u2022 Type: rbd\n    \u2022 Usage: 12.8 TB / 20.0 TB (64.0%)\n    \u2022 IOPS: \u2b06\ufe0f 15.2k \u2b07\ufe0f 12.8k\n\n  \ud83d\udcbe local-zfs\n    \u2022 Status: ONLINE\n    \u2022 Type: zfspool\n    \u2022 Usage: 3.2 TB / 8.0 TB (40.0%)\n    \u2022 IOPS: \u2b06\ufe0f 42.8k \u2b07\ufe0f 35.6k\n  ```\n\n### get_cluster_status\nGet overall cluster status.\n\n- Parameters: None\n- Example Response:\n  ```\n  \u2699\ufe0f Proxmox Cluster\n\n    \u2022 Name: enterprise-cloud\n    \u2022 Status: HEALTHY\n    \u2022 Quorum: OK\n    \u2022 Nodes: 4 ONLINE\n    \u2022 Version: 8.1.3\n    \u2022 HA Status: ACTIVE\n    \u2022 Resources:\n      - Total CPU Cores: 192\n      - Total Memory: 1536 GB\n      - Total Storage: 70 TB\n    \u2022 Workload:\n      - Running VMs: 7\n      - Total VMs: 8\n      - Average CPU Usage: 38.6%\n      - Average Memory Usage: 42.8%\n  ```\n\n### execute_vm_command\nExecute a command in a VM's console using QEMU Guest Agent.\n\n- Parameters:\n  - `node` (string, required): Name of the node where VM is running\n  - `vmid` (string, required): ID of the VM\n  - `command` (string, required): Command to execute\n- Example Response:\n  ```\n  \ud83d\udd27 Console Command Result\n    \u2022 Status: SUCCESS\n    \u2022 Command: systemctl status nginx\n    \u2022 Node: pve-compute-01\n    \u2022 VM: prod-web-01 (ID: 102)\n\n  Output:\n  \u25cf nginx.service - A high performance web server and a reverse proxy server\n     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)\n     Active: active (running) since Tue 2025-02-18 15:23:45 UTC; 2 months 3 days ago\n  ```\n- Requirements:\n  - VM must be running\n  - QEMU Guest Agent must be installed and running in the VM\n  - Command execution permissions must be enabled in the Guest Agent\n- Error Handling:\n  - Returns error if VM is not running\n  - Returns error if VM is not found\n  - Returns error if command execution fails\n  - Includes command output even if command returns non-zero exit code\n\n## \ud83d\udc68\u200d\ud83d\udcbb Development\n\nAfter activating your virtual environment:\n\n- Run tests: `pytest`\n- Format code: `black .`\n- Type checking: `mypy .`\n- Lint: `ruff .`\n\n## \ud83d\udcc1 Project Structure\n\n```\nproxmox-mcp/\n\u251c\u2500\u2500 src/\n\u2502   \u2514\u2500\u2500 proxmox_mcp/\n\u2502       \u251c\u2500\u2500 server.py          # Main MCP server implementation\n\u2502       \u251c\u2500\u2500 config/            # Configuration handling\n\u2502       \u251c\u2500\u2500 core/              # Core functionality\n\u2502       \u251c\u2500\u2500 formatting/        # Output formatting and themes\n\u2502       \u251c\u2500\u2500 tools/             # Tool implementations\n\u2502       \u2502   \u2514\u2500\u2500 console/       # VM console operations\n\u2502       \u2514\u2500\u2500 utils/             # Utilities (auth, logging)\n\u251c\u2500\u2500 tests/                     # Test suite\n\u251c\u2500\u2500 proxmox-config/\n\u2502   \u2514\u2500\u2500 config.example.json    # Configuration template\n\u251c\u2500\u2500 pyproject.toml            # Project metadata and dependencies\n\u2514\u2500\u2500 LICENSE                   # MIT License\n```\n\n## \ud83d\udcc4 License\n\nMIT License\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A Model Context Protocol server for interacting with Proxmox hypervisors",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/yourusername/proxmox-mcp#readme",
        "Homepage": "https://github.com/yourusername/proxmox-mcp",
        "Issues": "https://github.com/yourusername/proxmox-mcp/issues",
        "Repository": "https://github.com/yourusername/proxmox-mcp.git"
    },
    "split_keywords": [
        "proxmox",
        " mcp",
        " virtualization",
        " cline",
        " qemu",
        " lxc"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "692a64e09b2ab38d51574356279603a06e5a24fb595771b09d9aacfb7e284ac9",
                "md5": "b3cc9d45e961ad106c74d619943e31c5",
                "sha256": "5d78ee5a2dfd30077ffd52e2f94952006919b65221e8ac882dc149a1fc100d77"
            },
            "downloads": -1,
            "filename": "iflow_mcp_proxmox_mcp-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b3cc9d45e961ad106c74d619943e31c5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 35086,
            "upload_time": "2025-08-18T07:50:36",
            "upload_time_iso_8601": "2025-08-18T07:50:36.614756Z",
            "url": "https://files.pythonhosted.org/packages/69/2a/64e09b2ab38d51574356279603a06e5a24fb595771b09d9aacfb7e284ac9/iflow_mcp_proxmox_mcp-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8de090d3c00cbab29f90bbc90ef8d3f9392ae53347196c08b3953d7327a9d151",
                "md5": "fea6562d95bb9245d1e926ca1834c39d",
                "sha256": "b9b9d0a8a9d745db04eba42bd7c1a12b20316dcb53a64b7c630e717f6819b081"
            },
            "downloads": -1,
            "filename": "iflow_mcp_proxmox_mcp-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "fea6562d95bb9245d1e926ca1834c39d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 28937,
            "upload_time": "2025-08-18T07:50:38",
            "upload_time_iso_8601": "2025-08-18T07:50:38.151051Z",
            "url": "https://files.pythonhosted.org/packages/8d/e0/90d3c00cbab29f90bbc90ef8d3f9392ae53347196c08b3953d7327a9d151/iflow_mcp_proxmox_mcp-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-18 07:50:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "proxmox-mcp#readme",
    "github_not_found": true,
    "lcname": "iflow-mcp_proxmox-mcp"
}
        
Elapsed time: 1.18075s