lunanode-mcp

lunanode-mcp

Enables management of LunaNode VPS resources including VMs, images, volumes, floating IPs, SSH keys through natural language with tiered safety controls.

Category
访问服务器

README

lunanode-mcp

MCP server for the LunaNode VPS API.

Features

  • 43 tools covering VMs, images, volumes, floating IPs, SSH keys, and plans/regions.
  • Tiered safety gating: read operations are always available; write and delete operations must be explicitly enabled.

Configuration

Set these environment variables:

Variable Required Description
LUNANODE_API_ID Yes Your LunaNode API ID.
LUNANODE_API_KEY Yes Your LunaNode API key (128 characters).
LUNANODE_ENABLE_WRITES No Enables write-tier tools. Unset = off. true/1 = all write tools. Comma-separated tool names = only those tools.
LUNANODE_ENABLE_DELETES No Enables delete-tier tools. Unset = off. true/1 = all delete tools. Comma-separated tool names = only those tools.

Read-tier tools are always enabled. Enabling writes does not imply deletes — each tier is gated independently.

Using a .env file

Instead of putting credentials in your MCP client config, you can keep them in a .env file and load it with Node's built-in --env-file flag (Node 20.6+). Copy .env.example to .env (git-ignored), fill in your values, and restrict access with chmod 600 .env. Full-line and inline # comments are supported.

{
  "mcpServers": {
    "lunanode": {
      "command": "node",
      "args": [
        "--env-file=/path/to/lunanode-mcp/.env",
        "/path/to/lunanode-mcp/dist/index.js"
      ]
    }
  }
}

The smoke test can use the same file: npx tsx --env-file=.env scripts/smoke.ts

Client setup

Example configuration for Claude Code / Claude Desktop:

{
  "mcpServers": {
    "lunanode": {
      "command": "npx",
      "args": ["-y", "github:Burntberry/lunanode-mcp"],
      "env": {
        "LUNANODE_API_ID": "your-api-id",
        "LUNANODE_API_KEY": "your-128-char-api-key",
        "LUNANODE_ENABLE_WRITES": "true",
        "LUNANODE_ENABLE_DELETES": "vm_delete,volume_delete"
      }
    }
  }
}

Tool reference

Read tools (always enabled)

Tool Description
vm_list List all virtual machines on the LunaNode account.
vm_info Get detailed configuration and live status for a virtual machine.
vm_iplist List all IP addresses assigned to a virtual machine.
image_list List images available to the account, optionally filtered by region.
image_details Get metadata for a specific image.
volume_list List block storage volumes, optionally filtered by region.
volume_info Get details for a specific volume.
volume_snapshot_list List volume snapshots in a region.
floating_ip_list List all floating IPs on the account.
ssh_key_list List stored SSH public keys with their IDs.
plan_list List available LunaNode VM plans with pricing, CPU, RAM, storage, and regional availability.
region_list List all LunaNode regions where services can be deployed.

Write tools (require LUNANODE_ENABLE_WRITES)

Tool Description
vm_create Provision a new virtual machine. Requires a hostname and plan_id; boot from image_id or volume_id.
vm_action Perform a VM state action: start, stop, reboot, diskswap, rescue, shelve, or unshelve.
vm_reimage Reinstall a VM from an image. Destroys the VM's current disk contents.
vm_resize Change a VM's plan (CPU/RAM/storage).
vm_rename Change a VM's hostname label.
vm_snapshot Create a disk image snapshot of a VM.
vm_vnc Generate a temporary noVNC console URL for a VM. Grants console access, so it is write-gated.
vm_floating_ip_attach Attach a floating (public) IP to a VM.
vm_ip_add Allocate an additional internal IP address on a VM.
vm_securitygroup_add Add a VM to an existing security group.
vm_securitygroup_remove Remove a VM from a security group.
image_fetch Add a new image by fetching it from an HTTP, HTTPS, or FTP URL.
image_replicate Copy an image to another region.
image_rename Change an image's label.
volume_create Create a block storage volume, optionally pre-populated from an image or snapshot.
volume_attach Attach a volume to a virtual machine.
volume_detach Detach a volume from its virtual machine.
volume_extend Increase the size of an unattached volume.
volume_rename Change a volume's label.
volume_snapshot_create Take a snapshot of a volume.
volume_snapshot_replicate Convert a volume snapshot into an image, optionally in another region.
floating_ip_add Provision a new unattached floating IP in a region.
ssh_key_add Store an SSH public key for provisioning VMs with key-based authentication.

Delete tools (require LUNANODE_ENABLE_DELETES)

Tool Description
vm_delete Permanently delete a virtual machine.
vm_ip_delete Remove an internal IP address from a VM.
vm_floating_ip_detach Detach a floating IP from a VM. By default the IP is destroyed; set keep to retain it unattached.
image_delete Permanently delete an image.
volume_delete Permanently delete a volume.
volume_snapshot_delete Permanently delete a volume snapshot.
floating_ip_delete Release an unattached floating IP from the account.
ssh_key_remove Delete a stored SSH key.

Development

npm install
npm test
npm run build
npm run smoke   # needs real LunaNode credentials

API keys

API keys are created in the LunaNode panel under API. See https://www.lunanode.com/api/overview for details.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选