Feature Request: Add get_user tool to fetch a user profile by username
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
Research direction
Start in pkg/github/context_tools.go by comparing get_me with the existing client.Users.Get call. Add the required username input while preserving the MinimalUser + UserDetails response and users tool metadata described in the issue. Done means the tool calls GET /users/{username} through the authenticated client and exposes the requested profile across GitHub environments.
Written by the indexing model from the issue text.
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.
- Dominant language
- Go
- Stars
- 33.1k
- Forks
- 5k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 27
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from github/github-mcp-server
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/github-mcp-server#3235 ·
-
enhancement
Difficulty 1/5 Under an hour Newbie friendliness 88/100
github/github-mcp-server#3042 · 2 comments ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
github/github-mcp-server#3032 · 1 reaction ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
github/github-mcp-server#2803 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
github/github-mcp-server#2740 ·
All issues in github/github-mcp-server
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 84/100
-
enhancement needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
kind/cleanup
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
kubernetes-sigs/kueue#15947 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
sympozium-ai/sympozium#627 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100