fix: use .[][].name in jq for wrapped JSON response

API returns { "resources": [...] } not bare arrays, so .[].name
produced no output. Use .[][].name to unwrap the outer object first.
Also auto-load .env in pr.sh.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Michal
2026-02-23 19:26:47 +00:00
parent 8d296b6b7c
commit 0a641491a4
4 changed files with 28 additions and 16 deletions

View File

@@ -46,7 +46,7 @@ _mcpctl() {
# If completing the --project value
if [[ "$prev" == "--project" ]]; then
local names
names=$(mcpctl get projects -o json 2>/dev/null | jq -r '.[].name' 2>/dev/null)
names=$(mcpctl get projects -o json 2>/dev/null | jq -r '.[][].name' 2>/dev/null)
COMPREPLY=($(compgen -W "$names" -- "$cur"))
return
fi
@@ -55,7 +55,7 @@ _mcpctl() {
_mcpctl_resource_names() {
local rt="$1"
if [[ -n "$rt" ]]; then
mcpctl get "$rt" -o json 2>/dev/null | jq -r '.[].name' 2>/dev/null
mcpctl get "$rt" -o json 2>/dev/null | jq -r '.[][].name' 2>/dev/null
fi
}

View File

@@ -72,12 +72,12 @@ function __mcpctl_resource_names
if test -z "$resource"
return
end
mcpctl get $resource -o json 2>/dev/null | jq -r '.[].name' 2>/dev/null
mcpctl get $resource -o json 2>/dev/null | jq -r '.[][].name' 2>/dev/null
end
# Fetch project names for --project value
function __mcpctl_project_names
mcpctl get projects -o json 2>/dev/null | jq -r '.[].name' 2>/dev/null
mcpctl get projects -o json 2>/dev/null | jq -r '.[][].name' 2>/dev/null
end
# --project value completion