github / github/github-mcp-server

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

Abierto
#1,970 4 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Go
Estrellas
33k
Forks
5k
Merge medio
2 d 1 h
PR fusionados (30 d)
52

Descripción

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.