ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Cloud MCP

โดย krovacloudรุ่น 0.3.19i★ –iรันบนเครื่อง
ชื่อใน registrycloud.krova/mcp

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Provision and manage Krova Cloud Cubes — Firecracker microVMs with root access and no public IP.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: KROVA_API_KEY

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "krova": {
      "command": "npx",
      "args": [
        "-y",
        "@krovacloud/mcp"
      ],
      "env": {
        "KROVA_API_KEY": "ใส่ค่าของคุณ",
        "KROVA_SPACE_ID": "ใส่ค่าของคุณ",
        "KROVA_BASE_URL": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add krova --env KROVA_API_KEY='ใส่ค่าของคุณ' --env KROVA_SPACE_ID='ใส่ค่าของคุณ' --env KROVA_BASE_URL='ใส่ค่าของคุณ' -- npx -y @krovacloud/mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "krova": {
      "command": "npx",
      "args": [
        "-y",
        "@krovacloud/mcp"
      ],
      "env": {
        "KROVA_API_KEY": "ใส่ค่าของคุณ",
        "KROVA_SPACE_ID": "ใส่ค่าของคุณ",
        "KROVA_BASE_URL": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "krova": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@krovacloud/mcp"
      ],
      "env": {
        "KROVA_API_KEY": "ใส่ค่าของคุณ",
        "KROVA_SPACE_ID": "ใส่ค่าของคุณ",
        "KROVA_BASE_URL": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • KROVA_API_KEY ความลับ จำเป็น env
    A Krova Cloud API key, created under Settings → API keys. Scoped to one Space and inherits the permissions of the membership that created it.
  • KROVA_SPACE_ID env
    Optional. A Space id the Cube tools default to, so a client does not have to name a Space on every call.
  • KROVA_BASE_URL env
    Optional. Overrides the API base URL. Only needed against a non-production environment.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันโดเมน krova.cloud แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32505 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 91% ของอีก 32505 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32505 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Cloud MCP ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: KROVA_API_KEY

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.3.19) เข้า registry 3 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, topo^alpin

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต เมื่อวาน
ติดตั้ง

topo^alpin

โดย topoalpin.app

Avalanche bulletins and mountain weather forecasts for any place in the Alps.

รันบนคลาวด์อัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

@krovacloud/mcp

MCP server for [Krova Cloud](https://krova.cloud) — let Claude, Cursor, and any MCP client provision and manage Cubes (Firecracker microVMs) in natural language.

A Model Context Protocol server that exposes Krova Cloud as a set of tools an AI agent can call. Ask Claude to "spin up a 2-vCPU Ubuntu cube in us", "list my running cubes", or "power off the idle ones", and it drives the Krova Cloud API for you.

It's a thin, fully typed bridge over the official @krovacloud/sdk: each Krova Cloud operation is an MCP tool with a validated input schema, authenticated with your API key.

Quickstart

The fastest way to try it — no install, no clone:

KROVA_API_KEY=kro_... npx -y @krovacloud/mcp

The server speaks MCP over stdio, so you normally don't run it by hand — your MCP client launches it with that command. Pick your client below.

Remote server (no install)

Krova Cloud also hosts this server at https://krova.cloud/mcp over Streamable HTTP. It exposes the same tools as this package, so there is nothing to install.

ChatGPT and Claude.ai

Add a custom connector with the URL https://krova.cloud/mcp. Sign in to Krova, pick a Space, and approve the connection. Access is limited to that Space, with your permissions in it.

Setup guides: Claude and ChatGPT.

Claude Code (remote)

With an API key:

claude mcp add --transport http krova https://krova.cloud/mcp --header "Authorization: Bearer kro_..."

Leave out --header to sign in with OAuth instead.

Other MCP clients

Send your API key in an Authorization: Bearer kro_... header on each request to https://krova.cloud/mcp.

The local stdio setup below is unchanged and still supported.

Client setup

All clients use the same launch command (npx -y @krovacloud/mcp) and the same environment variables. Set at least KROVA_API_KEY; set KROVA_SPACE_ID too if you want the Cube tools to default to one Space.

Claude Desktop

Edit claude_desktop_config.json (Settings → Developer → Edit Config, or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS / %APPDATA%\Claude\claude_desktop_config.json on Windows) and add:

{

"mcpServers": { "krova": { "command": "npx", "args": ["-y", "@krovacloud/mcp"], "env": { "KROVA_API_KEY": "kro_your_api_key_here", "KROVA_SPACE_ID": "space_optional_default" } } } }

Restart Claude Desktop. The Krova Cloud tools appear under the tools (🔨) menu.

Claude Code

Add the server with one command:

claude mcp add krova \

--env KROVA_API_KEY=kro_your_api_key_here \ --env KROVA_SPACE_ID=space_optional_default \ -- npx -y @krovacloud/mcp

Or add it to .mcp.json in your project root (checked in, shared with your team):

{

"mcpServers": { "krova": { "command": "npx", "args": ["-y", "@krovacloud/mcp"], "env": { "KROVA_API_KEY": "kro_your_api_key_here", "KROVA_SPACE_ID": "space_optional_default" } } } }

Verify with claude mcp list.

Cursor

Create .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects):

{

"mcpServers": { "krova": { "command": "npx", "args": ["-y", "@krovacloud/mcp"], "env": { "KROVA_API_KEY": "kro_your_api_key_here", "KROVA_SPACE_ID": "space_optional_default" } } } }

Then enable the krova server in Cursor Settings → MCP.

Any other MCP client

Any client that speaks MCP over stdio works — launch npx -y @krovacloud/mcp with the environment variables set. The config shape above is portable across VS Code (Copilot), Windsurf, Zed, and custom agents built on the MCP SDK.

Configuration

The server is configured entirely through environment variables:

VariableRequiredDescription
KROVA_API_KEYyesYour Krova Cloud API key (kro_...). Scoped to a Space; inherits the permissions of the membership that created it.
KROVA_SPACE_IDnoA default Space id, so Cube tools can omit spaceId.
KROVA_BASE_URLnoOverride the API base URL (defaults to the Krova Cloud production API).

Tools

All 37 tools, their parameters, and what they do. Every tool's spaceId is optional when KROVA_SPACE_ID is set.

ToolParametersDescription
list_cubesspaceId?List all Cubes (Firecracker microVMs) in a Space.
get_cubespaceId?, cubeIdGet details for a single Cube by id.
get_cube_sshspaceId?, cubeIdHost, port, login user and pinned host keys for SSH. host is the Cube's own stable SSH hostname — not the server's IP — and survives migration to another server; it falls back to the server's public IPv4 only when the Cube has no DNS record yet. Call this rather than guessing a username — it is ubuntu/debian on newer Cubes and root on older ones, and cannot be derived from the image id.
create_cubespaceId?, name, image, vcpu, ramGb, diskGb, sshPublicKey, region?, userData?Provision a new Cube. Asynchronous — the returned Cube starts in a pending state. Billable. Destructive.
power_off_cubespaceId?, cubeIdPower off a running Cube (releases compute + host RAM, keeps disk). Asynchronous.
wake_cubespaceId?, cubeIdStart a stopped Cube. Asynchronous.
restart_cubespaceId?, cubeIdRestart a running Cube. This is a COLD restart — the Cube boots against the host's current kernel, so it is the only way to pick up a refreshed guest kernel (a reboot issued inside the Cube cannot, and reports no error). Disk state is preserved. Asynchronous; a concurrent restart is rejected, not queued.
delete_cubespaceId?, cubeIdDelete a Cube. Asynchronous — deletion is enqueued. Destructive.
protect_cubespaceId?, cubeIdTurn on termination protection: delete_cube is refused with 409 until it is turned off. Power-off, wake, restart, snapshot and restore stay allowed. Idempotent.
unprotect_cubespaceId?, cubeIdTurn termination protection off, so delete_cube works again. Idempotent.
list_regions—List regions with available capacity.
list_images—List available OS images for new Cubes.
get_pricing—Get per-resource hourly rates and volume pricing tiers.
list_domainsspaceId?, cubeIdList the custom domains attached to a Cube.
get_domain_recordsspaceId?, cubeId, mappingIdThe DNS records a domain needs, each checked against live DNS — missing means not published yet (expected before the user creates them, never an error), and summary.complete turns true once every record is found. Performs real DNS lookups; rate limited.
create_domainspaceId?, cubeId, domain, port, originScheme?, proxyProtocol?, confirmMixedProxyProtocol?Attach a custom domain to a Cube. Returns the domain and the DNS records to publish — relay them verbatim.
update_domainspaceId?, cubeId, mappingId, originScheme?, proxyProtocol?, confirmMixedProxyProtocol?Change a domain's proxy settings: the origin scheme, and the PROXY protocol header (v1, v2 or off) that names the visitor on each connection to the Cube. Pass at least one; what you leave out keeps its value.
delete_domainspaceId?, cubeId, mappingIdDetach a custom domain. Destructive.
list_snapshotsspaceId?, cubeIdList a Cube's disk snapshots.
create_snapshotspaceId?, cubeId, name?Snapshot a Cube's disk. Asynchronous.
delete_snapshotspaceId?, cubeId, snapshotIdDelete a snapshot. Destructive.
restore_cubespaceId?, cubeId, snapshotIdRestore a Cube's disk from a snapshot — replaces the disk. Destructive.
list_backupsspaceId?List the space's backups, newest first. sharedFromBackupId is set on a copy another space shared with this one.
get_backupspaceId?, backupIdGet one backup.
share_backupspaceId?, backupId, destinationSpaceIdOffer a copy of a backup to another space. Nothing is copied until the destination accepts within 48 hours; the copy is then its own and billed to it. Destructive (it hands a copy of the disk to another space).
list_backup_sharesspaceId?Pending shares into (incoming) and out of (outgoing) the space.
accept_backup_sharespaceId?, shareIdAccept a backup shared with the space. The space pays backup storage for its copy from now. Destructive (it adds a bill).
decline_backup_sharespaceId?, shareIdDecline a backup shared with the space. Nothing is copied.
cancel_backup_sharespaceId?, shareIdWithdraw a pending share the space offered.
list_tcp_mappingsspaceId?, cubeIdList a Cube's TCP port mappings.
create_tcp_mappingspaceId?, cubeId, cubePort, whitelistedIps?Expose a Cube TCP port on the host. whitelistIps is still accepted as a deprecated alias.
delete_tcp_mappingspaceId?, cubeId, mappingIdRemove a TCP port mapping. Destructive.
list_webhooksspaceId?List the webhook endpoints in the space, with their events and whether each is enabled.
get_webhookspaceId?, endpointIdGet one webhook endpoint. The signing secret is never returned here.
create_webhookspaceId?, url, events, description?Create a webhook endpoint. The signing secret is returned only in this response; persist it immediately.
delete_webhookspaceId?, endpointIdDelete a webhook endpoint and its delivery history. Destructive.
list_webhook_deliveriesspaceId?, endpointId, limit?The last 30 days of delivery attempts for an endpoint, newest first (max 100).

Every tool advertises MCP annotations so your client can treat them appropriately: the sixteen read tools (list_cubes, get_cube, get_cube_ssh, list_regions, list_images, get_pricing, list_domains, get_domain_records, list_snapshots, list_backups, get_backup, list_backup_shares, list_tcp_mappings, list_webhooks, get_webhook, list_webhook_deliveries) are marked read-only, while the nine destructive tools (create_cube, delete_cube, delete_domain, delete_snapshot, restore_cube, share_backup, accept_backup_share, delete_tcp_mapping, delete_webhook) are marked destructive. update_domain mutates but is idempotent and reversible, so it is not. Most MCP clients surface a confirmation prompt before running a destructive tool — keep that confirmation on, since an LLM driven by untrusted content could be induced to call one.

The backup tools need the Backups permissions on the API key's member: View Backups to read, Manage Backups to share and answer shares. There is deliberately no download tool: the download link fetches the whole disk with no further authentication, and a model's conversation is the wrong place for it. Use krova backups download from the CLI.

create_cube parameters
ParamTypeNotes
namestringHuman-readable Cube name.

| image | string | OS image slug — s

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx