{"id":43455340,"url":"https://github.com/ry-ops/proxmox-mcp-server","last_synced_at":"2026-02-03T03:11:18.243Z","repository":{"id":317865722,"uuid":"1068588675","full_name":"ry-ops/proxmox-mcp-server","owner":"ry-ops","description":"MCP server for managing Proxmox Virtual Environment VMs, containers, storage, and cluster resources","archived":false,"fork":false,"pushed_at":"2025-12-17T18:48:28.000Z","size":3080,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-21T07:06:52.175Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ry-ops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-02T15:56:10.000Z","updated_at":"2025-12-17T18:48:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"add48fc6-9a41-4aae-88f4-b80d7811271f","html_url":"https://github.com/ry-ops/proxmox-mcp-server","commit_stats":null,"previous_names":["ry-ops/proxmox-mcp-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ry-ops/proxmox-mcp-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Fproxmox-mcp-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Fproxmox-mcp-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Fproxmox-mcp-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Fproxmox-mcp-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ry-ops","download_url":"https://codeload.github.com/ry-ops/proxmox-mcp-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ry-ops%2Fproxmox-mcp-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29029889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T02:28:16.591Z","status":"ssl_error","status_checked_at":"2026-02-03T02:27:48.904Z","response_time":96,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-03T03:11:16.564Z","updated_at":"2026-02-03T03:11:18.235Z","avatar_url":"https://github.com/ry-ops.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/ry-ops/proxmox-mcp-server/blob/main/proxmox-mcp-server.png\" width=\"100%\"\u003e\n\n# Proxmox MCP Server\n\n[![Python](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)\n[![uv](https://img.shields.io/badge/uv-latest-green.svg)](https://github.com/astral-sh/uv)\n[![MCP](https://img.shields.io/badge/MCP-1.0-purple.svg)](https://modelcontextprotocol.io/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\nA Model Context Protocol (MCP) server for interacting with Proxmox Virtual Environment API. This server provides comprehensive tools for managing VMs, containers, storage, and cluster resources through the MCP interface.\n\n**Built with Python and `uv` for fast, reliable dependency management.**\n\n## Features\n\n### Agent-to-Agent (A2A) Protocol Support\n\nThis server implements the **A2A protocol** for seamless agent-to-agent communication. The included `agent-card.json` file provides:\n\n- **Structured agent capabilities** - Detailed skill definitions for AI-to-AI discovery\n- **Authentication specifications** - Clear auth requirements for automated integration\n- **Tool catalog** - Complete inventory of available operations organized by category\n- **MCP protocol support** - Native Model Context Protocol implementation\n\n**Use Cases:**\n- Multi-agent orchestration systems\n- Automated infrastructure workflows\n- Agent discovery and composition\n- Cross-system AI collaboration\n\nSee the [A2A Protocol Documentation](#a2a-protocol) section below for integration details.\n\n### Virtual Machine Management\n- List all VMs (node-specific or cluster-wide)\n- Get VM configuration and status\n- Start, stop, shutdown, and reboot VMs\n- Create, list, and delete VM snapshots\n\n### Container Management\n- List LXC containers\n- Get container status\n- Start and stop containers\n\n### Node \u0026 Cluster Management\n- List all cluster nodes\n- Get node status and resource usage\n- Get overall cluster status\n\n### Storage Management\n- List storage devices\n- Get storage status and usage\n\n### Task Management\n- List running and recent tasks\n- Get task status and progress\n\n## Quick Start\n\n```bash\n# 1. Install uv (if not already installed)\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# 2. Run setup script\nchmod +x setup.sh\n./setup.sh\n\n# 3. Set environment variables\nexport PROXMOX_HOST=\"192.168.1.100\"\nexport PROXMOX_USER=\"root@pam\"\nexport PROXMOX_TOKEN_NAME=\"automation\"\nexport PROXMOX_TOKEN_VALUE=\"your-token-here\"\n\n# 4. Test connection\n./test-connection.sh\n\n# 5. Configure Claude Desktop and restart\n```\n\nSee [QUICKSTART.md](QUICKSTART.md) for detailed instructions.\n\n## Installation\n\n### Prerequisites\n\n- Python 3.10 or higher\n- `uv` package manager\n- Proxmox VE 6.0 or later\n\n### Setup\n\n```bash\n# Install uv\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Clone or download this repository\ncd proxmox-mcp-server\n\n# Run setup script (creates structure and installs dependencies)\n./setup.sh\n\n# Or manually:\nmkdir -p src/proxmox_mcp_server\n# Place server.py and __init__.py in src/proxmox_mcp_server/\nuv sync\n```\n\n## Configuration\n\nThe server is configured via environment variables:\n\n### Required Variables\n\n- `PROXMOX_HOST`: Proxmox server hostname or IP address\n- `PROXMOX_USER`: Username (e.g., `root@pam`, `admin@pve`)\n\n### Authentication (choose one method)\n\n**Option 1: API Token (Recommended)**\n- `PROXMOX_TOKEN_NAME`: API token name\n- `PROXMOX_TOKEN_VALUE`: API token value\n\n**Option 2: Password**\n- `PROXMOX_PASSWORD`: User password\n\n### Optional Variables\n\n- `PROXMOX_PORT`: API port (default: `8006`)\n- `PROXMOX_VERIFY_SSL`: Verify SSL certificates (default: `false`)\n\n## Setting Up Proxmox Authentication\n\n### Creating an API Token (Recommended)\n\n1. Log into your Proxmox web interface\n2. Navigate to **Datacenter** → **Permissions** → **API Tokens**\n3. Click **Add** and create a token for your user\n4. Uncheck \"Privilege Separation\" to inherit user permissions\n5. Copy the Token ID and Secret (you won't see it again!)\n\nExample token format:\n```bash\nPROXMOX_TOKEN_NAME=automation\nPROXMOX_TOKEN_VALUE=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\nThe full token identifier will be: `root@pam!automation`\n\n### Using Password Authentication\n\nSimply set your user password:\n```bash\nexport PROXMOX_PASSWORD=yourpassword\n```\n\n## MCP Configuration\n\nAdd to your Claude Desktop configuration file:\n\n**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`  \n**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`\n\n### With API Token (Recommended)\n\n```json\n{\n  \"mcpServers\": {\n    \"proxmox\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"/absolute/path/to/proxmox-mcp-server\",\n        \"run\",\n        \"proxmox-mcp-server\"\n      ],\n      \"env\": {\n        \"PROXMOX_HOST\": \"192.168.1.100\",\n        \"PROXMOX_USER\": \"root@pam\",\n        \"PROXMOX_TOKEN_NAME\": \"automation\",\n        \"PROXMOX_TOKEN_VALUE\": \"your-token-value-here\"\n      }\n    }\n  }\n}\n```\n\n### With Password\n\n```json\n{\n  \"mcpServers\": {\n    \"proxmox\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"/absolute/path/to/proxmox-mcp-server\",\n        \"run\",\n        \"proxmox-mcp-server\"\n      ],\n      \"env\": {\n        \"PROXMOX_HOST\": \"192.168.1.100\",\n        \"PROXMOX_USER\": \"root@pam\",\n        \"PROXMOX_PASSWORD\": \"your-password-here\"\n      }\n    }\n  }\n}\n```\n\n**Important**: Use the absolute path to your project directory!\n\n## Available Tools\n\n### Node Management\n\n- **list_nodes**: List all nodes in the cluster\n- **get_node_status**: Get status and resource usage for a specific node\n\n### Virtual Machine Tools\n\n- **list_vms**: List all VMs (optionally filtered by node)\n- **get_vm_config**: Get VM configuration\n- **get_vm_status**: Get current VM status\n- **start_vm**: Start a VM\n- **stop_vm**: Force stop a VM\n- **shutdown_vm**: Gracefully shutdown a VM\n- **reboot_vm**: Reboot a VM\n- **create_vm_snapshot**: Create a VM snapshot\n- **list_vm_snapshots**: List all VM snapshots\n- **delete_vm_snapshot**: Delete a VM snapshot\n\n### Container Tools\n\n- **list_containers**: List all LXC containers on a node\n- **get_container_status**: Get container status\n- **start_container**: Start a container\n- **stop_container**: Stop a container\n\n### Storage Tools\n\n- **list_storage**: List all storage devices\n- **get_storage_status**: Get storage status and usage\n\n### Task Tools\n\n- **list_tasks**: List running and recent tasks\n- **get_task_status**: Get status of a specific task\n\n### Cluster Tools\n\n- **get_cluster_status**: Get overall cluster status and resources\n\n## Example Usage\n\nOnce configured, you can ask Claude to interact with your Proxmox environment:\n\n\u003e \"Can you list all VMs in my Proxmox cluster?\"\n\n\u003e \"What's the status of VM 100 on node pve1?\"\n\n\u003e \"Start VM 105 on node pve1\"\n\n\u003e \"Create a snapshot called 'backup-2025' for VM 100 on pve1\"\n\n\u003e \"Show me the storage usage on all nodes\"\n\n\u003e \"List all running tasks in the cluster\"\n\n## Development\n\n```bash\n# Install dependencies\nuv sync\n\n# Run the server directly\nuv run proxmox-mcp-server\n\n# Run with custom environment\nPROXMOX_HOST=192.168.1.100 \\\nPROXMOX_USER=root@pam \\\nPROXMOX_TOKEN_NAME=automation \\\nPROXMOX_TOKEN_VALUE=your-token \\\nuv run proxmox-mcp-server\n\n# Install development dependencies\nuv sync --all-extras\n\n# Run tests (if implemented)\nuv run pytest\n```\n\n## Project Structure\n\n```\nproxmox-mcp-server/\n├── src/\n│   └── proxmox_mcp_server/\n│       ├── __init__.py       # Package initialization\n│       └── server.py         # Main server implementation\n├── pyproject.toml            # Project configuration\n├── uv.lock                   # Locked dependencies (generated)\n├── .env.example              # Environment variable template\n├── .gitignore                # Git ignore patterns\n├── setup.sh                  # Automated setup script\n├── test-connection.sh        # Connection test script\n├── README.md                 # This file\n├── QUICKSTART.md            # 5-minute setup guide\n├── SETUP.md                  # Detailed setup guide\n└── USAGE.md                  # Usage examples\n\n```\n\n## Security Considerations\n\n- **API Tokens** are more secure than password authentication as they can be revoked independently\n- Set `PROXMOX_VERIFY_SSL=true` in production environments with valid SSL certificates\n- Grant minimal required permissions to API tokens\n- Store credentials securely and never commit them to version control\n- Consider network restrictions (firewall rules) for API access\n\n## Troubleshooting\n\n### Authentication Errors\n\n- Verify your credentials are correct\n- Check that the user has appropriate permissions\n- For API tokens, ensure the token hasn't expired or been revoked\n- Ensure \"Privilege Separation\" was unchecked when creating the token\n\n### Connection Errors\n\n- Verify `PROXMOX_HOST` and `PROXMOX_PORT` are correct\n- Check network connectivity to the Proxmox host\n- If using SSL verification, ensure certificates are valid\n- Test with: `curl -k https://YOUR_HOST:8006/api2/json/version`\n\n### Permission Errors\n\n- The user/token needs appropriate privileges for the operations\n- Common required privileges: `VM.Monitor`, `VM.Audit`, `Datastore.Audit`, `Sys.Audit`, `VM.PowerMgmt`, `VM.Snapshot`\n\n### Debug Mode\n\nTo see detailed logs, check stderr output when running the server. The server logs authentication method and connection status to stderr (visible in Claude Desktop logs).\n\n### Tools Not Showing in Claude\n\n- Verify the path in Claude config is absolute, not relative\n- Check that the config file is valid JSON\n- Ensure you completely quit and restarted Claude Desktop (not just closed the window)\n- Check Claude Desktop logs for errors\n\n## Testing Connection\n\nBefore configuring Claude, test your Proxmox connection:\n\n```bash\n# Set environment variables\nexport PROXMOX_HOST=\"192.168.1.100\"\nexport PROXMOX_USER=\"root@pam\"\nexport PROXMOX_TOKEN_NAME=\"automation\"\nexport PROXMOX_TOKEN_VALUE=\"your-token-here\"\n\n# Run test script\n./test-connection.sh\n```\n\nThe script will verify:\n1. Connection to Proxmox\n2. API availability\n3. Authentication\n4. Permission to list nodes\n5. Access to cluster resources\n\n## A2A Protocol\n\n### Overview\n\nThis Proxmox MCP server implements the **Agent-to-Agent (A2A) protocol**, enabling AI agents to discover, communicate with, and orchestrate infrastructure management tasks autonomously.\n\n### Agent Card\n\nThe `agent-card.json` file serves as the agent's identity and capability manifest. It provides:\n\n**Location:** `/agent-card.json` (repository root)\n\n**Contents:**\n- Agent name, version, and description\n- MCP protocol version and capabilities\n- Authentication methods and requirements\n- Skill catalog organized by functional category\n- Required permissions and dependencies\n- Endpoint configuration\n\n### Available Skills\n\nThe agent provides **20 tools** organized into **6 skill categories**:\n\n#### 1. Node Management\n- `list_nodes` - List all cluster nodes\n- `get_node_status` - Get node resource usage and status\n\n#### 2. Virtual Machine Management\n- `list_vms` - List VMs (node-specific or cluster-wide)\n- `get_vm_config` - Get VM configuration\n- `get_vm_status` - Get VM status and metrics\n- `start_vm` - Start a VM\n- `stop_vm` - Force stop a VM\n- `shutdown_vm` - Gracefully shutdown a VM\n- `reboot_vm` - Reboot a VM\n- `create_vm_snapshot` - Create VM snapshot\n- `list_vm_snapshots` - List VM snapshots\n- `delete_vm_snapshot` - Delete VM snapshot\n\n#### 3. Container Management\n- `list_containers` - List LXC containers\n- `get_container_status` - Get container status\n- `start_container` - Start container\n- `stop_container` - Stop container\n\n#### 4. Storage Management\n- `list_storage` - List storage devices\n- `get_storage_status` - Get storage usage and capacity\n\n#### 5. Task Management\n- `list_tasks` - List running and recent tasks\n- `get_task_status` - Get task progress and status\n\n#### 6. Cluster Management\n- `get_cluster_status` - Get overall cluster status and resources\n\n### Agent-to-Agent Integration\n\n#### Discovery\n\nOther agents can discover this agent's capabilities by reading the agent card:\n\n```python\nimport json\n\n# Load agent card\nwith open('agent-card.json') as f:\n    agent_card = json.load(f)\n\n# Discover capabilities\nprint(f\"Agent: {agent_card['name']}\")\nprint(f\"Version: {agent_card['version']}\")\nprint(f\"Skills: {len(agent_card['skills'])} categories\")\n\n# List available skills\nfor skill in agent_card['skills']:\n    print(f\"\\n{skill['category']}:\")\n    for capability in skill['capabilities']:\n        print(f\"  - {capability['name']}: {capability['description']}\")\n```\n\n#### Authentication Setup\n\nAgents can programmatically configure authentication:\n\n```python\n# API Token (recommended)\nenv_config = {\n    \"PROXMOX_HOST\": \"192.168.1.100\",\n    \"PROXMOX_USER\": \"root@pam\",\n    \"PROXMOX_TOKEN_NAME\": \"automation\",\n    \"PROXMOX_TOKEN_VALUE\": \"your-token-value\"\n}\n\n# Or Password-based\nenv_config = {\n    \"PROXMOX_HOST\": \"192.168.1.100\",\n    \"PROXMOX_USER\": \"root@pam\",\n    \"PROXMOX_PASSWORD\": \"your-password\"\n}\n```\n\n#### Tool Invocation\n\nAgents communicate via MCP protocol:\n\n```python\nfrom mcp import ClientSession, StdioServerParameters\nfrom mcp.client.stdio import stdio_client\n\n# Connect to the agent\nserver_params = StdioServerParameters(\n    command=\"uv\",\n    args=[\"--directory\", \"/path/to/proxmox-mcp-server\", \"run\", \"proxmox-mcp-server\"],\n    env=env_config\n)\n\nasync with stdio_client(server_params) as (read, write):\n    async with ClientSession(read, write) as session:\n        # Initialize session\n        await session.initialize()\n\n        # List available tools\n        tools = await session.list_tools()\n\n        # Call a tool\n        result = await session.call_tool(\"list_vms\", arguments={})\n        print(result.content)\n```\n\n#### Multi-Agent Orchestration Example\n\nExample workflow with multiple agents:\n\n```python\n# Agent orchestration: VM backup workflow\nasync def backup_workflow():\n    # 1. Proxmox agent: List VMs\n    vms = await proxmox_agent.call_tool(\"list_vms\", {})\n\n    # 2. Proxmox agent: Create snapshots for each VM\n    for vm in vms['data']:\n        snapshot_name = f\"backup-{datetime.now().strftime('%Y%m%d-%H%M%S')}\"\n        await proxmox_agent.call_tool(\"create_vm_snapshot\", {\n            \"node\": vm['node'],\n            \"vmid\": vm['vmid'],\n            \"snapname\": snapshot_name\n        })\n\n    # 3. Storage agent: Verify backup storage capacity\n    storage_status = await storage_agent.call_tool(\"check_capacity\", {})\n\n    # 4. Notification agent: Send completion report\n    await notification_agent.call_tool(\"send_alert\", {\n        \"message\": f\"Backup completed: {len(vms['data'])} VMs\"\n    })\n```\n\n### A2A Protocol Benefits\n\n**For AI Agents:**\n- **Self-documenting** - Agent card provides complete capability discovery\n- **Type-safe** - Structured skill definitions with input/output schemas\n- **Composable** - Skills can be combined for complex workflows\n- **Secure** - Clear authentication requirements and permissions\n\n**For Orchestration Systems:**\n- **Dynamic discovery** - Find and integrate agents at runtime\n- **Capability matching** - Match tasks to agent skills automatically\n- **Parallel execution** - Coordinate multiple agents simultaneously\n- **Error handling** - Standardized error responses and retry logic\n\n### Integration Examples\n\n#### Example 1: Infrastructure Monitoring Agent\n\n```python\n# Monitoring agent that uses Proxmox agent skills\nasync def monitor_infrastructure():\n    # Get cluster status\n    cluster = await proxmox_agent.call_tool(\"get_cluster_status\", {})\n\n    # Get all nodes\n    nodes = await proxmox_agent.call_tool(\"list_nodes\", {})\n\n    # Check each node's status\n    for node in nodes['data']:\n        status = await proxmox_agent.call_tool(\"get_node_status\", {\n            \"node\": node['node']\n        })\n\n        # Alert if resource usage is high\n        if status['data']['cpu'] \u003e 0.9:\n            await alert_agent.send_alert(f\"High CPU on {node['node']}\")\n```\n\n#### Example 2: Auto-scaling Agent\n\n```python\n# Auto-scaling agent that manages VM capacity\nasync def autoscale_vms():\n    # Get current VM statuses\n    vms = await proxmox_agent.call_tool(\"list_vms\", {})\n\n    # Analyze load across VMs\n    for vm in vms['data']:\n        status = await proxmox_agent.call_tool(\"get_vm_status\", {\n            \"node\": vm['node'],\n            \"vmid\": vm['vmid']\n        })\n\n        # Scale based on metrics\n        if needs_scaling(status):\n            await proxmox_agent.call_tool(\"start_vm\", {\n                \"node\": \"pve2\",\n                \"vmid\": get_next_vm_id()\n            })\n```\n\n#### Example 3: Disaster Recovery Agent\n\n```python\n# DR agent that coordinates backup and recovery\nasync def disaster_recovery():\n    # Take snapshots of all critical VMs\n    critical_vms = [100, 101, 102]\n\n    for vmid in critical_vms:\n        # Find which node hosts the VM\n        vms = await proxmox_agent.call_tool(\"list_vms\", {})\n        vm = next(v for v in vms['data'] if v['vmid'] == vmid)\n\n        # Create snapshot\n        await proxmox_agent.call_tool(\"create_vm_snapshot\", {\n            \"node\": vm['node'],\n            \"vmid\": vmid,\n            \"snapname\": f\"dr-{datetime.now().isoformat()}\"\n        })\n\n        # Verify snapshot\n        snapshots = await proxmox_agent.call_tool(\"list_vm_snapshots\", {\n            \"node\": vm['node'],\n            \"vmid\": vmid\n        })\n```\n\n## API Documentation\n\nFor more information about the Proxmox VE API:\n- [Proxmox VE API Documentation](https://pve.proxmox.com/wiki/Proxmox_VE_API)\n- [API Viewer](https://pve.proxmox.com/pve-docs/api-viewer/)\n- [Proxmox VE Administration Guide](https://pve.proxmox.com/pve-docs/pve-admin-guide.html)\n\n## Dependencies\n\n- **mcp** (\u003e=1.0.0): Model Context Protocol SDK\n- **httpx** (\u003e=0.27.0): Modern HTTP client for Python\n\n## Roadmap\n\nFuture enhancements may include:\n\n- VM creation and deletion\n- Container creation and deletion\n- Backup management\n- Network configuration\n- User and permission management\n- Resource pool management\n- HA (High Availability) management\n- Firewall rule management\n- Certificate management\n- Real-time monitoring and alerts\n\n## Contributing\n\nContributions are welcome! Please feel free to submit issues or pull requests.\n\nAreas for improvement:\n- Additional tools/features\n- Better error handling\n- Performance optimizations\n- Documentation improvements\n- Test coverage\n- Bug fixes\n\n## License\n\nMIT\n\n## Related Projects\n\n- [Model Context Protocol](https://modelcontextprotocol.io/)\n- [Proxmox VE](https://www.proxmox.com/en/proxmox-virtual-environment)\n- [uv - Python Package Manager](https://github.com/astral-sh/uv)\n- [MCP Servers Collection](https://github.com/modelcontextprotocol/servers)\n\n## Support\n\nIf you encounter issues:\n\n1. Check the documentation files:\n   - [QUICKSTART.md](QUICKSTART.md) - Quick setup\n   - [SETUP.md](SETUP.md) - Detailed setup with security\n   - [USAGE.md](USAGE.md) - Usage examples\n\n2. Test your connection with `./test-connection.sh`\n\n3. Check Claude Desktop logs for errors\n\n4. Verify Proxmox server logs: `/var/log/pve/`\n\n5. Review Proxmox API documentation\n\n## Acknowledgments\n\nThis project uses:\n- The Model Context Protocol by Anthropic\n- Proxmox VE API\n- Python httpx for HTTP requests\n- uv for fast Python package management\n\n---\n\n**Ready to get started?** → See [QUICKSTART.md](QUICKSTART.md)\n\n**Need detailed setup?** → See [SETUP.md](SETUP.md)\n\n**Want examples?** → Check [USAGE.md](USAGE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fry-ops%2Fproxmox-mcp-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fry-ops%2Fproxmox-mcp-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fry-ops%2Fproxmox-mcp-server/lists"}