github-talent-mcp
github-talent-mcp
テクニカルリクルーティングのためにGitHub開発者を検索・スコアリング・ランキングするMCPサーバーです。
Claude(Code & Desktop)、GitHub Copilot(CLI & デスクトップアプリ)、Cursor(IDE & Grok Bot)など、stdioを話すあらゆるMCPクライアントで動作します。
ブランド
Related MCP server: mcp-github-server
デモ
https://github.com/user-attachments/assets/b2dbe9e0-26ee-4849-861a-4b5cb268facc
実際のAnthropicのJDで候補者をソーシングしている様子を、Claude Coworkでライブで紹介しています。
https://github.com/user-attachments/assets/2dfd82b4-3eb5-4f2b-bc0a-2580b95043e4
プロフィールの詳細調査
GitHub上のtorvaldsの完全な開発者プロフィールとアクティビティスコアを取得する
Claudeがget_developer_profile("torvalds")を呼び出し、次の結果を返します:
フィールド | 値 |
アクティビティスコア | 150(レピュテーションフロア適用) |
所在地 | Portland, OR |
フォロワー数 | 293,321 |
獲得スター数 | 235,068 |
主要言語 | C (98.1%) |
コミット数(90日) | 0 |
PR数(90日) | 0 |
注目リポジトリ | linux (183K stars), libdc-for-dirk, subsurface-for-dirk, uemacs, pesern-resolve |
プロフィールREADME | なし |
採用可能 | いいえ |
Torvaldsはカーネル開発がGitHubのPRではなくメーリングリストを通じて行われるため、直近のGitHubアクティビティはゼロです。レピュテーションフロア(293Kフォロワー)が行動スコアを上書きし、150に設定します。
リポジトリコントリビューターのランキング
huggingface/transformersのトップコントリビューターを取得し、AIスタートアップの創業MLエンジニア職としてランキングする
Claudeがget_repo_contributors("huggingface/transformers")を呼び出し、上位24人のコントリビューターに対してrank_candidatesを実行します:
順位 | 開発者 | 複合スコア | アクティビティ | 関連性 | 強み |
1 | stas00 | 83.4 | 150 | 72 | 4,553スター、主要OSSへの貢献、MITライセンスのリポジトリ |
2 | cyyever | 80.8 | 120 | 64 | 1,217フォロワー、アクティブなコントリビューター、プロフィールREADME |
3 | Cyrilvallez | 77.2 | 120 | 56 | アクティブ:90日で13コミット+57PR、強いOSSプレゼンス |
4 | ArthurZucker | 74.4 | 120 | 48 | 90日で37PR、huggingface/transformersに貢献 |
5 | ydshieh | 72.0 | 120 | 40 | アクティブ:90日で9コミット+40PR |
複合スコア = アクティビティ × 0.4 + 関連性 × 0.6。関連性はジョブ説明(ML、AI、スタートアップ、エンジニアなど)とのキーワード重複です。
インストール
1. uvをインストール
サーバーはuvxを通じて実行され、uvxがダウンロードと起動を自動で行います。クローンも
virtualenvも不要で、アップデートも自動的に適用されます。
brew install uvHomebrewがない場合:curl -LsSf https://astral.sh/uv/install.sh | sh
2. GitHub personal access tokenを作成
トークンがない場合、GitHubは1時間あたり60リクエストしか許可せず、候補者プロフィール1件で そのうち6〜15リクエストを消費します。検索の途中で上限に達し、プロフィールが空で返ってきます。 トークンがあれば1時間あたり5,000リクエストが利用できます。
github.com/settings/tokensにアクセスし、以下のスコープを持つ fine-grainedまたはclassicトークンを作成してください:
スコープ | 理由 |
| ユーザープロフィールの読み取りとユーザー検索 |
| 公開リポジトリのデータ、言語、コントリビューターの読み取り |
トークンをコピーしてください。ページを離れると再表示できません。
3. 接続する
GitHub Copilot(CLIおよびデスクトップアプリ)
重要: 設定には${GITHUB_TOKEN}ではなく、トークン自体を記述してください。デスクトップアプリは
シェルではなくオペレーティングシステムによって起動されるため、.zshrcを読み込まず、
環境変数の参照は空に展開されます。その場合、サーバーは正常に起動し、認証なしで動作し、
数人の候補者を処理したところで静かに失敗します。.envファイルも、設定でcwdをプロジェクト
ディレクトリに設定しない限り同じ問題があります。.envは作業ディレクトリからの相対パスで
読み込まれるためです。
両者は1つの設定を共有します。ターミナルに以下を貼り付けると、トークンが自動で入力されます:
mkdir -p ~/.copilot
TOKEN=$(gh auth token) # or: TOKEN=github_pat_xxxxxxxx
cat > ~/.copilot/mcp-config.json <<EOF
{
"mcpServers": {
"github-talent": {
"type": "local",
"command": "uvx",
"args": ["github-talent-mcp"],
"env": { "GITHUB_TOKEN": "$TOKEN" },
"tools": ["*"]
}
}
}
EOF
chmod 600 ~/.copilot/mcp-config.jsonCopilotを完全に終了して再度開き、/mcp showを実行してください。github-talentの下に9つのツールが
表示されるはずです。アプリでは、ファイルを編集したくない場合は、Settings → MCPでもサーバーを
受け入れることができます。
uvxが見つからない場合は、commandにそのフルパスを指定してください(which uvxで表示されます)。
Claude Code
claude mcp add github-talent --env GITHUB_TOKEN=github_pat_xxxxxxxx -- uvx github-talent-mcpClaude Codeを再起動し、/mcpで確認してください。
Claude Desktop
重要: Copilotと同じく、トークンは設定に直接記述してください。
~/Library/Application Support/Claude/claude_desktop_config.jsonに追加:
{
"mcpServers": {
"github-talent": {
"command": "uvx",
"args": ["github-talent-mcp"],
"env": {
"GITHUB_TOKEN": "github_pat_xxxxxxxx"
}
}
}
}Claude Desktopを再起動します。
Cursor IDEおよびCloud Agents(Grok Bot)
注: マーケットプレイスアプリケーションは提出済みで、現在審査中です。
このリポジトリのmcp.jsonと.cursor-plugin/plugin.json内の${GITHUB_TOKEN}は、
そのインストール経路向けのプラグイン変数です。Cloud Agentsや手書きの
mcp.jsonでは展開されません。PATを直接貼り付けてください。
マーケットプレイス掲載後(Cursor IDEのワンクリックインストール):
マシンに
uvがまだインストールされていない場合はインストール:brew install uvHomebrewがない場合:
curl -LsSf https://astral.sh/uv/install.sh | shCursor IDEで、Plugins → Addに移動し、GitHub Talent Searchを 検索してインストールします。
プロンプトが表示されたら、GitHub personal access token(
read:userとpublic_repoスコープのfine-grained)を入力します。
マーケットプレイス承認まで — Cursor IDE:
このリポジトリを~/.cursor/plugins/local/github-talent-mcp/にシンボリックリンクし、
Cursorをリロードします(Cmd/Ctrl+Shift+P → Reload Window)。
mkdir -p ~/.cursor/plugins/local
ln -s /path/to/github-talent-mcp ~/.cursor/plugins/local/github-talent-mcpまたは、ユーザー/プロジェクトのmcp.json(~/.cursor/mcp.jsonまたは.cursor/mcp.json)を
追加し、commandをuvx、argsを["github-talent-mcp"]、GITHUB_TOKENを
PAT自体に設定します。デスクトップの補間を使用する場合は、${env:GITHUB_TOKEN}です —
${GITHUB_TOKEN}ではありません。spawnが失敗する場合は、commandをwhich uvxの
フルパスに設定してください(Apple Silicon Homebrewでは通常/opt/homebrew/bin/uvx)。
マーケットプレイス承認まで — Cloud Agents(cursor.com/agents):
エージェントのホームページにはMCPドロップダウンはありません(Environment、Secrets、 Set Up Cloud Agentsはこれではありません)。コントロールはモデルピッカーの左側にある **+**ボタンです。
uvxをCloud Agent VMのデフォルトPATHに配置します。Stdio MCPのspawnは.bashrcを読み込みません。uvxが~/.local/binにしかない場合、サーバーはspawn uvx ENOENTで失敗し、0ツールしか読み込まれません。環境の Installスクリプトに以下を追加し、Saveしてから新しいエージェントを 起動してください:curl -LsSf https://astral.sh/uv/install.sh | sh sudo install -m 0755 "$HOME/.local/bin/uv" /usr/local/bin/uv sudo install -m 0755 "$HOME/.local/bin/uvx" /usr/local/bin/uvxcursor.com/agentsで、+ → MCP Serversをクリックします。 すでに
github-talentがリストされている場合は編集し、それ以外の場合はAdd MCPをクリックします。Edit MCP serverで:
Name:
github-talentType: Command(URLではありません)。このサーバーはstdioであり、HTTPではありません。Cloud Agents はSSEをサポートしていません。
Command:
uvxArguments:
github-talent-mcp(余分な空のArgument行は空白のままにします)Secrets: キー
GITHUB_TOKEN、値はあなたのPAT(ghp_またはgithub_pat_)。 トークンを貼り付けます。EnvironmentパネルのGITHUB_TOKENという名前のシークレットは MCP環境にはコピーされません。Commandを
/home/box/bin/github-talent-mcp.shに設定しないでください。そのパスは Cloud Agent VM上に存在せず、ネームスペースは接続されても0ツールのままです。
Saveします。
github-talentをオンに切り替えます。新しいCloud Agentを起動してください — 既存の実行は古いランチャーを保持します。github-talentの下に9つのツールが表示されるはずです。
実際に動作しているか確認する
get_developer_profile(MCPツールであり、python/gh/curlではない)を呼び出してください。
実際のプロフィールは120〜170行です。3行しか返らない場合は呼び出しが失敗しています —
ほぼ常にトークンが欠落しているか読み取れないことが原因です。サーバーが接続済みと表示されているのに
すべてのツールが3行しか返さないのは、認証なしで実行されていることの特徴です。
整形されたTorvaldsのテーブルは、MCPの証明にはなりません。Cloud Agentsはこのリポジトリから
github_talent_mcpをインポートして、MCPディスカバリがまだ失敗している間(spawn uvx ENOENT)でも
同じ約149行のプロフィールを出力できます。9つのツールが読み込まれたことと、呼び出しがMCPツールを
通ったことを確認してください。
ソースから実行する
サーバーを変更したい場合にのみ必要です:
git clone https://github.com/carolinacherry/github-talent-mcp.git
cd github-talent-mcp
uv syncその後、上記のいずれかの設定で、コマンドとしてuv run --directory /path/to/github-talent-mcp github-talent-mcpを使用します。
試してみる
インストール後、以下のプロンプトを貼り付けてすべてが動作することを確認してください:
基本検索:
直近60日以内にアクティブなRaleighのPython開発者を探す
プロフィールの詳細調査:
GitHub上のtorvaldsの完全な開発者プロフィールとアクティビティスコアを取得する
完全なワークフロー:
直近30日以内にアクティブなサンフランシスコのMLエンジニアを10人見つけ、シニアLLM推論エンジニア職としてランキングする
リポジトリコントリビューター:
huggingface/transformersのトップコントリビューターを取得し、AIスタートアップの創業MLエンジニア職としてランキングする
JDスコアリング:
このジョブ説明に対して候補者をスコアリングする:[JDを貼り付け]。候補者:tiangolo、karpathy、hwchase17
候補者の比較:
シニアPython AIエンジニア職についてtiangoloとhwchase17を比較する
一括スコアリング:
この10個のGitHubユーザー名をスコアリングし、ランキング表を表示する:[リストを貼り付け]
アウトリーチ:
AcmeのシニアPython職についてtiangolo宛てのカジュアルなリクルーター向けメッセージを生成する。私の名前はDanielです。
面接ファーストのソーシング
漠然としたプロンプトは漠然とした候補リストしか生み出さないため、このサーバーは検索の前にあなたにインタビューするように設計されています。「ロールの候補者を探して」と依頼すると、まずplan_searchを呼び出します。ロールファミリーを検出し、的を絞ったフォローアップ質問(シニア度、必須スキル、勤務地、絶対条件)を投げかけ、そして最も重要なのは**職務記述書(JD)**の入力を求めることです。全文を貼り付けるか、公開リンクを共有して表示された内容を貼り付けてください。実際の基準が揃って初めてソーシングを開始します。
試してみる: 「シニアセキュリティエンジニアを探して」 → アシスタントは何かを実行する前にJDと必須条件を尋ねるはずです。
代わりに高速で再現性のある実行をしたい場合は、最初にすべてを渡してください — 「この15人のユーザー名をこのJDに対してランク付けして: …」 — またはソーシングを特定のリポジトリに固定すれば、インタビューをスキップします。
ツール
ツール | 説明 |
| 受け付けステップ — ソーシングリクエストを解析し、ロールファミリーを検出し、検索前に尋ねるべき的を絞ったフォローアップ質問(JDの貼り付けや公開リンクの共有を含む)を返します。最初にこれを呼び出してください。 |
| 言語、場所、アクティビティ、フォロワーでGitHubユーザーを検索します。トピックベースのソーシングには、代わりに関連リポジトリで |
| 詳細なプロファイルのエンリッチメント: 言語、スター数、コミット+PR、OSSコントリビューション、ライセンス内訳、プロファイルREADME、内訳付きアクティビティスコア。 |
| ユーザー名を職務記述書に対してランク付けします。複合スコア、強み、ギャップ、根拠を含むソート済み候補者を返します。 |
| 候補者をJDに対して次元別内訳(テックスタック、経験レベル、OSSシグナル、リーダーシップ)でスコアリングします。ギャップとパーソナライズされた面接質問を返します。 |
| 2〜5人の候補者を並べて比較します。次元ごとの勝者と推奨事項を表示します。オプションでJDに対してスコアリングされます。 |
| 1回の呼び出しで最大100のGitHubユーザー名をスコアリングします。ランク付けされたMarkdownテーブルまたはCSVを返します。オプションのJDマッチングをサポートします。 |
| 候補者の実際のリポジトリとコントリビューションを参照するパーソナライズされたリクルーター向けメッセージ(短/中/詳細)を生成します。会社名と送信者名が必要です。カジュアルまたはフォーマルなトーン。 |
| 任意のリポジトリのトップコントリビューター。 |
スコアリング
アクティビティスコアは2つのレイヤーを組み合わせます: 行動シグナル(最近の活動)とレピュテーションフロア(長期間にわたって築いてきたもの)。
行動スコア(0〜205)
シグナル | 最大ポイント | 詳細 |
コミット+PR(直近90日間) | 60 | プッシュコミット+PRオープン(PRは3倍に重み付け)。プッシュベースとPRベースの両方のワークフローを捕捉します。 |
リポジトリのスター数 | 40 | 個人リポジトリのスター+コントリビュートしているリポジトリのスター。組織リポジトリのメンテナーはクレジットを得ます。 |
プロファイルREADME | 20 | プロファイルREADME(github.com/username/username)の存在。 |
フォロワー | 20 | 20で上限。 |
説明付きリポジトリ | 20 | 説明があるリポジトリの割合。丁寧さと仕上げのシグナル。 |
寛容なライセンスのリポジトリ | 15 | MIT、Apache-2.0、BSD、ISC、またはUnlicenseのリポジトリが少なくとも1つある。 |
主要なOSSコントリビューション | 30 | 自分が所有していないリポジトリへのPR、プッシュ、またはイシュー。3リポジトリで上限(各10ポイント)。 |
レピュテーションフロア
行動スコアだけでは、GitHubイベントを生成しない仕事をしている開発者にペナルティが課されます — Torvaldsはメーリングリストを通じて活動し、シニアメンテナーは組織ボット経由でマージし、多くのエンジニアはプライベートリポジトリで作業しています。
レピュテーションフロアは、静かな四半期によって累積的な影響が消されないことを保証します:
しきい値 | フロア |
10K+フォロワー または 50K+スター | 150 |
1K+フォロワー または 5K+スター | 120 |
500+フォロワー または 1K+スター | 100 |
100+フォロワー または 200+スター | 80 |
最終スコアはmax(behavioral_score, reputation_floor)です。フロアが適用された場合、内訳にはreputation_floorフィールドが含まれるため、それがわかります。
スコア層
150+ — 卓越(トップOSSメンテナー、有名エンジニア)
120-149 — 強いシグナル、連絡する価値あり
80-119 — 意味のある公開活動を持つ堅実な開発者
40-79 — 活発だが公開シグナルは限定的
<40 — 低シグナル(おそらくプライベートな仕事またはジュニア)
ランキング
rank_candidatesは、アクティビティスコアと、職務記述書と候補者のプロファイル(バイオ、言語、リポジトリトピック、README)の間のキーワード重複に基づく関連性スコア(0〜100)を組み合わせます。複合スコアは関連性を60%、アクティビティを40%で重み付けします — ジョブとの重複がない高アクティビティの開発者は、関連性のある開発者を上回るべきではありません。
インタラクティブダッシュボード
検索が候補リストを生成した後、サーバーはインタラクティブダッシュボードが必要かどうかを尋ねます — 検索、スキルフィルター、ランキング、エビデンス、GitHubプロファイルリンク。はいと答えると、アシスタントはスコアリングされた候補者データから独自のアーティファクトツール(Copilotのキャンバス、Claudeのアーティファクト)を使ってダッシュボードを構築します。
これは常に提案のみであり、はいと言わない限り何も構築されず、検索で使用可能なプロファイルが生成されなかった場合は提案もスキップされます。GITHUB_TALENT_DASHBOARD_PROMPT=0を設定するとオフにできます。
ページがインラインキャンバスで開かれた場合、それらのペインはコンテンツをサンドボックス化し、外部リンクをブロックすることに注意してください。そのため、アシスタントにはGitHubリンクが機能するブラウザで保存されたファイルを開くことも求められます。
レート制限
GitHub REST API: トークンありで5,000リクエスト/時間、なしで60。 単一のエンリッチされたプロファイルには6〜15回の呼び出しが必要で、典型的なワークフロー(検索+5候補者のエンリッチ+ランキング)は約60〜100回を使用するため、認証なしのサーバーは1回の検索内で使い果たされます。プロファイル結果は、ランキング中の冗長な呼び出しを避けるためにセッション内でキャッシュされます。
2つの制限はその時間ごとの予算とは別であり、知っておく価値があります:
検索エンドポイント(
/search/commits、/search/issues)は、トークンがあっても1分間に30リクエストのみ許可します。サーバーはそこでの失敗をプロファイルの失敗ではなく不明なアクティビティ数として扱うため、候補リストは返されます — コミット数が0と表示されるだけかもしれません。セカンダリレート制限は同時リクエストのバーストで発生し、明示的な
Retry-Afterを返します。サーバーはその正確な時間だけ待機し、最大30秒で、解除されていないウィンドウへの再試行ではなく諦めます。
制限事項と責任ある使用
このツールは公開GitHubアクティビティを技術的ソーシングの1つのシグナルとしてスコアリングします。それに依存する前にその限界を知ってください:
実行ごとに結果が異なります。 AI駆動です — アシスタントが探索するリポジトリと検索を決定するため、同じプロンプトでも毎回異なる候補リストが表示される可能性があります。スコアリング自体は特定の候補者セットに対して決定的ですが、変動はソーシングから生じます。再現可能な実行のためには、ソーシングを制約してください: コントリビューターを取得するリポジトリを指定するか、ランク付けするユーザー名の明示的なリストを渡してください。
GitHubはエンジニアの全体ではありません。 公開アクティビティは技術的な仕事の強力な証拠ですが、プライベートリポジトリや社内/エンタープライズのコントリビューション、およびGitHub以外のエコシステム(メーリングリスト、GitLabなど)には盲目です。ピープルマネジメントやリーダーシップの経歴を検証できません — それらはGitHub外で確認してください。(レピュテーションフロアが存在するのは、まさに最近のアクティビティが低いこと≠能力が低いことだからです。)
フィルターではなくリードジェネレーターとして使用してください。 公開OSSの可視性は、スキルだけでなく自由時間、在職期間、環境と相関し、それは人口統計によって偏ります。スコアはアウトリーチと人間の判断の出発点として扱ってください。候補者を自動的に除外するために使用せず、常に公平でロールに関連する評価と組み合わせてください。
データはライブでレート制限があります。 スコアはクエリ時点のGitHubを反映し、アクティビティの変化に応じて変動します。認証なしのサーバーは1時間あたり60リクエストに制限されています。
ライセンス
Apache License 2.0 © 2026 Daniel An。0.4.0までのリリース版はMITライセンスのままです。0.4.1以降はApache-2.0です。
Available Tools
8 toolsbulk_scoreA
Score a batch of GitHub usernames and return a ranked table.
Enriches each profile and ranks by activity score (or JD fit if a job description is provided). Returns a markdown table or CSV.
Args: usernames: List of GitHub usernames (max 100) job_description: Optional JD for relevance scoring export_format: Output format - "markdown" (default) or "csv" top_n: Max candidates in output (default 100)
| Name | Required | Description | Default |
|---|---|---|---|
| usernames | Yes | ||
| job_description | No | ||
| export_format | No | markdown | |
| top_n | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full burden. It discloses enrichment, ranking, and output format, but does not mention side effects, rate limits, authentication needs, or whether it is read-only. Adequate but with gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main action, and uses a structured Args format. Every sentence adds value, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity and that an output schema exists, the description adequately explains return format and main parameters. However, it lacks details on error handling, scoring methodology, and sorting behavior, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description fully compensates by describing each parameter: usernames (max 100), job_description (optional), export_format (markdown/csv), top_n (default 100). Adds constraints and enum guidance not in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scores a batch of GitHub usernames and returns a ranked table. It specifies batch processing and enrichment with activity score or JD fit, distinguishing it from siblings like score_against_jd which likely handles single users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for batch scoring (explicitly says 'batch') but does not explicitly name when to use this versus alternatives like rank_candidates or score_against_jd. It provides clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_candidatesA
Compare 2-5 GitHub candidates side-by-side.
Shows each candidate's languages, activity, stars, strengths, and gaps. If a job description is provided, also scores each candidate against it and picks winners per dimension.
Args: usernames: 2-5 GitHub usernames to compare job_description: Optional job description for JD-aware comparison
| Name | Required | Description | Default |
|---|---|---|---|
| usernames | Yes | ||
| job_description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes what the tool shows and does (scoring, picking winners), but does not mention data sources, side effects, or whether it fetches data. No annotations to contradict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, front-loaded, every sentence adds value. Bullet-like list and Args section are clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all necessary aspects: what is compared, optional JD, output format implied by attributes. Output schema exists, so no need to detail return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema: specifies usernames must be 2-5, job_description is optional. The schema only has titles, so description compensates for 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it compares 2-5 GitHub candidates side-by-side, listing displayed attributes (languages, activity, stars, strengths, gaps) and optional job description scoring. Distinguishes from siblings like score_against_jd and rank_candidates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use case (comparing multiple candidates with optional JD) and sibling context, but does not explicitly state when not to use or compare to specific alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_outreachA
Generate personalized recruiter outreach messages for a GitHub candidate.
Creates three message variants (short, medium, detailed) that reference the candidate's actual repos, contributions, and tech stack.
IMPORTANT: Always ask the user for their company_name and sender_name before calling this tool. If not provided, placeholders will be used.
Args: username: GitHub username of the candidate job_description: The role description company_name: Your company name (ask the user) sender_name: Your name as the recruiter/hiring manager (ask the user) tone: Message tone - "casual" (default) or "formal"
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | ||
| job_description | Yes | ||
| company_name | No | [Your Company] | |
| sender_name | No | [Your Name] | |
| tone | No | casual |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that three variants are created, references candidate's repos/contributions/tech stack, and warns about placeholders if company_name/sender_name are not provided. This covers key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections and front-loads the purpose. The all-caps warning is prominent. It could be slightly more concise, but it remains readable and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description doesn't need to detail return values. It covers purpose, usage, parameters, and behavioral notes comprehensively for a 5-parameter tool without annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It provides clear explanations for all five parameters, including defaults and the behavior if omitted (e.g., placeholders for company_name and sender_name). The tone parameter specifies allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it generates personalized recruiter outreach messages for a GitHub candidate, creating three message variants. This is distinct from sibling tools like bulk_score or search_developers, which serve different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to ask the user for company_name and sender_name before calling the tool, providing clear usage context. It does not, however, specify when not to use the tool or mention alternatives, but the purpose is specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_developer_profileA
Get enriched GitHub developer profile with activity scoring.
Returns languages, stars, commit activity, OSS contributions, profile README, license breakdown, and a 0-205 activity score with per-dimension breakdown.
Args: username: GitHub username to analyze
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It details the return content including an activity score with per-dimension breakdown. However, it does not mention potential side effects (none expected), authentication needs, or rate limits, which would increase transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a one-sentence purpose, a bulleted list of return contents, and an Args line. Every sentence provides value with no redundancy or clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and the description already enumerates the returned data (languages, stars, commit activity, etc.), the description is complete. It includes the unique activity score range and breakdown, covering all key aspects without needing further elaboration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description explicitly lists the 'username' parameter with a clear explanation: 'GitHub username to analyze'. This adds essential meaning beyond the type 'string' in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Get enriched GitHub developer profile with activity scoring', which is a specific verb+resource combination. It clearly distinguishes from sibling tools like 'search_developers' (search) and 'rank_candidates' (ranking), as this tool focuses on a single enriched profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for individual developer profiles by listing single username and rich return data. While no explicit 'when to use vs alternatives' is stated, the context from sibling tool names suggests this is for detailed single-profile analysis, not for bulk or comparative operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_repo_contributorsA
Get top contributors for a GitHub repository as candidate leads.
Accepts 'owner/repo' format or full GitHub URL.
Args: repo: Repository in 'owner/repo' format or GitHub URL limit: Max contributors to return (default 25)
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavioral traits. It does not mention authentication needs, rate limits, or error handling. The description only states the basic function without transparency on limitations or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-line purpose, a format note, and args. Every sentence is essential and front-loaded. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to detail return values. However, it lacks information on authentication, error scenarios, and usage context, making it adequately complete but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for the 'repo' parameter by specifying accepted formats, but for 'limit' it only repeats the default from the schema. With 0% schema coverage, more parameter details would be beneficial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves top contributors for lead generation, with a specific verb and resource. It distinguishes itself from siblings like search_developers or get_developer_profile by focusing on repository contributors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for lead generation but provides no explicit guidance on when to use this tool over siblings or when not to use it. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_candidatesA
Rank GitHub users against a job description.
Enriches each profile, scores activity + relevance, and returns candidates sorted by combined score with strengths, gaps, and reasoning.
Args: usernames: GitHub usernames to evaluate job_description: The role description to rank candidates against top_n: Number of top candidates to return (default 10)
| Name | Required | Description | Default |
|---|---|---|---|
| usernames | Yes | ||
| job_description | Yes | ||
| top_n | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states that the tool enriches profiles and scores them, implying a read-only operation. However, it does not disclose potential side effects (e.g., if external API calls are made), authentication requirements, or any rate limiting. The description is adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. The first sentence states the main purpose, followed by a brief process summary and then bullet-point-like parameter explanations. Every sentence contributes meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (though not shown), the description reasonably explains the output: sorted candidates with strengths, gaps, and reasoning. It covers the key aspects of the tool's behavior and parameters. However, it could be more complete by clarifying what 'enriches each profile' entails or how the scoring accounts for activity and relevance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description compensates by defining each parameter: usernames as 'GitHub usernames to evaluate', job_description as 'The role description to rank candidates against', and top_n with default 10. These definitions are clear and add value beyond the schema's type and title information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Rank GitHub users against a job description.' It also explains the process: enriches profiles, scores activity+relevance, returns sorted candidates with strengths, gaps, and reasoning. This effectively communicates the core function, though it does not explicitly differentiate from similar sibling tools like 'score_against_jd' or 'compare_candidates'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives such as 'score_against_jd' or 'compare_candidates'. There is no mention of prerequisites, limitations, or scenarios where this tool is preferred. The user is left to infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_against_jdA
Score GitHub candidates against a job description with per-dimension breakdown.
Unlike rank_candidates (keyword matching), this extracts structured requirements from the JD and scores each candidate on: tech stack match, experience level, OSS signal, and leadership signals. Returns dimension scores, gaps, and personalized interview questions.
Args: job_description: Full job description text usernames: GitHub usernames to evaluate top_n: Number of top candidates to return (default 10)
| Name | Required | Description | Default |
|---|---|---|---|
| job_description | Yes | ||
| usernames | Yes | ||
| top_n | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not mention safety traits (read-only, destructive, auth needs). However, it describes outputs and operation, which is adequate for a scoring tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three purposeful sentences plus a structured args list. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema (not shown), the description covers key aspects: purpose, differentiation, and return contents. Could mention prerequisites like having candidate profiles.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining each parameter's purpose (job description, usernames, top_n) beyond the schema's basic type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scores candidates against a job description with per-dimension breakdown. It distinguishes itself from rank_candidates by contrasting keyword matching with structured requirement extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when-to-use versus an alternative (rank_candidates), but does not cover exclusions or scenarios where this tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_developersA
Search GitHub developers by technical and geographic filters.
Returns a list of matching usernames sorted by followers. Use get_developer_profile on interesting candidates for full enrichment and to verify recent activity.
For topic-based sourcing (e.g. "LLM", "inference"), use get_repo_contributors on relevant repos instead — GitHub user search doesn't support topic/bio search.
Args: languages: Filter by programming languages, e.g. ["python", "rust"] location: Filter by location, e.g. "San Francisco" or "Germany" min_followers: Minimum follower count min_repos: Minimum public repo count limit: Max results to return (default 20, max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| languages | No | ||
| location | No | ||
| min_followers | No | ||
| min_repos | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses output format (usernames sorted by followers) and limit constraints. Lacks details on case sensitivity or matching behavior, but overall adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then results, usage guidance, and args. Every sentence adds value; no fluff. Well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no required ones, and output schema exists, description covers all needed aspects: filters, results, usage guidance, and alternatives. Complete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description explains all five parameters with types and examples (e.g., languages as array of strings, location string, default and max for limit), adding meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches GitHub developers by technical and geographic filters, returns usernames sorted by followers, and distinguishes itself from sibling tools like get_repo_contributors and get_developer_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use and when not to use: for topic-based sourcing, recommends get_repo_contributors instead, and for full enrichment, suggests get_developer_profile.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tools are mostly distinct, but bulk_score, rank_candidates, and score_against_jd have overlapping ranking/scoring functionality that could confuse an agent. compare_candidates also overlaps with these for small sets. Still, each tool has a clear primary purpose.
All tool names follow a consistent verb_noun pattern with underscores (e.g., bulk_score, compare_candidates, generate_outreach). No mixing of conventions.
8 tools is well-scoped for a developer sourcing server, covering search, enrichment, comparison, ranking, and outreach without being excessive.
Covers the main workflow (search, enrich, compare, rank, message), but lacks a direct topic-based search and saving/follow-up tools, which are minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Public MCP server for discovering open jobs. Search, filter, and get application links.
A MCP server built for developers enabling Git based project management with project and personal…
Create, deploy, and operate MCP servers directly from your GitHub repositories.
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- -licenseNot gradedqualityAmaintenanceMCP Server for the GitHub API, enabling file operations, repository management, search functionality, and more.117,29690,042MIT
- FlicenseNot gradedqualityDmaintenanceA simple MCP server that provides repository information (list repos, get repo details) using GitHub's public REST API, without needing any API keys or tokens.
- AlicenseNot gradedqualityBmaintenanceMCP server for searching, retrieving details, suggesting, and adding curated GitHub repositories from a personal library.MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for GitHub operations, providing tools for repository management, issues, pull requests, and code search.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/carolinacherry/github-talent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server