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

オープン 初心者向け
#1,970 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
72/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
静か
技術スタック
github, go
領域
api, backend

調査の方向性

pkg/github/context_tools.go で、まず get_me と既存の client.Users.Get 呼び出しを比較します。MinimalUser + UserDetails レスポンスと、issue に記載された users ツールのメタデータを維持しながら、必要な username 入力を追加します。ツールが認証済みクライアントを通じて GET /users/{username} を呼び出し、GitHub 環境全体で要求されたプロフィールを公開できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Go
スター
33.1k
フォーク
5k
平均マージ
2日 15時間
マージ済み PR(30日)
27

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

github/github-mcp-server のほかの issue

github/github-mcp-server の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。