{"apiVersion":"v1","directorySlug":"levoria-mcp-86e98ee4be","title":"Levoria","description":null,"pageUrl":"https://www.mcpbundles.com/skills/levoria-mcp-86e98ee4be","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.levoria.store/mcp","hostedMcpUrl":null,"toolCount":100,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"store.levoria/levoria-mcp-86e98ee4be","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"health_check","description":"Check whether the Astra MCP process is alive and show safe configuration status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Health Check","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"health_check","displayName":"Health Check"},{"name":"ptero_list_servers","description":"List all Pterodactyl servers available to the configured Client API key.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Ptero List Servers","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_list_servers","displayName":"Ptero List Servers"},{"name":"ptero_list_server_aliases","description":"List configured human-readable Pterodactyl server aliases.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Ptero List Server Aliases","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_list_server_aliases","displayName":"Ptero List Server Aliases"},{"name":"ptero_get_server_resources","description":"Get current resource usage and power state for a Pterodactyl server. serverId may be a configured alias.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Get Server Resources","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_get_server_resources","displayName":"Ptero Get Server Resources"},{"name":"ptero_power_server","description":"Start, stop, restart, or kill a Pterodactyl server. Kill requires confirmKill=YES_KILL.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","signal"],"properties":{"signal":{"enum":["start","stop","restart","kill"],"type":"string"},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"confirmKill":{"type":"string"}}},"title":"Ptero Power Server","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_power_server","displayName":"Ptero Power Server"},{"name":"ptero_send_console_command","description":"Send a command to the Pterodactyl server console, not to the VPS shell.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","command"],"properties":{"command":{"type":"string","maxLength":2000,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Send Console Command","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_send_console_command","displayName":"Ptero Send Console Command"},{"name":"ptero_list_files","description":"List files in a Pterodactyl server directory.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"directory":{"type":"string","default":"/","maxLength":4096,"minLength":1}}},"title":"Ptero List Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_list_files","displayName":"Ptero List Files"},{"name":"ptero_batch_list","description":"List multiple Pterodactyl directories in one call. Each directory succeeds or fails independently.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","directories","maxConcurrency"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"directories":{"type":"array","items":{"type":"string","maxLength":4096,"minLength":1},"maxItems":100,"minItems":1},"maxConcurrency":{"type":"integer","maximum":20,"minimum":1}}},"title":"Ptero Batch List","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_batch_list","displayName":"Ptero Batch List"},{"name":"ptero_read_file","description":"Read a text file from a Pterodactyl server. Large files are rejected by ASTRA_MAX_READ_BYTES.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Read File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_read_file","displayName":"Ptero Read File"},{"name":"ptero_batch_read_files","description":"Read multiple Pterodactyl text files concurrently in one MCP call. Mixed success/failure results are returned independently.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","files","maxConcurrency"],"properties":{"files":{"type":"array","items":{"type":"string","maxLength":4096,"minLength":1},"maxItems":100,"minItems":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"maxConcurrency":{"type":"integer","maximum":20,"minimum":1}}},"title":"Ptero Batch Read Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_batch_read_files","displayName":"Ptero Batch Read Files"},{"name":"ptero_read_file_range","description":"Read a byte range or line range from a Pterodactyl text file. Byte ranges work with files larger than ASTRA_MAX_READ_BYTES.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file","startByte","endByte","startLine","endLine"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"endByte":{"type":"integer","maximum":9007199254740991,"minimum":0},"endLine":{"type":"integer","maximum":9007199254740991,"minimum":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"startByte":{"type":"integer","maximum":9007199254740991,"minimum":0},"startLine":{"type":"integer","maximum":9007199254740991,"minimum":1}}},"title":"Ptero Read File Range","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_read_file_range","displayName":"Ptero Read File Range"},{"name":"ptero_head_file","description":"Read the first N lines of a Pterodactyl text file without loading the whole file.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file","lines"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"lines":{"type":"integer","default":100,"maximum":10000,"minimum":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Head File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_head_file","displayName":"Ptero Head File"},{"name":"ptero_tail_file","description":"Read the last N lines of a Pterodactyl text file without loading the whole file.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file","lines"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"lines":{"type":"integer","default":100,"maximum":10000,"minimum":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Tail File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_tail_file","displayName":"Ptero Tail File"},{"name":"ptero_get_latest_log","description":"Get the tail of /logs/latest.log from a Minecraft Pterodactyl server.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","lines"],"properties":{"lines":{"type":"integer","default":300,"maximum":10000,"minimum":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Get Latest Log","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_get_latest_log","displayName":"Ptero Get Latest Log"},{"name":"ptero_search_log","description":"Search the recent readable tail of a Minecraft log file for a string or regular expression.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","query","regex","caseSensitive","maxMatches"],"properties":{"file":{"type":"string","default":"/logs/latest.log","maxLength":4096,"minLength":1},"query":{"type":"string","maxLength":2000,"minLength":1},"regex":{"type":"boolean","default":false},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"maxMatches":{"type":"integer","default":100,"maximum":1000,"minimum":1},"caseSensitive":{"type":"boolean","default":false}}},"title":"Ptero Search Log","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_search_log","displayName":"Ptero Search Log"},{"name":"ptero_stat_file","description":"Get Pterodactyl file metadata without reading file contents. Optionally include SHA-256.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file","includeHash"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"includeHash":{"type":"boolean","default":false}}},"title":"Ptero Stat File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_stat_file","displayName":"Ptero Stat File"},{"name":"ptero_hash_file","description":"Compute SHA-256 for a Pterodactyl file.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Hash File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_hash_file","displayName":"Ptero Hash File"},{"name":"ptero_compare_files","description":"Compare two files on the same Pterodactyl server using size and SHA-256.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","a","b"],"properties":{"a":{"type":"string","maxLength":4096,"minLength":1},"b":{"type":"string","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Compare Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_compare_files","displayName":"Ptero Compare Files"},{"name":"ptero_write_file","description":"Create or overwrite a text file on a Pterodactyl server. Optionally backs up existing content to workspace first.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file","content","backupBeforeOverwrite"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"content":{"type":"string","maxLength":5242880},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"backupBeforeOverwrite":{"type":"boolean","default":true}}},"title":"Ptero Write File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_write_file","displayName":"Ptero Write File"},{"name":"ptero_replace_text","description":"Safely replace exact text in one Pterodactyl file. Supports occurrence checks and optional backup.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file","find","replace","replaceAll","expectedOccurrences","backupBeforeEdit"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"find":{"type":"string","minLength":1},"replace":{"type":"string"},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"replaceAll":{"type":"boolean","default":false},"backupBeforeEdit":{"type":"boolean","default":true},"expectedOccurrences":{"type":"integer","maximum":10000,"minimum":1}}},"title":"Ptero Replace Text","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_replace_text","displayName":"Ptero Replace Text"},{"name":"ptero_create_folder","description":"Create a folder on a Pterodactyl server.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","name"],"properties":{"name":{"type":"string","maxLength":255,"minLength":1},"root":{"type":"string","default":"/","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Create Folder","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_create_folder","displayName":"Ptero Create Folder"},{"name":"ptero_delete_files","description":"Delete files/folders from a Pterodactyl server. Requires confirmDelete=YES_DELETE.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","files","confirmDelete","compressBeforeDelete"],"properties":{"root":{"type":"string","default":"/","maxLength":4096,"minLength":1},"files":{"type":"array","items":{"type":"string","maxLength":255,"minLength":1},"maxItems":100,"minItems":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"confirmDelete":{"type":"string"},"compressBeforeDelete":{"type":"boolean","default":true}}},"title":"Ptero Delete Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_delete_files","displayName":"Ptero Delete Files"},{"name":"ptero_rename_files","description":"Rename or move files/folders inside one Pterodactyl server directory root.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","files"],"properties":{"root":{"type":"string","default":"/","maxLength":4096,"minLength":1},"files":{"type":"array","items":{"type":"object","required":["from","to"],"properties":{"to":{"type":"string","maxLength":255,"minLength":1},"from":{"type":"string","maxLength":255,"minLength":1}}},"maxItems":100,"minItems":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Rename Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_rename_files","displayName":"Ptero Rename Files"},{"name":"ptero_copy_file","description":"Copy a file or directory on a Pterodactyl server.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","location"],"properties":{"location":{"type":"string","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Copy File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_copy_file","displayName":"Ptero Copy File"},{"name":"ptero_compress_files","description":"Create an archive on a Pterodactyl server from selected files/folders.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","files"],"properties":{"root":{"type":"string","default":"/","maxLength":4096,"minLength":1},"files":{"type":"array","items":{"type":"string","maxLength":255,"minLength":1},"maxItems":100,"minItems":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Compress Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_compress_files","displayName":"Ptero Compress Files"},{"name":"ptero_decompress_file","description":"Extract an archive on a Pterodactyl server.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file"],"properties":{"file":{"type":"string","maxLength":255,"minLength":1},"root":{"type":"string","default":"/","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Decompress File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_decompress_file","displayName":"Ptero Decompress File"},{"name":"ptero_get_download_url","description":"Generate a signed download URL for a Pterodactyl server file.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Get Download Url","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_get_download_url","displayName":"Ptero Get Download Url"},{"name":"workspace_list","description":"List files in the local ASTRA_WORKSPACE_ROOT.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"path":{"type":"string","default":"."}}},"title":"Workspace List","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_list","displayName":"Workspace List"},{"name":"workspace_batch_list","description":"List multiple workspace directories in one MCP call. Mixed success/failure results are independent.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["paths","maxConcurrency"],"properties":{"paths":{"type":"array","items":{"type":"string","minLength":1},"maxItems":100,"minItems":1},"maxConcurrency":{"type":"integer","maximum":20,"minimum":1}}},"title":"Workspace Batch List","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_batch_list","displayName":"Workspace Batch List"},{"name":"workspace_read_file","description":"Read a text file inside ASTRA_WORKSPACE_ROOT.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path"],"properties":{"path":{"type":"string","minLength":1}}},"title":"Workspace Read File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_read_file","displayName":"Workspace Read File"},{"name":"workspace_batch_read_files","description":"Read multiple workspace text files concurrently in one MCP call. Mixed success/failure results are independent.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["paths","maxConcurrency"],"properties":{"paths":{"type":"array","items":{"type":"string","minLength":1},"maxItems":100,"minItems":1},"maxConcurrency":{"type":"integer","maximum":20,"minimum":1}}},"title":"Workspace Batch Read Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_batch_read_files","displayName":"Workspace Batch Read Files"},{"name":"workspace_read_file_range","description":"Read a byte or line range from a workspace file, including files larger than ASTRA_MAX_READ_BYTES.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","startByte","endByte","startLine","endLine"],"properties":{"path":{"type":"string","minLength":1},"endByte":{"type":"integer","maximum":9007199254740991,"minimum":0},"endLine":{"type":"integer","maximum":9007199254740991,"minimum":1},"startByte":{"type":"integer","maximum":9007199254740991,"minimum":0},"startLine":{"type":"integer","maximum":9007199254740991,"minimum":1}}},"title":"Workspace Read File Range","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_read_file_range","displayName":"Workspace Read File Range"},{"name":"workspace_head_file","description":"Read the first N lines of a workspace file.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","lines"],"properties":{"path":{"type":"string","minLength":1},"lines":{"type":"integer","default":100,"maximum":10000,"minimum":1}}},"title":"Workspace Head File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_head_file","displayName":"Workspace Head File"},{"name":"workspace_tail_file","description":"Read the last N lines of a workspace file without loading the entire file.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","lines"],"properties":{"path":{"type":"string","minLength":1},"lines":{"type":"integer","default":100,"maximum":10000,"minimum":1}}},"title":"Workspace Tail File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_tail_file","displayName":"Workspace Tail File"},{"name":"workspace_search_text","description":"Search text files inside ASTRA_WORKSPACE_ROOT. Unreadable files/directories are skipped and reported instead of aborting the whole search.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query","maxMatches","caseSensitive","regex","extensions","contextLines"],"properties":{"path":{"type":"string","default":"."},"query":{"type":"string","minLength":1},"regex":{"type":"boolean","default":false},"extensions":{"type":"array","items":{"type":"string","maxLength":32,"minLength":1},"maxItems":50},"maxMatches":{"type":"integer","default":100,"maximum":1000,"minimum":1},"contextLines":{"type":"integer","default":1,"maximum":10,"minimum":0},"caseSensitive":{"type":"boolean","default":false}}},"title":"Workspace Search Text","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_search_text","displayName":"Workspace Search Text"},{"name":"workspace_stat_file","description":"Get workspace file/directory metadata without reading its contents. Optionally include SHA-256 for files.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","includeHash"],"properties":{"path":{"type":"string","minLength":1},"includeHash":{"type":"boolean","default":false}}},"title":"Workspace Stat File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_stat_file","displayName":"Workspace Stat File"},{"name":"workspace_hash_file","description":"Compute SHA-256 for a workspace file.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path"],"properties":{"path":{"type":"string","minLength":1}}},"title":"Workspace Hash File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_hash_file","displayName":"Workspace Hash File"},{"name":"workspace_compare_files","description":"Compare two workspace files using size and SHA-256.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["a","b"],"properties":{"a":{"type":"string","minLength":1},"b":{"type":"string","minLength":1}}},"title":"Workspace Compare Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_compare_files","displayName":"Workspace Compare Files"},{"name":"workspace_write_file","description":"Create or atomically overwrite a text file inside ASTRA_WORKSPACE_ROOT.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","content"],"properties":{"path":{"type":"string","minLength":1},"content":{"type":"string","maxLength":5242880}}},"title":"Workspace Write File","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_write_file","displayName":"Workspace Write File"},{"name":"workspace_replace_text","description":"Safely replace exact text in one workspace file with occurrence checks and atomic write.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","find","replace","replaceAll","expectedOccurrences"],"properties":{"find":{"type":"string","minLength":1},"path":{"type":"string","minLength":1},"replace":{"type":"string"},"replaceAll":{"type":"boolean","default":false},"expectedOccurrences":{"type":"integer","maximum":10000,"minimum":1}}},"title":"Workspace Replace Text","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_replace_text","displayName":"Workspace Replace Text"},{"name":"workspace_create_folder","description":"Create a folder inside ASTRA_WORKSPACE_ROOT.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path"],"properties":{"path":{"type":"string","minLength":1}}},"title":"Workspace Create Folder","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_create_folder","displayName":"Workspace Create Folder"},{"name":"workspace_delete","description":"Delete a file/folder inside ASTRA_WORKSPACE_ROOT. Requires confirmDelete=YES_DELETE.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","recursive","confirmDelete"],"properties":{"path":{"type":"string","minLength":1},"recursive":{"type":"boolean","default":false},"confirmDelete":{"type":"string"}}},"title":"Workspace Delete","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_delete","displayName":"Workspace Delete"},{"name":"workspace_rename","description":"Rename or move a file/folder inside ASTRA_WORKSPACE_ROOT.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["from","to"],"properties":{"to":{"type":"string","minLength":1},"from":{"type":"string","minLength":1}}},"title":"Workspace Rename","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_rename","displayName":"Workspace Rename"},{"name":"workspace_copy","description":"Copy a file/folder inside ASTRA_WORKSPACE_ROOT.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["from","to"],"properties":{"to":{"type":"string","minLength":1},"from":{"type":"string","minLength":1}}},"title":"Workspace Copy","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_copy","displayName":"Workspace Copy"},{"name":"workspace_zip","description":"Zip a workspace file/folder into another workspace path.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["sourcePath","destinationZipPath"],"properties":{"sourcePath":{"type":"string","minLength":1},"destinationZipPath":{"type":"string","minLength":1}}},"title":"Workspace Zip","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_zip","displayName":"Workspace Zip"},{"name":"workspace_unzip","description":"Extract a workspace zip file into a workspace folder.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["zipPath","destinationDir"],"properties":{"zipPath":{"type":"string","minLength":1},"destinationDir":{"type":"string","minLength":1}}},"title":"Workspace Unzip","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_unzip","displayName":"Workspace Unzip"},{"name":"workspace_exec","description":"Run a restricted allowlisted command inside ASTRA_WORKSPACE_ROOT. Disabled unless ASTRA_ENABLE_WORKSPACE_EXEC=true; no shell is used.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["command","args","timeoutMs"],"properties":{"cwd":{"type":"string","default":"."},"args":{"type":"array","items":{"type":"string","maxLength":8192},"default":[],"maxItems":200},"command":{"type":"string","maxLength":128,"minLength":1},"timeoutMs":{"type":"integer","maximum":60000,"minimum":1000}}},"title":"Workspace Exec","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_exec","displayName":"Workspace Exec"},{"name":"workspace_git_status","description":"Run safe git status inside a workspace repository. Requires workspace exec to be enabled.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"cwd":{"type":"string","default":"."}}},"title":"Workspace Git Status","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_git_status","displayName":"Workspace Git Status"},{"name":"workspace_git_diff","description":"Show git diff inside a workspace repository. Requires workspace exec to be enabled.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["staged"],"properties":{"cwd":{"type":"string","default":"."},"staged":{"type":"boolean","default":false}}},"title":"Workspace Git Diff","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_git_diff","displayName":"Workspace Git Diff"},{"name":"workspace_git_log","description":"Show recent git commits inside a workspace repository. Requires workspace exec to be enabled.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["count"],"properties":{"cwd":{"type":"string","default":"."},"count":{"type":"integer","default":20,"maximum":100,"minimum":1}}},"title":"Workspace Git Log","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_git_log","displayName":"Workspace Git Log"},{"name":"workspace_git_show","description":"Show a git object/revision without invoking a shell. Requires workspace exec to be enabled.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"cwd":{"type":"string","default":"."},"revision":{"type":"string","default":"HEAD","maxLength":256,"minLength":1}}},"title":"Workspace Git Show","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_git_show","displayName":"Workspace Git Show"},{"name":"workspace_build_project","description":"Detect and build a Maven, Gradle, npm, or Python project inside the workspace using allowlisted commands. Requires workspace exec to be enabled.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"cwd":{"type":"string","default":"."}}},"title":"Workspace Build Project","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_build_project","displayName":"Workspace Build Project"},{"name":"transfer_server_file_to_workspace","description":"Download a Pterodactyl server file into ASTRA_WORKSPACE_ROOT.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","serverFile","workspacePath"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"serverFile":{"type":"string","maxLength":4096,"minLength":1},"workspacePath":{"type":"string","minLength":1}}},"title":"Transfer Server File To Workspace","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"transfer_server_file_to_workspace","displayName":"Transfer Server File To Workspace"},{"name":"transfer_workspace_file_to_server","description":"Upload a workspace file to a Pterodactyl server directory.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","workspacePath"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"workspacePath":{"type":"string","minLength":1},"serverDirectory":{"type":"string","default":"/","maxLength":4096,"minLength":1}}},"title":"Transfer Workspace File To Server","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"transfer_workspace_file_to_server","displayName":"Transfer Workspace File To Server"},{"name":"workspace_write_base64","description":"Write a binary file into the workspace from base64 data. Prefer raw upload or URL download for large files.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","base64"],"properties":{"path":{"type":"string","minLength":1},"base64":{"type":"string","minLength":1}}},"title":"Workspace Write Base64","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_write_base64","displayName":"Workspace Write Base64"},{"name":"workspace_batch_write_files","description":"Atomically write multiple workspace text files concurrently. Each file reports success or failure independently.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["files","maxConcurrency"],"properties":{"files":{"type":"array","items":{"type":"object","required":["path","content"],"properties":{"path":{"type":"string","minLength":1},"content":{"type":"string","maxLength":5242880}}},"maxItems":100,"minItems":1},"maxConcurrency":{"type":"integer","default":5,"maximum":5,"minimum":1}}},"title":"Workspace Batch Write Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_batch_write_files","displayName":"Workspace Batch Write Files"},{"name":"workspace_upload_endpoint","description":"Create the direct raw-upload endpoint details for a workspace destination. Send the file bytes with HTTP PUT.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path"],"properties":{"path":{"type":"string","minLength":1}}},"title":"Workspace Upload Endpoint","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_upload_endpoint","displayName":"Workspace Upload Endpoint"},{"name":"ptero_upload_endpoint","description":"Create direct raw-upload endpoint details for streaming a file into a Pterodactyl server directory.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","filename"],"properties":{"filename":{"type":"string","maxLength":255,"minLength":1},"serverId":{"type":"string","maxLength":64,"minLength":1},"directory":{"type":"string","default":"/"}}},"title":"Ptero Upload Endpoint","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_upload_endpoint","displayName":"Ptero Upload Endpoint"},{"name":"workspace_download_url","description":"Download an HTTP(S) file directly into the workspace with streaming size enforcement and optional SHA-256 verification.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["url","destinationPath","timeoutMs"],"properties":{"url":{"type":"string","format":"uri"},"headers":{"type":"object","propertyNames":{"type":"string","maxLength":256,"minLength":1},"additionalProperties":{"type":"string","maxLength":32768}},"timeoutMs":{"type":"integer","maximum":120000,"minimum":1000},"expectedSha256":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$"},"destinationPath":{"type":"string","minLength":1}}},"title":"Workspace Download Url","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_download_url","displayName":"Workspace Download Url"},{"name":"workspace_http_request","description":"Make an HTTP request and return a bounded text response for API checks, metadata lookup, and local application testing.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["url","timeoutMs"],"properties":{"url":{"type":"string","format":"uri"},"body":{"type":"string","maxLength":5242880},"method":{"enum":["GET","HEAD","POST","PUT","PATCH","DELETE"],"type":"string","default":"GET"},"headers":{"type":"object","propertyNames":{"type":"string","maxLength":256,"minLength":1},"additionalProperties":{"type":"string","maxLength":32768}},"timeoutMs":{"type":"integer","maximum":120000,"minimum":1000}}},"title":"Workspace Http Request","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_http_request","displayName":"Workspace Http Request"},{"name":"transfer_url_to_server","description":"Download a file from HTTP(S) into the workspace and upload it to a Pterodactyl server in one direct operation.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["url","workspacePath","serverId","timeoutMs"],"properties":{"url":{"type":"string","format":"uri"},"headers":{"type":"object","propertyNames":{"type":"string","maxLength":256,"minLength":1},"additionalProperties":{"type":"string","maxLength":32768}},"serverId":{"type":"string","maxLength":64,"minLength":1},"timeoutMs":{"type":"integer","maximum":120000,"minimum":1000},"workspacePath":{"type":"string","minLength":1},"expectedSha256":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$"},"serverDirectory":{"type":"string","default":"/"}}},"title":"Transfer Url To Server","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"transfer_url_to_server","displayName":"Transfer Url To Server"},{"name":"workspace_inspect_zip","description":"List and validate ZIP archive contents before extraction.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["zipPath","maxEntries"],"properties":{"zipPath":{"type":"string","minLength":1},"maxEntries":{"type":"integer","default":10000,"maximum":50000,"minimum":1}}},"title":"Workspace Inspect Zip","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_inspect_zip","displayName":"Workspace Inspect Zip"},{"name":"workspace_extract_zip","description":"Extract all or selected ZIP entries with include/exclude globs, optional leading-folder stripping, and overwrite control.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["zipPath","destinationDir","include","exclude","stripComponents","overwrite"],"properties":{"exclude":{"type":"array","items":{"type":"string","maxLength":512,"minLength":1},"maxItems":100},"include":{"type":"array","items":{"type":"string","maxLength":512,"minLength":1},"maxItems":100},"zipPath":{"type":"string","minLength":1},"overwrite":{"type":"boolean","default":true},"destinationDir":{"type":"string","minLength":1},"stripComponents":{"type":"integer","default":0,"maximum":100,"minimum":0}}},"title":"Workspace Extract Zip","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_extract_zip","displayName":"Workspace Extract Zip"},{"name":"workspace_discover_projects","description":"Discover projects, languages, manifests, repository instructions, and package scripts below a workspace path.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["maxDepth","maxProjects"],"properties":{"path":{"type":"string","default":"."},"maxDepth":{"type":"integer","default":6,"maximum":20,"minimum":0},"maxProjects":{"type":"integer","default":100,"maximum":500,"minimum":1}}},"title":"Workspace Discover Projects","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_discover_projects","displayName":"Workspace Discover Projects"},{"name":"workspace_find_files","description":"Find workspace files by glob without reading their contents. Common generated and dependency directories are skipped.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["patterns","exclude","maxResults","maxDepth"],"properties":{"path":{"type":"string","default":"."},"exclude":{"type":"array","items":{"type":"string","maxLength":512,"minLength":1},"default":[],"maxItems":100},"maxDepth":{"type":"integer","default":20,"maximum":100,"minimum":0},"patterns":{"type":"array","items":{"type":"string","maxLength":512,"minLength":1},"default":["**/*"],"maxItems":100,"minItems":1},"maxResults":{"type":"integer","default":1000,"maximum":10000,"minimum":1}}},"title":"Workspace Find Files","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_find_files","displayName":"Workspace Find Files"},{"name":"workspace_list_artifacts","description":"Find build artifacts such as JAR, ZIP, WAR, wheel, package, and native library files.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["maxResults"],"properties":{"path":{"type":"string","default":"."},"maxResults":{"type":"integer","default":200,"maximum":1000,"minimum":1}}},"title":"Workspace List Artifacts","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_list_artifacts","displayName":"Workspace List Artifacts"},{"name":"workspace_run_project_checks","description":"Detect the project type and synchronously run selected test, lint, typecheck, format, or build commands.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["checks","stopOnError"],"properties":{"cwd":{"type":"string","default":"."},"checks":{"type":"array","items":{"enum":["test","lint","typecheck","format","build"],"type":"string"},"default":["test","lint","typecheck","build"],"maxItems":5,"minItems":1},"stopOnError":{"type":"boolean","default":true}}},"title":"Workspace Run Project Checks","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_run_project_checks","displayName":"Workspace Run Project Checks"},{"name":"workspace_process_start","description":"Start an allowlisted long-running workspace process directly, such as a development server, and return its process ID.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["command","args"],"properties":{"cwd":{"type":"string","default":"."},"env":{"type":"object","propertyNames":{"type":"string","maxLength":128,"minLength":1},"additionalProperties":{"type":"string","maxLength":32768}},"args":{"type":"array","items":{"type":"string","maxLength":8192},"default":[],"maxItems":200},"stdin":{"type":"string","maxLength":5242880},"command":{"type":"string","maxLength":128,"minLength":1}}},"title":"Workspace Process Start","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_process_start","displayName":"Workspace Process Start"},{"name":"workspace_process_list","description":"List workspace processes started through this MCP server.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"title":"Workspace Process List","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_process_list","displayName":"Workspace Process List"},{"name":"workspace_process_get","description":"Get process state and incremental output after a sequence number.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["processId","afterSequence"],"properties":{"processId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"afterSequence":{"type":"integer","default":0,"maximum":9007199254740991,"minimum":0}}},"title":"Workspace Process Get","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_process_get","displayName":"Workspace Process Get"},{"name":"workspace_process_stop","description":"Stop a workspace process started through this MCP server.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["processId"],"properties":{"signal":{"enum":["SIGTERM","SIGINT","SIGHUP","SIGKILL"],"type":"string","default":"SIGTERM"},"processId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"title":"Workspace Process Stop","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_process_stop","displayName":"Workspace Process Stop"},{"name":"workspace_read_binary_base64","description":"Read a bounded workspace binary file as base64 with its SHA-256 hash.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["path","maxBytes"],"properties":{"path":{"type":"string","minLength":1},"maxBytes":{"type":"integer","default":1048576,"maximum":1048576,"minimum":1}}},"title":"Workspace Read Binary Base64","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"workspace_read_binary_base64","displayName":"Workspace Read Binary Base64"},{"name":"ptero_read_binary_base64","description":"Read a bounded Pterodactyl server binary file as base64 with its SHA-256 hash.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file","maxBytes"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"maxBytes":{"type":"integer","default":1048576,"maximum":1048576,"minimum":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Read Binary Base64","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_read_binary_base64","displayName":"Ptero Read Binary Base64"},{"name":"minecraft_inspect_workspace_plugin_jar","description":"Inspect plugin descriptors and manifest metadata in a workspace JAR without executing it.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["file"],"properties":{"file":{"type":"string","minLength":1}}},"title":"Minecraft Inspect Workspace Plugin Jar","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"minecraft_inspect_workspace_plugin_jar","displayName":"Minecraft Inspect Workspace Plugin Jar"},{"name":"minecraft_inspect_server_plugin_jar","description":"Download and inspect plugin descriptors and manifest metadata in a Pterodactyl server JAR without executing it.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","file"],"properties":{"file":{"type":"string","maxLength":4096,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Minecraft Inspect Server Plugin Jar","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"minecraft_inspect_server_plugin_jar","displayName":"Minecraft Inspect Server Plugin Jar"},{"name":"minecraft_search_plugins","description":"Search Modrinth or Hangar for Minecraft server plugins with optional game-version and Folia filters.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source","query","foliaOnly","limit"],"properties":{"limit":{"type":"integer","default":20,"maximum":100,"minimum":1},"query":{"type":"string","maxLength":256,"minLength":1},"source":{"enum":["modrinth","hangar"],"type":"string"},"foliaOnly":{"type":"boolean","default":false},"gameVersion":{"type":"string","maxLength":64,"minLength":1}}},"title":"Minecraft Search Plugins","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"minecraft_search_plugins","displayName":"Minecraft Search Plugins"},{"name":"minecraft_resolve_plugin","description":"Resolve a compatible Modrinth or Hangar plugin version and return its download, hash, loader, dependency, and Folia metadata without installing it.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["source","projectId"],"properties":{"loader":{"type":"string","default":"paper","maxLength":64,"minLength":1},"source":{"enum":["modrinth","hangar"],"type":"string"},"version":{"type":"string","maxLength":191,"minLength":1},"projectId":{"type":"string","maxLength":191,"minLength":1},"gameVersion":{"type":"string","maxLength":64,"minLength":1}}},"title":"Minecraft Resolve Plugin","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"minecraft_resolve_plugin","displayName":"Minecraft Resolve Plugin"},{"name":"ptero_start_server","description":"Start a server and wait for its resulting power state.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","timeoutMs"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"timeoutMs":{"type":"integer","default":45000,"maximum":120000,"minimum":1000}}},"title":"Ptero Start Server","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_start_server","displayName":"Ptero Start Server"},{"name":"ptero_stop_server","description":"Gracefully stop a server and wait for it to become offline.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","timeoutMs"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"timeoutMs":{"type":"integer","default":45000,"maximum":120000,"minimum":1000}}},"title":"Ptero Stop Server","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_stop_server","displayName":"Ptero Stop Server"},{"name":"ptero_restart_server","description":"Restart a server and wait for it to return to running state.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","timeoutMs"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"timeoutMs":{"type":"integer","default":45000,"maximum":120000,"minimum":1000}}},"title":"Ptero Restart Server","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_restart_server","displayName":"Ptero Restart Server"},{"name":"ptero_kill_server","description":"Force-kill a server and wait for it to become offline. Requires explicit confirmation.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","timeoutMs","confirmKill"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"timeoutMs":{"type":"integer","default":45000,"maximum":120000,"minimum":1000},"confirmKill":{"type":"string","const":"YES_KILL"}}},"title":"Ptero Kill Server","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_kill_server","displayName":"Ptero Kill Server"},{"name":"ptero_get_server_console","description":"Get the latest buffered live console lines, optionally filtered by text or event type.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","lines","events"],"properties":{"lines":{"type":"integer","default":200,"maximum":2000,"minimum":1},"events":{"type":"array","items":{"enum":["console output","install output","transfer logs","daemon message","daemon error","status"],"type":"string"},"maxItems":6},"filter":{"type":"string","maxLength":500,"minLength":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Get Server Console","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_get_server_console","displayName":"Ptero Get Server Console"},{"name":"ptero_tail_server_console","description":"Read live console lines after a cursor. Can wait briefly for new output without creating a queue.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","cursor","waitMs","maxLines","events"],"properties":{"cursor":{"type":"integer","default":0,"maximum":9007199254740991,"minimum":0},"events":{"type":"array","items":{"enum":["console output","install output","transfer logs","daemon message","daemon error","status"],"type":"string"},"maxItems":6},"filter":{"type":"string","maxLength":500,"minLength":1},"waitMs":{"type":"integer","default":0,"maximum":30000,"minimum":0},"maxLines":{"type":"integer","default":500,"maximum":2000,"minimum":1},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Tail Server Console","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_tail_server_console","displayName":"Ptero Tail Server Console"},{"name":"ptero_get_server_configuration","description":"Inspect server details, startup command and variables, Docker images, resource state, limits, and allocations in one call.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Get Server Configuration","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_get_server_configuration","displayName":"Ptero Get Server Configuration"},{"name":"ptero_set_startup_variable","description":"Set an editable Pterodactyl egg startup variable, such as the server JAR or JVM flags variable.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","key","value"],"properties":{"key":{"type":"string","maxLength":191,"minLength":1},"value":{"type":"string","maxLength":16384},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1}}},"title":"Ptero Set Startup Variable","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_set_startup_variable","displayName":"Ptero Set Startup Variable"},{"name":"ptero_set_docker_image","description":"Set the server Docker image to one of the egg's allowed images, enabling supported Java version changes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","dockerImage"],"properties":{"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"dockerImage":{"type":"string","maxLength":191,"minLength":1}}},"title":"Ptero Set Docker Image","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_set_docker_image","displayName":"Ptero Set Docker Image"},{"name":"ptero_manage_allocation","description":"List, create, annotate, set primary, or delete server allocations through the Pterodactyl Client API.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","operation","allocationId"],"properties":{"notes":{"anyOf":[{"type":"string","maxLength":191},{"type":"null"}]},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"operation":{"enum":["list","create","update_notes","set_primary","delete"],"type":"string"},"allocationId":{"type":"integer","maximum":9007199254740991,"exclusiveMinimum":0},"confirmDelete":{"type":"string","const":"YES_DELETE"}}},"title":"Ptero Manage Allocation","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_manage_allocation","displayName":"Ptero Manage Allocation"},{"name":"ptero_manage_database","description":"List, create, or delete Pterodactyl-managed databases. SQL execution requires separate database credentials and is not provided by the Client API.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["serverId","operation"],"properties":{"remote":{"type":"string","default":"%","maxLength":191,"minLength":1},"database":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","maxLength":48,"minLength":3},"serverId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":64,"minLength":1},"operation":{"enum":["list","create","delete"],"type":"string"},"databaseId":{"type":"string","pattern":"^[A-Za-z0-9._-]+$","maxLength":191,"minLength":1},"confirmDelete":{"type":"string","const":"YES_DELETE"}}},"title":"Ptero Manage Database","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"ptero_manage_database","displayName":"Ptero Manage Database"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Levoria&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AubGV2b3JpYS5zdG9yZS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Levoria%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.levoria.store%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Levoria%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.levoria.store%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Levoria&connectorUrl=https%3A%2F%2Fmcp.levoria.store%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Levoria\" --url \"https://mcp.levoria.store/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/levoria-mcp-86e98ee4be","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/levoria-mcp-86e98ee4be/tools/{tool}","mcpServerUrl":"https://mcp.levoria.store/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/levoria-mcp-86e98ee4be?live=1"}