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 the gh CLI, 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
username input parameter (required string)
- Pass it to
client.Users.Get(ctx, username) instead of ""
- Return the same
MinimalUser + UserDetails response
- Toolset:
users
- Scope:
read:user
- ReadOnly:
true
Edited to add - this issue was co-authored by Claude and reviewed by me.
Problem
There is no tool to look up a specific GitHub user's profile by username.
get_meonly returns the authenticated user.search_usersuses the Search API which returns a minimal user object (login, id, avatar) without profile details likename,email,bio,company, etc.Use case
I'm building a skill that adds
Co-authored-bytrailers to git commits. To properly attribute a collaborator, I need their display name and numeric ID from their GitHub profile to construct the trailer:Currently this requires falling back to
gh api users/{username}, but I want the skill to work in Claude Desktop too where theghCLI may not be available — only MCP tools. Aget_usertool would close this gap.Workarounds and their limits
gh api users/{username}— works but requires theghCLI, which isn't available in Claude Desktopapi.github.com/users/{username}— works for public GitHub.com users without auth, but doesn't cover enterprise managed users (EMU) or GHES, which require authenticationA proper
get_usertool using the server's authenticated client would work across all environments including enterprise.Proposed solution
A
get_usertool that accepts a requiredusernameparameter and callsGET /users/{username}. ReturnsMinimalUserwithDetails— the same response shape asget_me.The Go client already supports this:
client.Users.Get(ctx, username)is the same callget_meuses, just with a non-empty username string.Implementation notes
Nearly identical to
get_meinpkg/github/context_tools.go:usernameinput parameter (required string)client.Users.Get(ctx, username)instead of""MinimalUser+UserDetailsresponseusersread:usertrueEdited to add - this issue was co-authored by Claude and reviewed by me.