# mcpctl fish completions set -l commands status login logout config get describe delete logs create edit apply backup restore help # Disable file completions by default complete -c mcpctl -f # Global options complete -c mcpctl -s v -l version -d 'Show version' complete -c mcpctl -l daemon-url -d 'mcplocal daemon URL' -x complete -c mcpctl -l direct -d 'Bypass mcplocal, connect directly to mcpd' complete -c mcpctl -s h -l help -d 'Show help' # Top-level commands complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a status -d 'Show status and connectivity' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a login -d 'Authenticate with mcpd' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a logout -d 'Log out' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a config -d 'Manage configuration' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a get -d 'List resources' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a describe -d 'Show resource details' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a delete -d 'Delete a resource' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a logs -d 'Get instance logs' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a create -d 'Create a resource' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a edit -d 'Edit a resource' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a apply -d 'Apply configuration from file' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a backup -d 'Backup configuration' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a restore -d 'Restore from backup' complete -c mcpctl -n "not __fish_seen_subcommand_from $commands" -a help -d 'Show help' # Resource types for get/describe/delete/edit set -l resources servers instances secrets templates projects users groups rbac complete -c mcpctl -n "__fish_seen_subcommand_from get describe delete" -a "$resources" -d 'Resource type' complete -c mcpctl -n "__fish_seen_subcommand_from edit" -a 'servers projects' -d 'Resource type' # get/describe/delete options complete -c mcpctl -n "__fish_seen_subcommand_from get" -s o -l output -d 'Output format' -xa 'table json yaml' complete -c mcpctl -n "__fish_seen_subcommand_from describe" -s o -l output -d 'Output format' -xa 'detail json yaml' complete -c mcpctl -n "__fish_seen_subcommand_from describe" -l show-values -d 'Show secret values' # login options complete -c mcpctl -n "__fish_seen_subcommand_from login" -l url -d 'mcpd URL' -x complete -c mcpctl -n "__fish_seen_subcommand_from login" -l email -d 'Email address' -x complete -c mcpctl -n "__fish_seen_subcommand_from login" -l password -d 'Password' -x # config subcommands set -l config_cmds view set path reset claude-generate impersonate complete -c mcpctl -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from $config_cmds" -a view -d 'Show configuration' complete -c mcpctl -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from $config_cmds" -a set -d 'Set a config value' complete -c mcpctl -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from $config_cmds" -a path -d 'Show config file path' complete -c mcpctl -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from $config_cmds" -a reset -d 'Reset to defaults' complete -c mcpctl -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from $config_cmds" -a claude-generate -d 'Generate .mcp.json' complete -c mcpctl -n "__fish_seen_subcommand_from config; and not __fish_seen_subcommand_from $config_cmds" -a impersonate -d 'Impersonate a user' # create subcommands set -l create_cmds server secret project user group rbac complete -c mcpctl -n "__fish_seen_subcommand_from create; and not __fish_seen_subcommand_from $create_cmds" -a server -d 'Create a server' complete -c mcpctl -n "__fish_seen_subcommand_from create; and not __fish_seen_subcommand_from $create_cmds" -a secret -d 'Create a secret' complete -c mcpctl -n "__fish_seen_subcommand_from create; and not __fish_seen_subcommand_from $create_cmds" -a project -d 'Create a project' complete -c mcpctl -n "__fish_seen_subcommand_from create; and not __fish_seen_subcommand_from $create_cmds" -a user -d 'Create a user' complete -c mcpctl -n "__fish_seen_subcommand_from create; and not __fish_seen_subcommand_from $create_cmds" -a group -d 'Create a group' complete -c mcpctl -n "__fish_seen_subcommand_from create; and not __fish_seen_subcommand_from $create_cmds" -a rbac -d 'Create an RBAC binding' # logs options complete -c mcpctl -n "__fish_seen_subcommand_from logs" -l tail -d 'Number of lines' -x complete -c mcpctl -n "__fish_seen_subcommand_from logs" -l since -d 'Since timestamp' -x complete -c mcpctl -n "__fish_seen_subcommand_from logs" -s f -l follow -d 'Follow log output' # backup options complete -c mcpctl -n "__fish_seen_subcommand_from backup" -s o -l output -d 'Output file' -rF complete -c mcpctl -n "__fish_seen_subcommand_from backup" -s p -l password -d 'Encryption password' -x # restore options complete -c mcpctl -n "__fish_seen_subcommand_from restore" -s i -l input -d 'Input file' -rF complete -c mcpctl -n "__fish_seen_subcommand_from restore" -s p -l password -d 'Decryption password' -x complete -c mcpctl -n "__fish_seen_subcommand_from restore" -s c -l conflict -d 'Conflict strategy' -xa 'skip overwrite fail' # apply takes a file complete -c mcpctl -n "__fish_seen_subcommand_from apply" -s f -l file -d 'Configuration file' -rF complete -c mcpctl -n "__fish_seen_subcommand_from apply" -F # help completions complete -c mcpctl -n "__fish_seen_subcommand_from help" -a "$commands"