MCPDactyl
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCPDACTYL_TOOLS | No | Which API surface to expose: client, admin, or all. Default client. | client |
| MCPDACTYL_PANELS | No | JSON seed of panels read at boot, never written to disk. Example: [{"name":"prod","baseUrl":"https://panel","clientKey":"ptlc_…"}] | |
| MCPDACTYL_SEALED | No | Set to 1 to hide the credential arguments and the panel-switching tools. | |
| MCPDACTYL_HTTP_HOST | No | HTTP transport host. Bind to a public host only behind auth/TLS. | |
| MCPDACTYL_HTTP_PORT | No | HTTP transport port. | |
| MCPDACTYL_STATELESS | No | Set to 1 to disable persistence; every call must carry inline credentials. | |
| MCPDACTYL_TRANSPORT | No | Transport to use: http or stdio. Default stdio. | stdio |
| MCPDACTYL_CONFIG_DIR | No | Override the config directory (default ~/.config/mcpdactyl). | |
| MCPDACTYL_HTTP_TOKEN | No | Set to require Authorization: Bearer <token> on every request to the HTTP endpoint. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| panel_addA | Register a Pterodactyl panel by name with its base URL and API key(s). Persisted locally (chmod 600). Re-adding the same name updates it. |
| panel_removeC | Delete a registered panel by name. |
| panel_useB | Set the active panel for this session. Tools called without an explicit panel arg use it. |
| panel_listA | List registered panels. API keys are masked. |
| panel_testB | Check which API keys work for a panel by making a lightweight request to each API. |
| server_listB | List servers the client API key can access on the selected panel. |
| server_getB | Get details for one server by its short identifier or UUID. |
| server_resourcesB | Current state and CPU / memory / disk / network usage for a server. |
| server_powerC | Send a power signal to a server: start, stop, restart, or kill. |
| server_commandC | Send a command to a running server's console. The server must be online. |
| server_activityC | Get the server's activity log. |
| server_startup_getB | Get the server's startup command and configurable variables. |
| server_set_variableC | Set the value of a startup environment variable. |
| server_renameC | Change the server's name and optionally its description. |
| server_reinstallB | Trigger a server reinstall. This can wipe server files; use with care. |
| server_docker_imageB | Change the server's Docker image (must be one allowed by its egg). |
| files_listC | List files and directories at a path on the server. |
| files_readA | Read the raw contents of a file. Use for text/config files; large or binary files are better downloaded. |
| files_writeB | Write raw content to a file, creating or overwriting it. |
| files_renameC | Rename or move a file/directory within the server. Paths are relative to root. |
| files_copyC | Copy a file or directory. The copy is placed next to the original. |
| files_mkdirC | Create a new folder under a root directory. |
| files_deleteC | Delete one or more files/directories under a root directory. |
| files_compressC | Create an archive from one or more files/directories under a root. |
| files_decompressC | Extract an archive file under a root directory. |
| files_chmodC | Set the mode (e.g. 644, 755) of a file under a root directory. |
| files_pullC | Download a remote URL directly onto the server. |
| files_download_urlB | Return a one-time signed URL to download a file (binary-safe). Fetch it outside the model context. |
| files_upload_urlB | Return a one-time signed URL to upload files to the server. directory is appended to the signed URL, because Wings reads the target folder from it and the panel's own response ignores it. |
| db_listC | List the server's databases. |
| db_createC | Create a new database on the server. |
| db_rotate_passwordC | Generate a new password for a database. |
| db_deleteC | Delete a database from the server. |
| schedule_listC | List the server's scheduled tasks. |
| schedule_getC | Get one schedule and its tasks. |
| schedule_createC | Create a schedule with a cron expression. |
| schedule_updateC | Update a schedule. Pterodactyl requires the full cron expression and name on update. |
| schedule_deleteC | Delete a schedule and its tasks. |
| schedule_executeC | Trigger a schedule to run immediately. |
| schedule_task_createC | Add a task. action is command, power, or backup; payload is the command, power signal, or ignored globs. |
| schedule_task_updateD | Update a task within a schedule. |
| schedule_task_deleteC | Remove a task from a schedule. |
| network_listC | List the server's network allocations (IP/port assignments). |
| network_assignB | Request a new allocation. With no ip/port the next available one is auto-assigned. |
| network_set_primaryC | Mark an allocation as the server's primary. |
| network_set_notesC | Update the notes on an allocation. |
| network_deleteC | Unassign an allocation from the server. |
| backup_listC | List the server's backups. |
| backup_createC | Start a new backup. ignored is a newline-separated list of glob patterns to exclude. |
| backup_getC | Get details for one backup. |
| backup_download_urlB | Return a one-time signed URL to download a backup. Fetch it outside the model context. |
| backup_restoreB | Restore a backup to the server. truncate wipes existing files first. |
| backup_toggle_lockB | Lock or unlock a backup (locked backups cannot be deleted or rotated out). |
| backup_deleteC | Delete a backup from the server. |
| subuser_listC | List users with access to the server. |
| subuser_getC | Get one subuser and their permissions. |
| subuser_createB | Add a user to the server by email with a set of permission keys (see permissions_list). |
| subuser_updateC | Replace a subuser's permission set. |
| subuser_set_filesA | Set which files and directories a subuser may not touch, on panels carrying the sftp-permissions addon. This is a route of its own: the fields are read back by subuser_list but sending them to subuser_update does nothing. Patterns are gitignore syntax, matched by wings — '.jar' matches at any depth, a trailing slash means a directory, and '!' re-allows a path. Note that wings anchors every negation to the server root, so an exception has to name its full path: '!/plugins/AxVaults/messages.yml' works where '!/messages.yml' does not. A root admin bypasses the list entirely. |
| subuser_deleteC | Remove a user's access to the server. |
| account_getB | Get the authenticated user's account details. |
| account_activityC | Get the account activity log. |
| permissions_listA | List all available subuser permission keys (use with subuser_create). |
| account_2fa_getB | Get the TOTP secret / QR image URL to enable two-factor authentication. |
| account_2fa_enableB | Enable two-factor authentication by confirming a TOTP code. Returns recovery tokens. |
| account_2fa_disableC | Disable two-factor authentication with the account password. |
| account_update_emailB | Change the account email. Requires the current password. |
| account_update_passwordC | Change the account password. |
| account_apikey_listB | List the account's client API keys. |
| account_apikey_createB | Create a new client API key. The secret is only returned once. |
| account_apikey_deleteC | Revoke a client API key by its identifier. |
| account_sshkey_listC | List the account's SSH keys. |
| account_sshkey_createC | Add an SSH public key to the account. |
| account_sshkey_removeC | Remove an SSH key from the account by fingerprint. |
| server_console_tailA | Open the console WebSocket, replay recent output and collect live output for a few seconds, then return it as text. The server should be running. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 75 tools
Tools are generally cleanly separated by resource and action, and adjacent tools like subuser_update vs subuser_set_files are explicitly distinguished. A few pairs remain close enough to require description-checking (files_pull vs files_upload_url, backup_download_url vs files_download_url, panel_list vs panel_test), but most boundaries are clear.
Names consistently use snake_case and a resource-prefixed pattern (backup_*, files_*, schedule_*, account_*). Minor deviations exist where the action is implicit or noun-like, such as server_resources, server_power, server_activity, and files_mkdir, but the convention remains readable and predictable.
At 75 tools, this surface is far beyond a reasonable tool count for an agent-facing MCP server and creates a heavy selection burden. The broad Pterodactyl management scope justifies many operations, but not this many in a single toolset.
Coverage is extensive across files, backups, schedules, network allocations, subusers, panels, and account management, with full lifecycle operations for most resources. Minor gaps remain around server-level creation/deletion or transfer/admin operations, but core workflows have no dead ends.