ð Proxmox MCP Server (Node.js Edition)
ããŒã«ã«ð Proxmox MCP Server (Node.js Edition) ã«ã€ããŠ
Proxmox MCP ServerïŒNode.js çïŒã¯ãProxmox VE ã®ããŒããQEMU ä»®æ³ãã·ã³ãLXC ã³ã³ããã管çããããã® MCP ãµãŒããŒã§ããPython ç ProxmoxMCP ãåºã« Node.js ã§å®è£ ãããŠãããæ¢å®ã§ã¯èªã¿åãå°çšã§ãæžãèŸŒã¿æäœã«ã¯æç€ºçãªæå¹åãå¿ èŠã§ãã
äž»ãªæ©èœ
- 01æ¢å®ã§èªã¿åãå°çšãå¿ èŠæã«æžãèŸŒã¿æš©éãæå¹å
- 02ä»®æ³ãã·ã³ãšã³ã³ããã®ã©ã€ããµã€ã¯ã«ç®¡ç
- 03ã¹ãããã·ã§ãããããã¯ã¢ããããã£ã¹ã¯ãšãããã¯ãŒã¯ã®èšå®
- 04ã²ã¹ããšãŒãžã§ã³ãçµç±ã®ã³ãã³ãå®è¡ãš IP ååŸ
- 05Terraform/OpenTofu ã® HCL åºåïŒimport ãããã¯ä»ãïŒ
- 06ããŒããš VMID ã®èš±å¯ãªã¹ãããã³åé€ä¿è·
掻çšã·ãŒã³
- 01MCP ã¯ã©ã€ã¢ã³ããã Proxmox ã®ããŒããš VM ã®ç¶æ ã確èª
- 02æ¢åã®ã²ã¹ãã Terraform 圢åŒã§æžãåºã IaC ã«åã蟌ã
- 03æš©éãçµã£ãããŒã¯ã³ã§ã¯ã©ã¹ã¿ã®èªã¿åãå°çšç¹æ€ã宿œ
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ãã®ãµãŒããŒã®ããã±ãŒãžããªã¢ãŒããšã³ããã€ã³ãã¯ãŸã ååŸã§ããŠããŸããããããžã§ã¯ãã® README ã®æé ã«åŸã£ãŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
Proxmox MCP ServerïŒNode.js çïŒ
Proxmox VE ãã€ããŒãã€ã¶ãŒïŒããŒããQEMU VMãLXC ã³ã³ãããŒïŒã管çãããNode.js ããŒã¹ã® Model Context ProtocolïŒMCPïŒãµãŒããŒã§ããæš©éã¬ãã«ãèšå®ã§ããTerraform/OpenTofu ãžã®ãšã¯ã¹ããŒãã«ã察å¿ããŠããŸãã
ã¯ã¬ãžãã
canvrno/ProxmoxMCP ã«ãããªãªãžãã«ã® Python å®è£ ãããŒã¹ã«ããŠããŸãããã® Node.js çã¯ãæš©é管çã®èšå®æ©èœãš Terraform/OpenTofu çææ©èœã远å ããªãããåãã³ã¢æ©èœãç¶æããŠããŸãã
æ©èœ
- 2 ã€ã®æš©éã¬ãã«ïŒããã©ã«ãã¯èªã¿åãå°çšã§ããç Žå£çæäœãè¡ãã«ã¯ãæç€ºçã«ãªããã€ã³ããå¿
èŠããããŸãïŒ
PROXMOX_ALLOW_ELEVATED=trueïŒ - ããŒããVMãã³ã³ãããŒã®ç®¡çïŒã¹ããŒã¿ã¹ãã©ã€ããµã€ã¯ã«ïŒèµ·åïŒåæ¢ïŒåèµ·åïŒã·ã£ããããŠã³ïŒäžæåæ¢ïŒãäœæãã¯ããŒã³ããµã€ãºå€æŽãåé€ãç§»è¡ããã³ãã¬ãŒããžã®å€æ
- ã¿ã¹ã¯ã®è¿œè·¡ïŒUPID ãæå®ããŠä»»æã®ã¿ã¹ã¯ãèªã¿åãïŒå¿ èŠã«å¿ããŠå®äºãåŸ æ©ãïŒã倿޿äœãå®éã«å®äºããããšã確èªã§ããŸã
- ã²ã¹ããšãŒãžã§ã³ã飿ºïŒã³ãã³ããå®è¡ããŠæšæºåºåïŒçµäºã³ãŒããèªã¿åããå®è¡äžã® VM ã®å®éã® IP ã¢ãã¬ã¹ãæ€åºã§ããŸã
- ã¹ãããã·ã§ãããšããã¯ã¢ããïŒäœæãäžèŠ§è¡šç€ºãããŒã«ããã¯ãåé€
- ãã£ã¹ã¯ãšãããã¯ãŒã¯ã®èšå®ïŒãã£ã¹ã¯ãããŠã³ããã€ã³ãããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®è¿œå ããµã€ãºå€æŽãç§»åãåé€
- Cloud-initãéå»ã®ã¡ããªã¯ã¹ïŒRRDïŒãããŒã«ãHA ãªãœãŒã¹ããã¡ã€ã¢ãŠã©ãŒã«ã«ãŒã«ã®èªã¿åãå°çšã®å¯èŠ³æž¬æ§
- Terraform/OpenTofu ãšã¯ã¹ããŒãïŒæ¢åã® VM ãšã³ã³ãããŒãã HCLïŒ
importãããã¯ãå«ãïŒãçæããåäœæããã« IaC ãžåã蟌ããŸã - æ§é ååºåïŒããŒã«ã¯ Markdown ããã¹ãã«å ããŠãæ©æ¢°å¯èªãª
structuredContentãè¿ãããããšãŒãžã§ã³ãã¯ããŒã¿ãé£éçã«åŠçã§ããŸã - MCP ãªãœãŒã¹ïŒ
proxmox://nodesãproxmox://vmsãproxmox://storageïŒãšããã³ããïŒããããžã§ãã³ã°ããã«ã¹ãã§ãã¯ãæš©éã®èšºæïŒ - å®å šçïŒTLS æ€èšŒã®ä»»æèšå®ãããŒãïŒVMID ã®èš±å¯ãªã¹ããä¿è·ãããã²ã¹ãã®åé€ã黿¢ããä¿è·ãã©ã°ã®ãã§ãã¯
- å ¬åŒ MCP SDK ãåºç€ãšããŠæ§ç¯
ã€ã³ã¹ããŒã«
åææ¡ä»¶
- Node.js 20 以éãš npm
- Proxmox VE ãµãŒããŒãš API ããŒã¯ã³ïŒAPI ããŒã¯ã³ã®èšå®ãåç §ïŒ
ã»ããã¢ãã
ã¯ããŒã³ããŠã€ã³ã¹ããŒã«ããŸãïŒ
git clone https://github.com/gilby125/mcp-proxmox.git
cd mcp-proxmox
npm install
ã¯ããŒã³ããã« npx ã§å®è¡ããããšãã§ããŸãïŒ
PROXMOX_HOST=your-proxmox-ip PROXMOX_TOKEN_VALUE=your-token-secret npx mcp-proxmox
Docker ã䜿çšããå ŽåïŒMCP 㯠stdio çµç±ã§éä¿¡ããããã-i ãä»ããŠã¢ã¿ããããŠå®è¡ããŸãïŒïŒ
docker build -t mcp-proxmox .
docker run -i --rm \
-e PROXMOX_HOST=your-proxmox-ip \
-e PROXMOX_TOKEN_VALUE=your-token-secret \
mcp-proxmox
èšå®
ãµãŒããŒã¯ç°å¢å€æ°ã®ã¿ã§èšå®ããŸãïŒ
| 倿° | å¿ é | ããã©ã«ã | 説æ |
|---|---|---|---|
PROXMOX_HOST | ã¯ã | â | Proxmox ã® IP ã¢ãã¬ã¹ãŸãã¯ãã¹ãå |
PROXMOX_TOKEN_VALUE | ã¯ã | â | API ããŒã¯ã³ã®ã·ãŒã¯ã¬ãã |
PROXMOX_USER | ããã | root@pam | ããŒã¯ã³ãå±ãããŠãŒã¶ãŒ |
PROXMOX_TOKEN_NAME | ããã | mcpserver | API ããŒã¯ã³ ID |
PROXMOX_PORT | ããã | 8006 | Proxmox API ããŒã |
PROXMOX_ALLOW_ELEVATED | ããã | false | æžã蟌ã¿ïŒç Žå£çæäœã®ããŒã«ãæå¹ã«ããã«ã¯ true ã«èšå® |
PROXMOX_VERIFY_TLS | ããã | false | Proxmox ã® TLS èšŒææžãæ€èšŒããã«ã¯ true ã«èšå®ïŒCA çœ²åæžã¿èšŒææžã䜿çšããŠãã ããïŒ |
PROXMOX_NODE_ALLOWLIST | ããã | â | ãµãŒããŒãæäœã§ããããŒãåãã«ã³ãåºåãã§æå®ããŸãã空æ¬ã®å Žåã¯å¶éãªãã§ã |
PROXMOX_VMID_ALLOWLIST | ããã | â | ãµãŒããŒãæäœã§ãã VMID ãã«ã³ãåºåãã§æå®ããŸãã空æ¬ã®å Žåã¯å¶éãªãã§ã |
èšå®å€ã®æå®æ¹æ³ã¯ 2 éããããŸãïŒ
æ¹æ³ 1ïŒMCP ã¯ã©ã€ã¢ã³ãèšå®ã® env ãããã¯ïŒæšå¥šïŒ
Claude Desktop ã®å Žåãèšå®ãã¡ã€ã«ãç·šéããŸãïŒmacOSïŒ~/Library/Application Support/Claude/claude_desktop_config.jsonãLinuxïŒ~/.config/Claude/claude_desktop_config.jsonãWindowsïŒ%APPDATA%\Claude\claude_desktop_config.jsonïŒïŒ
{
"mcpServers": {
"proxmox": {
"command": "node",
"args": ["/absolute/path/to/mcp-proxmox/index.js"],
"env": {
"PROXMOX_HOST": "your-proxmox-ip",
"PROXMOX_USER": "root@pam",
"PROXMOX_TOKEN_NAME": "mcp-server",
"PROXMOX_TOKEN_VALUE": "your-token-secret",
"PROXMOX_ALLOW_ELEVATED": "false"
}
}
}
}
ç·šéåŸã«ã¯ã©ã€ã¢ã³ããåèµ·åãããProxmox VM ãäžèŠ§è¡šç€ºããŠããšå°ããŠãã¹ãããŸãã
æ¹æ³ 2ïŒã€ã³ã¹ããŒã«å
ã®èŠªãã£ã¬ã¯ããªã« .env ãã¡ã€ã«ãé
眮
ãµãŒããŒã¯ index.js ããã®çžå¯Ÿãã¹ ../.envãã€ãŸãã¯ããŒã³ãããªããžããªã® 1 ã€äžã®ãã£ã¬ã¯ããªãã .env ãèªã¿èŸŒã¿ãŸãïŒã·ãŒã¯ã¬ãããã³ããããããªãããããªããžããªã®å€ã«é
眮ããŸãïŒïŒ
/home/user/
âââ .env <- environment file goes here
âââ mcp-proxmox/
âââ index.js <- loads ../.env from here
# /home/user/.env
PROXMOX_HOST=your-proxmox-ip-or-hostname
PROXMOX_USER=root@pam
PROXMOX_TOKEN_NAME=mcp-server
PROXMOX_TOKEN_VALUE=your-token-secret
PROXMOX_ALLOW_ELEVATED=false
Proxmox API ããŒã¯ã³ã®èšå®
- Proxmox Web UI -> Datacenter -> Permissions -> API Tokens -> Add
- ãŠãŒã¶ãŒïŒäŸïŒ
root@pamïŒãšããŒã¯ã³ IDïŒäŸïŒmcp-serverïŒãéžæããŸã - ã·ãŒã¯ã¬ããã¯ããã«ã³ããŒããŠãã ããã衚瀺ãããã®ã¯äžåºŠã ãã§ã
- ããŒã¯ã³ ID ã
PROXMOX_TOKEN_NAMEã«ãã·ãŒã¯ã¬ãããPROXMOX_TOKEN_VALUEã«èšå®ããŸã
æš©éïŒåºæ¬ïŒèªã¿åãå°çšïŒã¢ãŒãã¯ãæå°éã®ããŒã¯ã³æš©éã§åäœããŸããææ Œã¢ãŒãã§ã¯ã䜿çšããããŒã«ã«å¿ããŠãSys.AuditãVM.MonitorãVM.ConsoleãVM.AllocateãVM.PowerMgmtãVM.SnapshotãVM.BackupãVM.Config.*ãDatastore.AuditãDatastore.Allocate ãå«ãããŒã«ãå¿
èŠã§ãã
æš©éã¬ãã«
åºæ¬ã¢ãŒãïŒããã©ã«ãã® PROXMOX_ALLOW_ELEVATED=falseïŒã§ã¯ãããŒããVMãã³ã³ãããŒãã¹ãã¬ãŒãžãã¯ã©ã¹ã¿ãŒã®ç¶æ
ããã³ãã¬ãŒãã®äžèŠ§è¡šç€ºãš Terraform ã®çæã®ã¿ãå¯èœã§ãã
ææ Œã¢ãŒãïŒPROXMOX_ALLOW_ELEVATED=trueïŒã§ã¯ãVMãã³ã³ãããŒãã¹ãããã·ã§ãããããã¯ã¢ããããã£ã¹ã¯ããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ãŒã¹ã®äœæã倿Žãå®å
šåé€ãããã³ã²ã¹ãå
ã§ã®ã³ãã³ãå®è¡ãè¡ãæžã蟌ã¿ããŒã«ãæå¹ã«ãªããŸãããããããªã¹ã¯ãçè§£ããåãå
¥ããå Žåã«ã®ã¿æå¹ã«ããŠãã ããã
å©çšå¯èœãªããŒã«
èªã¿åãå°çšïŒåžžã«å©çšå¯èœïŒ
| ããŒã« | 説æ |
|---|---|
proxmox_get_nodes | ã¯ã©ã¹ã¿ãŒã®ããŒããšç¶æ ããã³ãªãœãŒã¹ãäžèŠ§è¡šç€ºããŸã |
proxmox_get_node_status | ããŒãã®è©³çްãªç¶æ
ïŒææ Œæš©éãš Sys.Audit ãå¿
èŠïŒ |
proxmox_get_vms | VMïŒã³ã³ãããŒãäžèŠ§è¡šç€ºããŸããããŒããšã¿ã€ãã§çµã蟌ããŸã |
proxmox_get_vm_status | 1 ã€ã® VMïŒã³ã³ãããŒã®è©³çްãªç¶æ |
proxmox_get_storage | ã¹ãã¬ãŒãžããŒã«ãšäœ¿çšç¶æ³ãäžèŠ§è¡šç€ºããŸã |
proxmox_get_cluster_status | ã¯ã©ã¹ã¿ãŒã®å¥å šæ§ã®æŠèŠ |
proxmox_list_templates | ã¹ãã¬ãŒãžäžã® LXC ãã³ãã¬ãŒããäžèŠ§è¡šç€ºããŸã |
proxmox_get_next_vmid | 次ã«å©çšå¯èœãª VMïŒã³ã³ãã㌠ID |
proxmox_get_vm_config | VMïŒã³ã³ãããŒã®å®å šãªèšå®ïŒã³ã¢ãã¡ã¢ãªããã£ã¹ã¯ããããã¯ãŒã¯ãcloud-initïŒ |
proxmox_get_task_status | UPID ã§ã¿ã¹ã¯ã®ç¶æ ãååŸããŸããå®äºãŸã§åŸ æ©ããããšãã§ããŸã |
proxmox_whoami | ããŒã¯ã³ã®èªèšŒå ã® ID ãšæå¹ãªæš©é |
proxmox_get_rrd_data | CPUïŒã¡ã¢ãªïŒãã£ã¹ã¯ïŒãããã¯ãŒã¯ã®å±¥æŽæç³»åããŒã¿ïŒããŒããŸãã¯ã²ã¹ãïŒ |
proxmox_get_pools | ãªãœãŒã¹ããŒã«ãšãã®ã¡ã³ã㌠|
proxmox_get_ha_resources | é«å¯çšæ§ãªãœãŒã¹ãšç®æšç¶æ |
proxmox_get_firewall_rules | ã¯ã©ã¹ã¿ãŒïŒããŒãïŒã²ã¹ãã¬ãã«ã®ãã¡ã€ã¢ãŠã©ãŒã«ã«ãŒã« |
proxmox_generate_terraform | æ¢åã®ã²ã¹ããã TerraformïŒOpenTofu HCL ãçæããŸã |
ææ ŒïŒPROXMOX_ALLOW_ELEVATED=true ãå¿
èŠïŒ
| ã«ããŽãª | ããŒã« |
|---|---|
| äœæ | proxmox_create_vmãproxmox_create_lxc |
| ã©ã€ããµã€ã¯ã« | proxmox_start_*ãproxmox_stop_*ãproxmox_reboot_*ãproxmox_shutdown_*ãproxmox_pause_vmãproxmox_resume_vm |
| ã¯ããŒã³ïŒãµã€ãºå€æŽïŒåé€ | proxmox_clone_*ãproxmox_resize_*ãproxmox_delete_* |
| ã¹ãããã·ã§ãã | proxmox_create_snapshot_*ãproxmox_list_snapshots_*ãproxmox_rollback_snapshot_*ãproxmox_delete_snapshot_* |
| ããã¯ã¢ãã | proxmox_create_backup_*ãproxmox_list_backupsãproxmox_restore_backup_*ãproxmox_delete_backup |
| ãã£ã¹ã¯ | proxmox_add_disk_vmãproxmox_add_mountpoint_lxcãproxmox_resize_disk_*ãproxmox_remove_disk_vmãproxmox_remove_mountpoint_lxcãproxmox_move_disk_* |
| ãããã¯ãŒã¯ | proxmox_add_network_*ãproxmox_update_network_*ãproxmox_remove_network_* |
| ç§»è¡ïŒãã³ãã¬ãŒã | proxmox_migrate_vmãproxmox_convert_to_template |
| Cloud-init | proxmox_set_cloudinitïŒQEMUïŒ |
| ã²ã¹ãå®è¡ïŒIP | proxmox_execute_vm_commandãproxmox_get_guest_ipsïŒã²ã¹ããšãŒãžã§ã³ãçµç±ã® QEMUïŒ |
_* ãµãã£ãã¯ã¹ãä»ãããŒã«ã«ã¯ã_vmïŒQEMUïŒãš _lxcïŒã³ã³ãããŒïŒã®ããªã¢ã³ãããããŸãã
proxmox_execute_vm_command ã¯ããã©ã«ãã§ã²ã¹ããšãŒãžã§ã³ããããŒãªã³ã°ãïŒwait: trueïŒãã³ãã³ãã® stdoutãstderrãçµäºã³ãŒããè¿ããŸããPID ã®ã¿ãè¿ãã«ã¯ wait: false ãæå®ããŸããproxmox_migrate_vm ãªã©ã®é·æéå®è¡ãããæäœã¯ã¿ã¹ã¯ UPID ãè¿ããŸããå®äºã確èªããã«ã¯ããã® UPID ã proxmox_get_task_status ã«æž¡ããwait: true ãæå®ããŠãã ããã
Terraform/OpenTofu ãšã¯ã¹ããŒã
proxmox_generate_terraform ã¯æ¢åã® VM ãšã³ã³ããã®çšŒåäžã®æ§æãèªã¿åããbpg/proxmox ãããã€ããŒçšã® HCL ãçæããŸããimport ãããã¯ãå«ãŸãããããterraform plan / tofu plan ã¯å®è¡äžã®ã²ã¹ããåäœæããã«åã蟌ã¿ãŸãã
åŒæ°ïŒãã¹ãŠçç¥å¯èœïŒïŒ
nodeâ ãã®ããŒãäžã®ã²ã¹ãã®ã¿ããšã¯ã¹ããŒãããŸãvmidâ åäžã® VMïŒã³ã³ããããšã¯ã¹ããŒãããŸãtypeâqemuãlxcããŸãã¯allïŒããã©ã«ãïŒinclude_providerâterraform {}/provider {}ã®ã²ãªåãå«ããŸãïŒããã©ã«ãã¯trueïŒ
ããã³ããã®äŸïŒãããŒã pve1 äžã® VM 100 ã® terraform ãçæããŠãã ãããããã®åŸïŒ
# save the output as main.tf
terraform init # or: tofu init
export TF_VAR_proxmox_api_token='user@realm!tokenid=uuid'
terraform plan # import blocks adopt the existing guests
ãžã§ãã¬ãŒã¿ãŒã§ãããã³ã°ã§ããªããªãã·ã§ã³ã¯ãåãªãœãŒã¹ãããã¯å
ã®ã³ã¡ã³ãã«èšèŒãããŸããLXC ãªãœãŒã¹ã«ã¯ ignore_changes = [operating_system] ã®ã©ã€ããµã€ã¯ã«ãããã¯ãå«ãŸããŸããProxmox ã¯ãœãŒã¹ãã³ãã¬ãŒããèšé²ããªãããããã¬ãŒã¹ãã«ããŒã® template_file_id ã«ãã£ãŠãåã蟌ãã ã³ã³ããã眮ãæããããã®ãé²ããŸãã
ãªãœãŒã¹ãšããã³ãã
ããŒã«ã«å ãããã®ãµãŒããŒã¯ãåç
§å¯èœãªèªã¿åãå°çšã®ã¯ã©ã¹ã¿ãŒç¶æ
ã JSON ãšããŠæäŸãã MCP ãªãœãŒã¹ïŒproxmox://nodesãproxmox://vmsãproxmox://storageïŒãšãäžè¬çãªã¯ãŒã¯ãããŒçšã® MCP ããã³ããïŒprovision_lxcãhealth_checkãdiagnose_permissionsïŒãå
¬éããŸãã
æ§é ååºå
ãã¹ãŠã®ããŒã«ã¯ã人éåãã® Markdown ã®æŠèŠãšãããã°ã©ã ã§å©çšããããã® structuredContent ãªããžã§ã¯ããè¿ããŸããããšãã°ãproxmox_get_vms 㯠{ count, vms: [{ vmid, name, type, node, status, cpu, mem, maxmem, ... }] } ãè¿ããŸããstructuredContent ãçè§£ããªãã¯ã©ã€ã¢ã³ãã¯ãããã¹ãããã®ãŸãŸè¡šç€ºããŸãã
ãã¹ã
# Unit tests (no Proxmox server needed)
npm test
# Live read-only integration test (needs a configured Proxmox connection)
node test-basic-tools.js
# Live workflow tests â CREATES AND DELETES real resources; needs elevated mode
node test-workflows.js [--dry-run] [--interactive] [--workflow=lxc|disk|snapshot]
ã¯ãŒã¯ãããŒãã¹ãã®è©³çްã«ã€ããŠã¯ãTEST-WORKFLOWS.md ãåç §ããŠãã ããã
éçº
npm install
npm start # run the server
npm run dev # run with auto-reload
npm test # unit tests
# Poke the server directly over stdio
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | node index.js
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã§ã¯ãGitHub ActionsïŒ.github/workflows/ci.ymlïŒãä»ã㊠Node 20 ããã³ 22 ã§ npm test ãå®è¡ããŸãã
æ¢ç¥ã®å¶éäºé
- TLS æ€èšŒã¯ããã©ã«ãã§ç¡å¹ã«ãªã£ãŠãããããProxmox ã®èªå·±çœ²åèšŒææžã§ããã®ãŸãŸãµãŒããŒãå©çšã§ããŸããCA 眲åèšŒææžãããå Žåã¯ã
PROXMOX_VERIFY_TLS=trueãèšå®ããŠãã ãããæ€èšŒãç¡å¹ã«ããç¶æ ã§ãä¿¡é Œã§ããªããããã¯ãŒã¯äžã®ãµãŒããŒãæå®ããªãã§ãã ããã proxmox_execute_vm_commandãproxmox_get_guest_ipsãproxmox_set_cloudinit㯠QEMU VM ã®ã¿ã§åäœããŸããProxmox HTTP API ã«ã¯ LXC ã³ã³ããçšã® execïŒagent ãšã³ããã€ã³ãããªããããtype: lxcã§ã¯ã³ãã³ãå®è¡æã«æç¢ºãªãæªå¯Ÿå¿ãã¡ãã»ãŒãžãè¿ãããŸãã代ããã« SSH ãŸãã¯ãã¹ãäžã®pct execã䜿çšããŠãã ããã
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
- ãCould not load .env fileããšããèŠå â MCP ã¯ã©ã€ã¢ã³ãã®
envãããã¯ãä»ããŠå€æ°ãæž¡ããŠããå Žåã¯ç¡èŠã§ããŸãããã以å€ã®å Žåã¯ããªããžããªã®èŠªãã£ã¬ã¯ããªã«.envã眮ããŠãã ããïŒmcp-proxmoxå ããls ../.envãå®è¡ïŒã - æ¥ç¶æåŠïŒã¿ã€ã ã¢ãŠã â
PROXMOX_HOSTãPROXMOX_PORTïŒããã©ã«ã㯠8006ïŒãããã³ãã¡ã€ã¢ãŠã©ãŒã«ã®ã«ãŒã«ã確èªããŠãã ããã - 401 Unauthorized â
PROXMOX_USERã®åœ¢åŒïŒroot@pamïŒãPROXMOX_TOKEN_NAMEãããã³PROXMOX_TOKEN_VALUEã®ã·ãŒã¯ã¬ãããå®å šã§ããããšã確èªããŠãã ããã - ãRequires Elevated Permissionsã â
PROXMOX_ALLOW_ELEVATED=trueãèšå®ããããŒã¯ã³ã«äžèšã®ããŒã«ãä»äžããŠãã ããã - QEMU ã³ãã³ãã®å®è¡ã«å€±æãã â VM å
ã« QEMU ã²ã¹ããšãŒãžã§ã³ããã€ã³ã¹ããŒã«ããŠæå¹åãïŒ
apt install qemu-guest-agentïŒãVM ã®ãªãã·ã§ã³ã§ãæå¹åããŠãããVM ãåèµ·åããŠãã ããã
ã©ã€ã»ã³ã¹
MIT â LICENSE ãåç §ããŠãã ããã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã