Skip to content

Polish MCP server UX metadata and correct unknown-tool JSON-RPC semantics#31015

Merged
pelikhan merged 4 commits intomainfrom
copilot/add-icons-to-mcp-tools
May 8, 2026
Merged

Polish MCP server UX metadata and correct unknown-tool JSON-RPC semantics#31015
pelikhan merged 4 commits intomainfrom
copilot/add-icons-to-mcp-tools

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 8, 2026

This PR implements the MCP quick wins from the module review: complete tool icon coverage for client UX, document the reserved handler return slot, and fix unknown-tool error semantics in argument-validation middleware.

  • MCP tool metadata: icon coverage across all registered tools

    • Updated icon assignments to match the reviewed mapping where needed:
      • compile📋
      • logs📝
      • mcp-inspect🔬
      • audit-diff🔎
    • Existing correct mappings were preserved (status, audit, checks, add, update, fix).
  • Handler contract clarity: reserved any return value

    • Added a shared package-level comment near MCP server/tool registration clarifying that tool handlers use (*mcp.CallToolResult, any, error) and the second return value is a reserved SDK extension slot that should currently be nil.
  • JSON-RPC correctness: unknown tool names

    • In argumentValidationMiddleware, when the tool name is absent from mcpToolParams(), the branch now returns jsonrpc.CodeMethodNotFound instead of invalid-params behavior.
  • Targeted middleware test for unknown-tool behavior

    • Added a focused unit test verifying unknown tool names produce a JSON-RPC error with CodeMethodNotFound.
