Skip to content

docs/CLI: README documents tool-search subcommand that does not exist in the binary #3161

Description

@CAOShurong

Problem

The README's "CLI utilities" section documents a tool-search subcommand:

github-mcp-server tool-search "<query>" searches tools by name, description, and input parameter names. Use --max-results to return more matches.
docker run -it --rm ghcr.io/github/github-mcp-server tool-search "issue" --max-results 5
github-mcp-server tool-search "issue" --max-results 5

But the shipped binary does not have this subcommand.

Reproduction

Installed the latest release and ran the documented command:

$ go install github.com/github/github-mcp-server/cmd/github-mcp-server@latest
$ github-mcp-server tool-search "issue" --max-results 5
Error: unknown command "tool-search" for "github-mcp-server"
Run 'github-mcp-server --help' for usage.

--help lists only completion, generate-docs, http, list-scopes, stdio. The same failure occurs with go run ./cmd/github-mcp-server tool-search ... on current main.

Root cause (git archaeology)

#1839 ("Add tool search CLI", released in v0.29.0) added:

  • pkg/tooldiscovery/search.go + search_test.go (the search implementation)
  • the README section advertising the CLI command

but the cobra subcommand itself was never registered in cmd/github-mcp-server/main.go — that PR's only main.go change removes a blank line. Since then, tooldiscovery.SearchTools has had zero callers outside its own package at every tag I checked (v0.29.0 through v1.11.0 and current main).

Suggested options

  1. Implement the missing subcommand: register a tool-search command in cmd/github-mcp-server/main.go that builds the enabled-tool inventory and delegates to pkg/tooldiscovery.SearchTools (the package already implements scoring, --max-results, etc.). This makes the documented behavior true.
  2. Or, if the CLI surface is intentionally deferred, remove/park the README section (and the Docker example) until it ships, so users don't hit unknown command.

Happy to put up a PR for option 1 if maintainers want the subcommand.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions