github / github/github-mcp-server

Feature Request: Add get_user tool to fetch a user profile by username

Đang mở
#1,970 4 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Go
Star
33k
Fork
5k
Merge trung bình
2 ngày 1 giờ
Pull request đã merge (30 ngày)
52

Mô tả

## 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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.