-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Description
Problem
There is no tool to look up a specific GitHub user's profile by username. get_me only returns the authenticated user. search_users uses the Search API which returns a minimal user object (login, id, avatar) without profile details like name, email, bio, company, etc.
Use case
I'm building a skill that adds Co-authored-by trailers to git commits. To properly attribute a collaborator, I need their display name and numeric ID from their GitHub profile to construct the trailer:
Co-authored-by: Jane Smith <12345+janesmith@users.noreply.github.com>
Currently this requires falling back to gh api users/{username}, but I want the skill to work in Claude Desktop too where the gh CLI may not be available — only MCP tools. A get_user tool would close this gap.
Workarounds and their limits
gh api users/{username}— works but requires theghCLI, which isn't available in Claude Desktop- WebFetch to
api.github.com/users/{username}— works for public GitHub.com users without auth, but doesn't cover enterprise managed users (EMU) or GHES, which require authentication
A proper get_user tool using the server's authenticated client would work across all environments including enterprise.
Proposed solution
A get_user tool that accepts a required username parameter and calls GET /users/{username}. Returns MinimalUser with Details — the same response shape as get_me.
The Go client already supports this: client.Users.Get(ctx, username) is the same call get_me uses, just with a non-empty username string.
Implementation notes
Nearly identical to get_me in pkg/github/context_tools.go:
- Add a
usernameinput parameter (required string) - Pass it to
client.Users.Get(ctx, username)instead of"" - Return the same
MinimalUser+UserDetailsresponse - Toolset:
users - Scope:
read:user - ReadOnly:
true
Edited to add - this issue was co-authored by Claude and reviewed by me.