validParams, ok := toolParams[toolName]
if !ok {
    return nil, newMCPError(jsonrpc.CodeMethodNotFound, fmt.Sprintf("unknown MCP tool: %q", toolName), nil)
}

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name .cfg (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw util_test (http block)
    • Triggering command: /usr/bin/gh /usr/bin/gh api graphql -f query=query($owner: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } -f owner=github -f name=gh-aw chr/testify/requconfig (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name h ../../../.prettierignore --jq /usr/bin/infocmp /ref/tags/v9 git sv infocmp -1 w/js/**/*.json' --ignore-path git /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name led-with-body-content.md show /usr/bin/git .github/workflow/bin/sh --jq bject.type] | @techo "��� Action scripts synced successfully" git -C /tmp/gh-aw-test-runs/20260508-125615-26741/test-2363485225/.github/workflows remote _modules/.bin/node --show-toplevel git /usr/bin/git gh (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --show-toplevel /opt/hostedtoolcache/go/1.25.8/x2 /usr/bin/git licyMinIntegritygit -trimpath /usr/bin/infocmp--show-toplevel git rev-�� --show-toplevel infocmp /usr/bin/git runs/20260508-12gh -dwarf=false t git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --show-toplevel bash /usr/bin/gh runs/20260508-12git e/git epo.git gh --ve�� ache/node/24.14.xterm-color /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git -bool -buildtags /usr/bin/git git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv /ref/tags/v9 64/pkg/tool/linux_amd64/vet sv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/asm /usr/bin/infocmp 88/001 status /usr/bin/git infocmp -1 xterm-color git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv g_.a -buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/node/24.14.--jq /usr/bin/git /tmp/gh-aw-test-git config /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git /tmp/TestGuardPogit remote clusion,workflow--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/gh --show-toplevel 64/pkg/tool/linurev-parse /usr/bin/git gh api /repos/actions/setup-go/git/ref/tags/v4 --jq /usr/bin/infocmp --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/gh infocmp (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv t0 -goversion (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv /tmp/go-build2832078816/b453/stringutil.test -importcfg /usr/bin/git -s -w -buildmode=exe git init�� testing.testBinary=1 -extld=gcc /opt/hostedtoolcache/node/24.14.1/x64/bin/node 01 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --get remote.origin.url /usr/bin/git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv xterm-color git /usr/bin/git /tmp/file-trackegh /tmp/file-trackeapi 2078816/b405/cli/repos/actions/github-script/git/ref/tags/v9 git rev-�� --show-toplevel 2078816/b405/cli.test /usr/bin/infocmp /tmp/gh-aw-test-git rev-parse (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv xterm-color git /usr/bin/git user.name resolved$ /usr/bin/git git rev-�� --show-toplevel git /usr/bin/infocmp --show-toplevel x_amd64/vet /usr/bin/git infocmp (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv github/workflows -nolocalimports -importcfg /tmp/go-build2832078816/b418/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/envutil/envutil.go /home/REDACTED/work/gh-aw/gh-aw/pkg/envutil/envutil_test.go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv 2860676614/001' 2860676614/001' n-dir/git (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9.0.0
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --jq [.object.sha, .object.type] | @tsv -c=4 -nolocalimports -importcfg /tmp/go-build2832078816/b398/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/actionpins/spec_test.go (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9.0.0 --jq [.object.sha, .object.type] | @tsv github/workflows -nolocalimports -importcfg /tmp/go-build2832078816/b417/importcfg -pack /home/REDACTED/work/gh-aw/gh-aw/pkg/constants/spec_test.go (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel /opt/hostedtoolcrev-parse /usr/bin/gh 5451-13890/test-gh -buildtags .cfg gh api /repos/actions/github-script/git/ref/tags/v9 --jq /usr/bin/git 2078816/b437/pargit /tmp/go-build283rev-parse ache/go/1.25.8/x--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /repos/actions/github-script/git/ref/tags/v9 --jq /usr/bin/git RequiresMinInteginfocmp infocmp 424681/b125=> git rev-�� --show-toplevel sh /usr/bin/git 5831-30095/test-git 1/x64/bin/node kflows/test.lock--show-toplevel git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv secrets.TOKEN x_amd64/vet /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv xterm-color /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link /usr/bin/git /tmp/go-build283git -importcfg e/git git rev-�� --show-toplevel e/git /usr/bin/git -unreachable=falgit /tmp/go-build283rev-parse 2078816/b453/str--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv ithub-script/git/ref/tags/v9 git bject.type] | @tsv /tmp/TestGuardPogit (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv ry=1 config 2078816/b458/_pkg_.a remote.origin.urgh -nolocalimports -importcfg gh work�� list --json (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv image:v1.0.0 k/gh-aw/gh-aw/pkg/typeutil/convert_test.go /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv --show-toplevel x_amd64/vet r,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,disp--show-toplevel (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq /opt/hostedtoolcache/node/24.14.1/x64/bin/node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv Safe: ${{ github.actor }}, Unsafe: ${{ secrets.TOKEN }} l /usr/bin/git on' --ignore-patgit infocmp odules/npm/node_--show-toplevel git rev-�� --show-toplevel git er: String!, $name: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabl--show-toplevel submodules | heagit gh x_amd64/vet git (http block)
  • https://api.github.com/repos/aws-actions/configure-aws-credentials/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/aws-actions/configure-aws-credentials/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/node/24.14.1/x64/bin/node /usr/bin/git ere config /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git /tmp/gh-aw-test-gh show /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/aws-actions/configure-aws-credentials/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git /tmp/TestGuardPogh config /opt/hostedtoolc/repos/actions/github-script/git/ref/tags/v9 git rev-�� --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linu--jq /usr/bin/infocmp -bool -buildtags /usr/bin/git infocmp (http block)
    • Triggering command: /usr/bin/gh gh api /repos/aws-actions/configure-aws-credentials/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv -L current (local changes) /usr/bin/git base (original) -L new (upstream) git rev-�� --show-toplevel /tmp/gh-aw-merge-1618641911/new.md /usr/bin/git --show-toplevel git /usr/bin/git git (http block)
  • https://api.github.com/repos/azure/login/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/azure/login/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv --show-toplevel /tmp/go-build2832078816/b458/testutil.test /usr/bin/git -test.paniconexigit -test.v=true /usr/bin/git git rev-�� --show-toplevel git /usr/bin/gh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/azure/login/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv /repos/actions/github-script/git/ref/tags/v9 --jq /usr/bin/git -bool -buildtags /usr/bin/git git rev-�� --show-toplevel git /usr/bin/gh --show-toplevel -tests (http block)
  • https://api.github.com/repos/docker/login-action/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git /tmp/TestGuardPogit remote clusion,workflow--show-toplevel git rev-�� /ref/tags/v9 git sv --show-toplevel tImIOC-NY5wN me: String!) { xterm-color gh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/docker/login-action/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv --show-toplevel node /usr/bin/git /home/REDACTED/worgit /bin/sh Name,createdAt,s--show-toplevel git rev-�� /ref/tags/v9 infocmp sv xterm-color git "warnings":[]}] gh (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/gh 2555041087 /tmp/go-build283api e/git gh api /repos/actions/github-script/git/ref/tags/v9 --jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv /repos/actions/github-script/git/ref/tags/v9 --jq /usr/bin/git ithub/workflows/gh gh ache/go/1.25.8/x/repos/actions/github-script/git/ref/tags/v9 git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git prettier --write /home/REDACTED/.doxterm-color git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv /usr/bin/gh /opt/hostedtoolcgit-upload-pack '/tmp/TestParseDefaultBranchFromLsRemoteWithRealGitmaster_branchrev-parse /usr/bin/git 'default' || gitgit gh /usr/bin/git git -C /tmp/TestCompileErrorFormatting2457482056/001 config (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv /usr/bin/git l /usr/bin/gh xterm-color git /usr/bin/git gh api /repos/actions/github-script/git/ref/tags/v9 --jq /usr/bin/git ../pkg/workflow/git ementation plan rev-parse 64/pkg/tool/linu--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-05-01 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-04-08 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-02-07 (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name --local 64/pkg/tool/linux_amd64/compile core.hooksPath (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 2078816/b018/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet copilot.originalgit (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name gh 64/bin/node /repos/actions/ggh nly /usr/bin/infocmplist git tion�� ithub-script/git--limit infocmp son ignore /usr/bin/gh /usr/bin/git git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name --local ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet pull.rebase (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 63137c3cc76008b181d7eb9fe34546815 ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet core.hooksPath (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name --jq /usr/bin/git /repos/actions/ggit --jq /usr/bin/git git tion�� ithub-script/git/ref/tags/v9 git son ignore docker sv gh (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1234567890
    • Triggering command: /usr/bin/gh gh api repos/{owner}/{repo}/actions/runs/1234567890 --jq {databaseId: .id, number: .run_number, url: .html_url, status: .status, conclusion: .conclusion, workflowName: .name, workflowPath: .path, createdAt: .created_at, startedAt: .run_started_at, updatedAt: .updated_at, event: .event, headBranch: .head_branch, go1.25.8 -c=4 -nolocalimports -importcfg /tmp/go-build2832078816/b444/importcfg -pack /tmp/go-build2832078816/b444/_testmain.go (http block)
    • Triggering command: /usr/bin/gh gh api repos/{owner}/{repo}/actions/runs/1234567890 --jq {databaseId: .id, number: .run_number, url: .html_url, status: .status, conclusion: .conclusion, workflowName: .name, workflowPath: .path, createdAt: .created_at, startedAt: .run_started_at, updatedAt: .updated_at, event: .event, headBranch: .head_branch, h ../../../.pret.prettierignore git /node --show-toplevel git /usr/bin/git gh api /repos/actions/github-script/git/ref/tags/v9 --jq (http block)
    • Triggering command: /usr/bin/gh gh api repos/{owner}/{repo}/actions/runs/1234567890 --jq {databaseId: .id, number: .run_number, url: .html_url, status: .status, conclusion: .conclusion, workflowName: .name, workflowPath: .path, createdAt: .created_at, startedAt: .run_started_at, updatedAt: .updated_at, event: .event, headBranch: .head_branch, 327041834/001' 327041834/001' (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name --local ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet pull.rebase (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 --local 64/pkg/tool/linux_amd64/vet pull.rebase %H %ct %D (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name gh 1/x64/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node /repos/actions/ggit efb80906 /usr/bin/git echo "��� Action pins synced successfully"; \ elconfig tion�� ithout_min-integrity3801279223/001 --jq son ignore infocmp /usr/bin/infocmp infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name til_test.go x_amd64/link core.hooksPath (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 2078816/b023/vet.cfg ache/go/1.25.8/x64/pkg/tool/linu-nolocalimports copilot.originalgit (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name gh 1/x64/bin/node /repos/actions/ginfocmp nly /usr/bin/git git tion�� --show-toplevel git son ignore infocmp /usr/bin/gh gh (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name --local 64/pkg/tool/linux_amd64/vet core.hooksPath (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 2078816/b024/vet.cfg ache/go/1.25.8/x64/pkg/tool/linu-test.short=true copilot.originalgit (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name infocmp /usr/bin/git xterm-color nly /usr/bin/git git rev-�� mpiledOutput2456117507/001 git sh ignore git /usr/bin/infocmpuser.name infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name st.go ache/go/1.25.8/x64/pkg/tool/linu-importcfg core.hooksPath TloCCStfISaBj/H6-d (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 2078816/b020/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet copilot.originalgit onpins_test (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name gh /usr/bin/git /repos/actions/g/usr/bin/git nly /usr/bin/git git rev-�� mpiledOutput2456117507/001 git 1/x64/bin/node ignore git bject.type] | @tuser.email git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name --local 64/pkg/tool/linu-nilfunc core.hooksPath (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 2078816/b019/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet copilot.originalgit (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name infocmp 64/bin/go xterm-color nly (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build2832078816/b405/cli.test /tmp/go-build2832078816/b405/cli.test -test.testlogfile=/tmp/go-build2832078816/b405/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true (http block)
    • Triggering command: /tmp/go-build3491257815/b405/cli.test /tmp/go-build3491257815/b405/cli.test -test.testlogfile=/tmp/go-build3491257815/b405/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true --show-toplevel node /usr/bin/git infocmp -1 &1 git (http block)
    • Triggering command: /tmp/go-build555424681/b405/cli.test /tmp/go-build555424681/b405/cli.test -test.testlogfile=/tmp/go-build555424681/b405/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true l --jq (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git ub/gh-aw.git url ng.md git rev-�� --show-toplevel gh /usr/bin/git /repos/github/ghgit --jq /opt/hostedtoolc--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git user.email test@example.com-k /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git --show-toplevel infocmp om/other/repo.gi--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv --local gpg.program .cfg (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv --show-toplevel gh x_amd64/link json' --ignore-p/opt/hostedtoolcache/node/24.14.1/x64/bin/node --jq /usr/bin/git x_amd64/link add from .github/aw to pkg/actionpin-errorsas epo}/actions/runs/2/artifacts tions/node_modules/.bin/node e git /usr/bin/git BG/wUFnCAzn3LCOpXrRaWxB/QjAJILzI-q (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv ned-imports-enabled-with-env-template-expressions-in-body.md --jq (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv sv (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv json' --ignore-path ../../../.pr**/*.json git sv /ref/tags/v9 git sv git rev-�� th .prettierignoremote.origin.url git sv --show-toplevel git /usr/bin/git git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv iant-1798687967/.github/workflows --jq /usr/bin/git --show-toplevel git /usr/bin/git git rev-�� th .prettierignore --log-level=error git ode_modules/.bin/node ithub-script/gitgit git bject.type] | @t--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv iant-1798687967/.github/workflows git /usr/bin/infocmp --show-toplevel git /usr/bin/git infocmp ch_w�� th .prettierignore --log-level=error git bject.type] | @tsv ithub-script/git/opt/hostedtoolcache/node/24.14.1/x64/bin/node git bject.type] | @tgithub.event.inputs.enforce_all == 'true' git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-test---detach remote eloper-action-main/dist/gh-gpgsi../../../.prettierignore /ref/tags/v9 git ode_modules/.bin/repos/actions/github-script/git/ref/tags/v9 eloper-action-ma--jq conf�� ../pkg/workflow/js/**/*.json' --ignore-path ../../../.prettierignore remote.origin.url (http block)
  • https://api.github.com/repos/google-github-actions/auth/git/ref/tags/v2
    • Triggering command: /usr/bin/gh gh api /repos/google-github-actions/auth/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git /tmp/TestGuardPogit config clusion,workflow--show-toplevel git rev-�� --show-toplevel /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git thImports5310999git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/google-github-actions/auth/git/ref/tags/v2 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/git ithub-script/gitgit git-upload-pack bject.type] | @t--show-toplevel git rev-�� --show-toplevel gh /usr/bin/git /repos/actions/ggit --jq /usr/bin/git git (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv 3117136493 2078816/b164/vet.cfg g_.a (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv ../pkg/workflow/js/**/*.json' ---s remote.origin.url /usr/bin/git ty-test.md infocmp /usr/bin/git git chec�� repo3736135683/001 feature-branch ules/.bin/node --show-toplevel git x_amd64/link git (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion son git sv git rev-�� --show-toplevel git /usr/bin/gh --show-toplevel git /usr/bin/git gh (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion 5615-26741/test-gh infocmp ache/go/1.25.8/x/repos/actions/github-script/git/ref/tags/v9 sh -c 5831-30095/test-2538484693/.github/workflows ache/go/1.25.8/xcurrent (local changes) (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo in/dist/ripgrep/bin/linux-x64/rg (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state 1/x64/bin/node (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name h ../../../.prettierignore git /usr/bin/git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name k/gh-aw/gh-aw/.github/workflows -tests /opt/hostedtoolcache/node/24.14.1/x64/bin/node with-tools.md git /usr/bin/git node /tmp�� /ref/tags/v9.0.0 git sv h200321937/001' h200321937/001' sv git (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch --noprofile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch --show-toplevel git k nore git /usr/bin/gh git sRem�� te '**/*.cjs' '**/*.ts' '**/*.json' --ignore-path ../../../.prettierignore gh ache/uv/0.11.11/x86_64/node s-in-body.md --jq sv infocmp (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch /tmp/TestGuardPolicyMinIntegrityOnlyrepos_only_without_min-integ.github/workflows/test.md remote /usr/bin/gh /tmp/gh-aw-test-git remote _modules/.bin/no--show-toplevel gh api /repos/actions/github-script/git/ref/tags/v9 --jq /usr/bin/git /repos/actions/ggit --jq /usr/bin/git git (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI and others added 3 commits May 8, 2026 12:56
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/88594776-4120-4364-a850-22d53a105ad0

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
This reverts commit fe99de0.

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI changed the title [WIP] Add icons to all MCP tools for improved UX Polish MCP server UX metadata and correct unknown-tool JSON-RPC semantics May 8, 2026
Copilot AI requested a review from gh-aw-bot May 8, 2026 13:02
@pelikhan pelikhan marked this pull request as ready for review May 8, 2026 14:04
Copilot AI review requested due to automatic review settings May 8, 2026 14:04
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Polishes MCP server tool metadata and corrects JSON-RPC semantics for unknown tool names, improving client UX consistency and protocol correctness.

Changes:

  • Updated MCP tool icon metadata for compile, logs, mcp-inspect, and audit-diff to match the reviewed mapping.
  • Documented the MCP tool handler return contract, clarifying the reserved any return slot should currently be nil.
  • Fixed argumentValidationMiddleware to return jsonrpc.CodeMethodNotFound for unknown tool names and added a targeted unit test.
Show a summary per file
File Description
pkg/cli/mcp_tools_readonly.go Updates tool icons for compile and mcp-inspect to align with the reviewed UX mapping.
pkg/cli/mcp_tools_privileged.go Updates tool icons for logs and audit-diff to align with the reviewed UX mapping.
pkg/cli/mcp_server.go Adds a package-level comment documenting the MCP tool handler return signature and reserved slot.
pkg/cli/mcp_argument_validation.go Returns CodeMethodNotFound when the tool name isn’t in the tool-params registry.
pkg/cli/mcp_argument_validation_test.go Adds a focused unit test asserting method-not-found behavior for unknown tools.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 5/5 changed files
  • Comments generated: 0

@pelikhan pelikhan merged commit 379ceb7 into main May 8, 2026
4 checks passed
@pelikhan pelikhan deleted the copilot/add-icons-to-mcp-tools branch May 8, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[plan] MCP server quick wins: icons, handler docs, and error code fix

4 participants