PterodactylMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PANEL_URL | Yes | The URL of the Pterodactyl panel (e.g., https://panel.example.com) | |
| PANEL_TOKEN | Yes | Your Pterodactyl Application API key (usually starts with ptla_) | |
| PANEL_TIMEOUT | No | Timeout in seconds for API requests (default 30) | 30 |
| PANEL_USER_AGENT | No | Custom User-Agent header (default PterodactylMCP/0.1) | PterodactylMCP/0.1 |
| PANEL_VERIFY_SSL | No | Whether to verify SSL certificates (true/false, default true) | true |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ptero_app_list_endpointsA | List all Application API endpoints exposed as tools. |
| ptero_app_requestB | Make a raw Application API request (useful for endpoints not mapped as tools yet). |
| ptero_app_get_locationsD | GET /api/application/locations |
| ptero_app_get_locations_locationD | GET /api/application/locations/{location} |
| ptero_app_post_locationsD | POST /api/application/locations |
| ptero_app_patch_locations_locationD | PATCH /api/application/locations/{location} |
| ptero_app_delete_locations_locationD | DELETE /api/application/locations/{location} |
| ptero_app_get_nestsC | GET /api/application/nests |
| ptero_app_get_nests_nestD | GET /api/application/nests/{nest} |
| ptero_app_get_nests_nest_eggsD | GET /api/application/nests/{nest}/eggs |
| ptero_app_get_nests_nest_eggs_eggD | GET /api/application/nests/{nest}/eggs/{egg} |
| ptero_app_get_nodesD | GET /api/application/nodes |
| ptero_app_get_nodes_deployableD | GET /api/application/nodes/deployable |
| ptero_app_get_nodes_nodeD | GET /api/application/nodes/{node} |
| ptero_app_get_nodes_node_allocationsD | GET /api/application/nodes/{node}/allocations |
| ptero_app_get_nodes_node_configurationD | GET /api/application/nodes/{node}/configuration |
| ptero_app_post_nodesD | POST /api/application/nodes |
| ptero_app_post_nodes_node_allocationsD | POST /api/application/nodes/{node}/allocations |
| ptero_app_patch_nodes_nodeD | PATCH /api/application/nodes/{node} |
| ptero_app_delete_nodes_nodeD | DELETE /api/application/nodes/{node} |
| ptero_app_delete_nodes_node_allocations_allocationC | DELETE /api/application/nodes/{node}/allocations/{allocation} |
| ptero_app_get_serversA | GET /api/application/servers (raw; can be large — prefer ptero_ai_list_servers / ptero_ai_search_servers) |
| ptero_app_get_servers_external_external_idD | GET /api/application/servers/external/{external_id} |
| ptero_app_get_servers_serverD | GET /api/application/servers/{server} |
| ptero_app_post_serversD | POST /api/application/servers |
| ptero_app_patch_servers_server_detailsD | PATCH /api/application/servers/{server}/details |
| ptero_app_patch_servers_server_buildD | PATCH /api/application/servers/{server}/build |
| ptero_app_patch_servers_server_startupD | PATCH /api/application/servers/{server}/startup |
| ptero_app_post_servers_server_suspendD | POST /api/application/servers/{server}/suspend |
| ptero_app_post_servers_server_unsuspendD | POST /api/application/servers/{server}/unsuspend |
| ptero_app_post_servers_server_reinstallC | POST /api/application/servers/{server}/reinstall |
| ptero_app_delete_servers_serverD | DELETE /api/application/servers/{server} |
| ptero_app_get_servers_server_databasesC | GET /api/application/servers/{server}/databases |
| ptero_app_get_servers_server_databases_databaseC | GET /api/application/servers/{server}/databases/{database} |
| ptero_app_post_servers_server_databasesD | POST /api/application/servers/{server}/databases |
| ptero_app_post_servers_server_databases_database_reset_passwordD | POST /api/application/servers/{server}/databases/{database}/reset-password |
| ptero_app_delete_servers_server_databases_databaseD | DELETE /api/application/servers/{server}/databases/{database} |
| ptero_app_get_usersA | GET /api/application/users (raw; can be large — prefer ptero_ai_list_users / ptero_ai_search_users) |
| ptero_app_get_users_external_external_idD | GET /api/application/users/external/{external_id} |
| ptero_app_get_users_userD | GET /api/application/users/{user} |
| ptero_app_post_usersD | POST /api/application/users |
| ptero_app_patch_users_userD | PATCH /api/application/users/{user} |
| ptero_app_delete_users_userD | DELETE /api/application/users/{user} |
| ptero_ai_search_usersB | Fuzzy search users by username/email/name/external_id/uuid; returns compact top matches. |
| ptero_ai_search_serversB | Fuzzy search servers by name/identifier/uuid/external_id; returns compact top matches. |
| ptero_ai_list_usersB | List users (compact) with safe defaults to avoid huge responses. |
| ptero_ai_list_serversC | List servers (compact) with safe defaults to avoid huge responses. |
| ptero_ai_get_user_summaryC | Get a compact user summary (token-efficient). |
| ptero_ai_get_server_summaryC | Get a compact server summary (token-efficient). |
| ptero_ai_panel_totalsA | Return counts (totals) for common Application API resources (token-efficient). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| troubleshoot_server | Guided diagnostic walkthrough for a Pterodactyl server. |
| provision_user_and_server | Guided workflow to create a Pterodactyl user and then a server for them. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| panel_overview | Counts of common Pterodactyl resources (users, servers, nodes, locations, nests). |
TDQS
Scored across 50 tools
Tool names are very explicit but often long and repetitive (e.g., ptero_app_delete_nodes_node_allocations_allocation). The split between ptero_ai_ and ptero_app_ prefixes creates ambiguity, as both serve similar resources (e.g., list/search servers). Overall, an agent could distinguish them but with effort.
The naming follows a pattern (prefix + method + resource), but the two prefixes (ptero_ai_ vs ptero_app_) break consistency. The app tools use underscores to represent API paths, leading to very long names, while AI tools are shorter. Mixed conventions reduce predictability.
50 tools is high but reasonable for a comprehensive API wrapper. However, the presence of a generic request tool suggests the set is not fully scoped, and some tools duplicate functionality (e.g., multiple server list/search tools). A slightly leaner set would be better.
The tools cover CRUD for most resources (locations, nodes, servers, users) and operations like suspend/unsuspend. However, nests/eggs only have GET tools, missing POST/PATCH/DELETE. The inclusion of a generic request tool indicates gaps, making the surface incomplete.