# Pixly (remote · pixly.gg)

Host and manage Minecraft servers, mods, worlds and backups on Pixly.

- Trust score: 66/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `pixly.gg`: 66/100 (this document), [markdown](https://verifymcp.io/servers/gg-pixly-mcp/api-mcp.md), [page](https://verifymcp.io/servers/gg-pixly-mcp/api-mcp)

## Channel facts

- Endpoint: `https://pixly.gg/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (deleteServer).
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 4069 tokens (~92/item across 44 items; 44 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 67/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 45 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Pixly MCP server?

Pixly is a hosted endpoint at https://pixly.gg/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http gg-pixly-mcp 'https://pixly.gg/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "gg-pixly-mcp": {
      "url": "https://pixly.gg/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "gg-pixly-mcp": {
      "type": "http",
      "url": "https://pixly.gg/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.gg-pixly-mcp]
url = "https://pixly.gg/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gg-pixly-mcp": {
      "type": "remote",
      "url": "https://pixly.gg/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gg-pixly-mcp --url 'https://pixly.gg/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  gg-pixly-mcp:
    url: "https://pixly.gg/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "gg-pixly-mcp": {
      "Transport": "http",
      "Url": "https://pixly.gg/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add gg-pixly-mcp -t streamable-http -u 'https://pixly.gg/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "gg-pixly-mcp": {
      "type": "http",
      "url": "https://pixly.gg/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 66, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “getBalance” rewrote its description, which is the text the model reads

### 2026-11-03 (score 65, +1)

- [security] Tool “getServerUsage” rewrote its description, which is the text the model reads

### 2026-11-01 (score 64, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 63, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-30 (score 63)

First indexed and scored.

## MCP tools (44)

### `getBedrockRange` (~52 tokens)

Check which versions support Bedrock players

Returns the Java version range Bedrock players can join, for fabric, neoforge and spigot (Paper and its forks); an empty string means unknown. Check it before enabling config.bedrockEnabled.

### `listBills` (~59 tokens)

List your monthly bills

Lists past calendar months' bills, newest first, each with its cost per server. status pending means the month is closed but its bill is not final yet. Match each serverId to a name with listServers; a deleted server no longer appears there.

### `getMonthSpending` (~57 tokens)

Show this month's spend per server

Breaks this calendar month's spend so far down by server: cost, compute cost and time awake. Match each serverId to a name with listServers and name servers by that name. For the total and the balance use getBalance.

### `getLoaderVersions` (~55 tokens)

List available Minecraft versions by server software

Lists the Minecraft versions each config.type can run, keyed by type. Use it before createServer or updateServer to choose config.version. VANILLA is omitted because it runs every version; a missing type means its list is unavailable.

### `getPricingCatalog` (~150 tokens)

Compare server prices by region and play schedule

Returns estimated monthly prices in US cents, as the site shows them, for every available region and size under three play schedules (casual, regular, evenings), plus always-on host references when available. Name each size by its memoryGb, adding vcpu when two sizes share the same memory; the size value is only for createServer. The hourly price the site shows for a size is its lowest monthlyCents divided by hoursPerMonth across the schedules, rounded to a whole cent and never below 1 cent. Use it to quote prices or choose region and size: pass a region's id (not awsRegion) as createServer region, and a size as size. Works without sign-in.

### `listServers` (~160 tokens)

List your Minecraft servers

Lists the account's servers with id, name, join address, region, size, settings, state and recent disk, memory and lag figures. runtime.loadCause, when present, says why a server keeps lagging with players on: memory (garbage collection), cpu-starved (one core shared with background work; a second core fixes it), run-bound (the world's own work; optimise rather than upsize) or unclassified. For when and how badly it lagged, use getServerMetrics. Use it to find the serverId other tools take, by the name the user knows. A server is online only when statusDetail is server-online; desiredState stopped means asleep. joinAttempts lists players the whitelist turned away (see dismissJoinAttempt).

### `createServer` (~117 tokens)

Create a Minecraft server

Creates a server, asleep and free until startServer or a joining player wakes it, and returns it with its id and join address. Region sets player latency and cannot change later: ask where players are if unknown; regions and size prices come from getPricingCatalog. Optional content from Modrinth, CurseForge or a link downloads on first start; uploaded files are added afterwards with the asset or modpack upload tools. Accounts hold a limited number of servers; at the limit, delete one with deleteServer.

Input parameters:

- `body` (object, required)

### `deleteServer` (~138 tokens)

Delete a server permanently

Permanently deletes the server with its world, settings, backups and exports, shutting it down if running. Call it only for a server the user named in this request, one server per call; for a request that names none or covers several, such as delete my servers, list them with listServers and ask which to delete first. For a fresh world use resetServer. To keep the world, first startBackupExport and download it with getBackupDownloadUrl. The user can also delete it on the Danger tab of the webUrl from listServers (webUrl followed by danger/). Returns deleted: true.

Input parameters:

- `path` (object, required)

### `updateServer` (~105 tokens)

Change a server's name, size or settings

Changes a server's name, size, settings, player lists, content, auto-start or custom domain. Omitted fields are kept, and a sent list replaces the stored one (uploaded files excepted). Not for the resource pack (setResourcePack) or a fresh world (resetServer). The returned server says when a restart is required (restartToApplySettings); a larger size costs more per running hour.

Input parameters:

- `body` (object, required)
- `path` (object, required)

### `startAssetUpload` (~139 tokens)

Start uploading a custom mod or plugin file

Only for an assistant that can send the user's file with HTTP PUT, such as a coding agent with a shell. Begins uploading one .jar or .zip mod, plugin, datapack or resource pack (up to 512 MiB, storage capped per server and account) and returns uploadId, key, fileName and parts: PUT each piece within an hour and keep each ETag. Then completeAssetUploads installs mods, plugins and datapacks, inspectAssetUpload checks a file or readies a resource pack for setResourcePack, and abortAssetUploads discards it.

Input parameters:

- `body` (object)
- `path` (object, required)

### `abortAssetUploads` (~52 tokens)

Cancel file uploads

Discards one or more (up to 50) unfinished or inspected uploads. Returns aborted and leftover. Installed files are removed with deleteAsset.

Input parameters:

- `body` (object)
- `path` (object, required)

### `completeAssetUploads` (~70 tokens)

Finish uploads and install the files

Installs one or more (up to 50) files from startAssetUpload calls; resource packs go through setResourcePack. Files failing a check are returned in rejected with key and error; the rest apply at the next restart.

Input parameters:

- `body` (object)
- `path` (object, required)

### `inspectAssetUpload` (~70 tokens)

Finish an upload and check the file

Completes a startAssetUpload and reports its kind, size and metadata without installing it. To install, pass it to completeAssetUploads, or setResourcePack with its key for a resource pack; abortAssetUploads discards it.

Input parameters:

- `body` (object)
- `path` (object, required)

### `deleteAsset` (~55 tokens)

Remove an uploaded file from a server

Uninstalls a custom mod, plugin or datapack file that was uploaded to the server and deletes the file, taking effect at the next restart. The file can only be recovered from a backup.

Input parameters:

- `path` (object, required)

### `listBackups` (~101 tokens)

List a server's backups

Lists backups newest first with backupId, startTime, sizeBytes, reason (daily, manual, upload, freeze, reset, config-change) and exportState (idle, exporting, ready). Pass backupId to restoreBackup, cancelBackupRestore, startBackupExport, getBackupDownloadUrl (exportState ready) or deleteBackup. Name a backup to the user by its time and reason; never show its backupId.

Input parameters:

- `path` (object, required)

### `createBackup` (~93 tokens)

Back up a server's world now

Takes a manual backup of the server's current world, which can later be restored or exported. Fails while the server is starting, stopping or restoring, before its first boot, or when the account balance is too low. Returns the backup as pending; listBackups shows it completed when done. Name a backup to the user by its time and reason; never show its backupId.

Input parameters:

- `path` (object, required)

### `deleteBackup` (~73 tokens)

Delete a backup

Permanently deletes one backup; this cannot be undone. A backup that is queued for restore or being exported cannot be deleted. For the only remaining copy of a world the call is refused with requiresConfirmation; ask the user, then repeat with confirm true.

Input parameters:

- `path` (object, required)
- `query` (object)

### `getBackupDownloadUrl` (~68 tokens)

Get the download link for an exported backup

Returns a signed link, valid for 6 hours, to download a backup exported with startBackupExport. Fails if the export is not ready yet; requires a paid account. Returns url (a .tar.gz for the user) and expiresAt.

Input parameters:

- `path` (object, required)

### `deleteBackupExport` (~37 tokens)

Delete a backup's downloadable export

Deletes the downloadable archive made by startBackupExport. The backup itself is kept and can be exported again.

Input parameters:

- `path` (object, required)

### `startBackupExport` (~77 tokens)

Export a backup as a downloadable file

Packages a backup into a downloadable archive. Requires a paid account and balance; refused while another upload, export or restore is pending (at most 3 per account). Poll listBackups until exportState is ready, then call getBackupDownloadUrl; if it returns to idle instead, the export failed.

Input parameters:

- `path` (object, required)

### `cancelBackupRestore` (~53 tokens)

Cancel a queued backup restore

Cancels a restore from restoreBackup that an online server has not applied yet. Pass the queued backupId. Fails if nothing is queued for it or it is already being applied.

Input parameters:

- `path` (object, required)

### `restoreBackup` (~90 tokens)

Restore a server's world from a backup

Replaces the whole world with the chosen backup. No backup of the current world is taken, so everything since that backup is lost unless you run createBackup first. An asleep server restores at once; an online server applies it at the next restartServer or restartToApplySettings, and until then cancelBackupRestore undoes it. A different backupId replaces a queued restore.

Input parameters:

- `path` (object, required)

### `getConsoleLogs` (~125 tokens)

Read a server's recent console output

Returns up to 200 recent console lines, including startup, oldest first. Use it to see why a server failed to start or what happened in game; it cannot run commands. Returns events, nextCursor (newer) and prevCursor (older); platform notices are left out, so a page can hold fewer lines, or none, while prevCursor still leads to older ones. degraded: true means the read timed out, retry. Show lines to the user in a code block, one per line.

Input parameters:

- `path` (object, required)
- `query` (object)

### `verifyCustomDomain` (~110 tokens)

Re-check a server's custom domain

Looks up the public DNS record of the custom domain set with updateServer customDomain and updates its status; use it after the user changes DNS. A record that points at the server verifies the domain and starts routing players to it. A failing record is reported with its reason and never takes a verified domain off the server; one whose record stays wrong is revoked later by Pixly's hourly check. Returns check.verified, with a reason on failure, and the server.

Input parameters:

- `path` (object, required)

### `dismissJoinAttempt` (~53 tokens)

Dismiss a blocked join attempt

Clears the notice for a player the whitelist turned away; it does not whitelist, kick or ban. To let them in, add them to whitelist with updateServer. Returns the server.

Input parameters:

- `path` (object, required)

### `keepServerAwake` (~72 tokens)

Keep a running server from falling asleep

Delays a running server's idle sleep by 5 minutes from now; it keeps being charged meanwhile. Use it while working on a server with no players online; to wake an asleep server use startServer. Fails with 409 if not running. Returns sleepAt.

Input parameters:

- `path` (object, required)

### `getServerMetrics` (~116 tokens)

Read a server's recent load and memory history

Returns the server's load samples over the last minutes (default 30, up to 360), oldest first, one about every 30 seconds while it runs. Each point has its time, memory use, tick load in permille (divide by 20 for milliseconds per tick; 1000 means the server is lagging) and peak players. Gaps mean the server was asleep or starting. Use it to explain when and why a server lagged.

Input parameters:

- `path` (object, required)
- `query` (object)

### `deleteModpack` (~60 tokens)

Remove the custom modpack from a server

Uninstalls the server's uploaded custom modpack and deletes the file, taking effect at the next restart. The world is kept, though the server may then suggest a world reset to clear content the pack left behind.

Input parameters:

- `path` (object, required)

### `startModpackUpload` (~118 tokens)

Start uploading a custom modpack

Only for an assistant that can send the user's file with HTTP PUT, such as a coding agent with a shell. Begins uploading a Modrinth .mrpack (up to 1 GiB). Returns uploadId, key, fileName and parts (url valid one hour): PUT each piece, keep each ETag, then completeModpackUpload. Refused when a modpack is set: deleteModpack removes an uploaded one, updateServer a catalog one.

Input parameters:

- `body` (object)
- `path` (object, required)

### `abortModpackUpload` (~60 tokens)

Cancel a modpack upload

Cancels an unfinished, or checked but not yet installed, modpack upload and discards the file. An installed modpack is not affected; remove it with deleteModpack.

Input parameters:

- `body` (object)
- `path` (object, required)

### `completeModpackUpload` (~68 tokens)

Finish a modpack upload and install it

Installs the .mrpack as the server's modpack, replacing loader, version and mods at the next restart; a backup is taken first. Pass uploadId, key and each ETag. Returns the server.

Input parameters:

- `body` (object)
- `path` (object, required)

### `inspectModpackUpload` (~63 tokens)

Finish a modpack upload and check it

Completes a startModpackUpload and returns its version, loader and contents without installing. To install, call completeModpackUpload with the same arguments; abortModpackUpload discards it.

Input parameters:

- `body` (object)
- `path` (object, required)

### `resetServer` (~114 tokens)

Reset a server's world

Replaces the world with a fresh one, keeping settings, content and address; for an earlier world use restoreBackup instead. A running server disconnects its players and comes back online on the new world. A reset backup of the current world is taken first and earlier backups are kept, but the archived world of a long-asleep server is discarded. The user can also reset it on the Danger tab of the webUrl from listServers (webUrl followed by danger/). Returns the server.

Input parameters:

- `path` (object, required)

### `setResourcePack` (~77 tokens)

Set or remove a server's resource pack

Sets the resource pack players are offered on join, from Modrinth, an uploaded .zip or a link; from: none removes it. It applies at the next restart (restartToApplySettings). Make it mandatory with resourcePackRequired in updateServer. Returns the server.

Input parameters:

- `body` (required)
- `path` (object, required)

### `restartServer` (~115 tokens)

Restart a whole server

Reboots a running server's machine; players are disconnected for a minute or two while it boots and fetches its content from Modrinth, CurseForge or their download links. Use it for a pending size change or a stuck server; for changed game settings use restartToApplySettings. A restore queued with restoreBackup replaces the world during the reboot, and the restart needs enough account balance for the server's size. Fails unless the server is running (use startServer); returns the server.

Input parameters:

- `path` (object, required)

### `restartToApplySettings` (~109 tokens)

Restart a server to apply changed settings

Restarts only the Minecraft program on an online server so changed settings apply; players drop for a few seconds while it reloads content from Modrinth, CurseForge or their download links. Use it when the server reports a restart is required; for a size change use restartServer. If a pending change needs a full reboot (size, or a restore queued with restoreBackup) it reboots the machine instead. Fails unless online (use startServer).

Input parameters:

- `path` (object, required)

### `startServer` (~116 tokens)

Start a server

Wakes an asleep server so players can join it from the internet at its address; not for an online server (use restartServer). While booting it fetches its mods, plugins and modpack from Modrinth, CurseForge or their download links, and a backup queued with restoreBackup replaces the current world. Starting needs enough account balance for the server's size, which pays for the running server. Returns the server; poll listServers until statusDetail is server-online, a few minutes later.

Input parameters:

- `path` (object, required)

### `stopServer` (~69 tokens)

Stop a server

Shuts a running server down so it sleeps, disconnecting players and ending running charges; world and settings are kept. For a reboot use restartServer. While autoStartEnabled is on, a joining player wakes it (turn off with updateServer). Returns the server.

Input parameters:

- `path` (object, required)

### `startWorldUpload` (~118 tokens)

Start uploading a world archive

Only for an assistant that can send the user's file with HTTP PUT, such as a coding agent with a shell. Begins uploading a world archive (.zip, .tar.gz, .tgz; up to 4 GiB). Returns jobId, uploadId, key and parts (partNumber, url valid one hour): PUT each piece to its url, keep each ETag, then call completeWorldUpload. Refused while another upload, export or restore is pending.

Input parameters:

- `body` (object)
- `path` (object, required)

### `abortWorldUpload` (~53 tokens)

Cancel a world upload

Cancels an unfinished world upload and discards the parts uploaded so far. The server's current world is not affected. Only before completeWorldUpload.

Input parameters:

- `body` (object)
- `path` (object, required)

### `completeWorldUpload` (~96 tokens)

Finish a world upload and import it

Call after every piece is uploaded, with jobId, uploadId, key and each ETag. The current world is not changed: the archive is imported in the background (minutes) into a new backup with reason upload in listBackups. To play it, run restoreBackup with that backupId. Fails over 4 GiB or on low balance.

Input parameters:

- `body` (object)
- `path` (object, required)

### `refreshWorldUploadParts` (~55 tokens)

Renew the links for a world upload

Returns new one-hour links for pieces of a startWorldUpload whose links expired. Pass jobId, uploadId, key and the pieces still to upload.

Input parameters:

- `body` (object)
- `path` (object, required)

### `getServerUsage` (~165 tokens)

Read how much of its size a server used with players online

Returns the time the server spent with at least one player online in its latest unbroken run on its current size (its last 7 days with players, or more days back until they hold 8 hours), histograms of CPU, tick load, GC pause share, memory peak, the JVM's live set and memory outside its heap over that time, and suggestion: the smaller, cheaper size that would carry the same play, or null when the current size is needed or the evidence is too thin: at least 3 hours of play with a clear margin, or 8 hours otherwise. Use suggestion to answer whether the server can run on a smaller size; changing size is updateServer with the target size and applies on the next start.

Input parameters:

- `path` (object, required)

### `getBalance` (~73 tokens)

Show your Pixly balance and this month's spend

Shows the signed-in user's balance, this month's spend so far and projected total, and what awake servers cost per hour. Call it when the user asks about their balance or spending, or wants to add funds. It cannot add funds or take payments; funds are added in the Pixly dashboard, which dashboardUrl links to.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/gg-pixly-mcp/api-mcp#diagnostics

## Score history

- 2026-11-05: 66
- 2026-11-04: 65
- 2026-11-03: 65
- 2026-11-02: 64
- 2026-11-01: 64
- 2026-10-31: 63
- 2026-10-30: 63

## Common questions

### What is the Pixly MCP server?

Pixly is an MCP server listed in the public MCP registry as gg.pixly/mcp. Host and manage Minecraft servers, mods, worlds and backups on Pixly. This page covers its hosted endpoint (https://pixly.gg/api/mcp).

### Is the Pixly MCP server safe to use?

Pixly scores 66 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Pixly MCP server expose?

Pixly exposes 44 tools: getBedrockRange, listBills, getMonthSpending, getLoaderVersions, getPricingCatalog, and 39 more. Their descriptions and schemas cost roughly 3,876 tokens of context every time the server is loaded.

### Does the Pixly MCP server require authentication?

No. We connected to Pixly without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Pixly MCP server still maintained?

Pixly is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://pixly.gg/api/mcp
- Repository: https://github.com/Wroud/pixly-plugins
- Website: https://pixly.gg/
- Changelog RSS feed: https://verifymcp.io/servers/gg-pixly-mcp/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/gg-pixly-mcp/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/gg-pixly-mcp/api-mcp
