MCP server for searching, scoring, and ranking GitHub developers for technical recruiting
$git clone https://github.com/carolinacherry/github-talent-mcpInstalls into the current project.
Install github-talent-mcp by running `git clone https://github.com/carolinacherry/github-talent-mcp`, then use it for the current task and follow its documentation at https://github.com/carolinacherry/github-talent-mcp.
| 1 | # github-talent-mcp |
| 2 | |
| 3 | [](LICENSE) |
| 4 | [](https://www.python.org) |
| 5 | [](https://modelcontextprotocol.io) |
| 6 | [](https://claude.ai) |
| 7 | [](https://github.com/features/copilot) |
| 8 | [](https://docs.github.com/en/rest) |
| 9 | |
| 10 | MCP server that searches, scores, and ranks GitHub developers for technical recruiting. |
| 11 | |
| 12 | Works with **Claude** (Code & Desktop) and **GitHub Copilot** (CLI & desktop app) — any MCP client that speaks stdio. |
| 13 | |
| 14 | ## Demo |
| 15 | |
| 16 | https://github.com/user-attachments/assets/b2dbe9e0-26ee-4849-861a-4b5cb268facc |
| 17 | |
| 18 | Sourcing candidates for a real Anthropic JD, live in Claude Cowork. |
| 19 | |
| 20 | https://github.com/user-attachments/assets/2dfd82b4-3eb5-4f2b-bc0a-2580b95043e4 |
| 21 | |
| 22 | ### Profile deep dive |
| 23 | |
| 24 | > Get the full developer profile and activity score for torvalds on GitHub |
| 25 | |
| 26 | Claude calls `get_developer_profile("torvalds")` and returns: |
| 27 | |
| 28 | | Field | Value | |
| 29 | |---|---| |
| 30 | | **Activity Score** | **150** (reputation floor applied) | |
| 31 | | Location | Portland, OR | |
| 32 | | Followers | 293,321 | |
| 33 | | Stars Received | 235,068 | |
| 34 | | Primary Language | C (98.1%) | |
| 35 | | Commits (90d) | 0 | |
| 36 | | PRs (90d) | 0 | |
| 37 | | Notable Repos | linux (183K stars), libdc-for-dirk, subsurface-for-dirk, uemacs, pesern-resolve | |
| 38 | | Profile README | No | |
| 39 | | Hireable | No | |
| 40 | |
| 41 | Torvalds has zero recent GitHub activity because kernel development flows through mailing lists, not GitHub PRs. The **reputation floor** (293K followers) overrides the behavioral score and sets it to 150. |
| 42 | |
| 43 | ### Repo contributor ranking |
| 44 | |
| 45 | > Get the top contributors to huggingface/transformers and rank them for a founding ML engineer role at an AI startup |
| 46 | |
| 47 | Claude calls `get_repo_contributors("huggingface/transformers")` → `rank_candidates` on the top 24 contributors: |
| 48 | |
| 49 | | Rank | Developer | Combined Score | Activity | Relevance | Strengths | |
| 50 | |---|---|---|---|---|---| |
| 51 | | 1 | stas00 | 83.4 | 150 | 72 | 4,553 stars, contributes to major OSS, MIT-licensed repos | |
| 52 | | 2 | cyyever | 80.8 | 120 | 64 | 1,217 followers, active contributor, profile README | |
| 53 | | 3 | Cyrilvallez | 77.2 | 120 | 56 | Active: 13 commits + 57 PRs in 90 days, strong OSS presence | |
| 54 | | 4 | ArthurZucker | 74.4 | 120 | 48 | 37 PRs in 90 days, contributes to huggingface/transformers | |
| 55 | | 5 | ydshieh | 72.0 | 120 | 40 | Active: 9 commits + 40 PRs in 90 days | |
| 56 | |
| 57 | Combined score = activity × 0.4 + relevance × 0.6. Relevance is keyword overlap with the job description (ML, AI, startup, engineer, etc.). |
| 58 | |
| 59 | ## Installation |
| 60 | |
| 61 | ### 1. Clone and install |
| 62 | |
| 63 | ```bash |
| 64 | git clone https://github.com/carolinacherry/github-talent-mcp.git |
| 65 | cd github-talent-mcp |
| 66 | python3 -m venv .venv && source .venv/bin/activate |
| 67 | pip install -e . |
| 68 | ``` |
| 69 | |
| 70 | ### 2. Create a GitHub personal access token |
| 71 | |
| 72 | Go to [github.com/settings/tokens](https://github.com/settings/tokens) and create a **fine-grained** or **classic** token with these scopes: |
| 73 | |
| 74 | | Scope | Why | |
| 75 | |---|---| |
| 76 | | `read:user` | Read user profiles and search users | |
| 77 | | `public_repo` | Read public repo data, languages, contributors | |
| 78 | |
| 79 | Create a `.env` file in the project root: |
| 80 | |
| 81 | ``` |
| 82 | GITHUB_TOKEN=ghp_xxxxxxxxxxxx |
| 83 | ``` |
| 84 | |
| 85 | ### 3. Connect to Claude |
| 86 | |
| 87 | #### Claude Code (CLI) |
| 88 | |
| 89 | One command: |
| 90 | |
| 91 | ```bash |
| 92 | claude mcp add github-talent -- /path/to/github-talent-mcp/.venv/bin/python3 -m github_talent_mcp |
| 93 | ``` |
| 94 | |
| 95 | Then set the token as an environment variable. Either: |
| 96 | - Export it in your shell: `export GITHUB_TOKEN=ghp_xxxxxxxxxxxx` |
| 97 | - Or keep it in the `.env` file — the server reads it via `python-dotenv` on startup |
| 98 | |
| 99 | Restart Claude Code to pick up the new server. Verify with `/mcp` — you should see 9 tools under `github-talent`. |
| 100 | |
| 101 | #### Claude Desktop |
| 102 | |
| 103 | Add to `~/Library/Application Support/Claude/claude_desktop_config.json`: |
| 104 | |
| 105 | ```json |
| 106 | { |
| 107 | "mcpServers": { |
| 108 | "github-talent": { |
| 109 | "command": "/path/to/github-talent-mcp/.venv/bin/python3", |
| 110 | "args": ["-m", "github_talent_mcp"], |
| 111 | "cwd": "/path/to/github-talent-mcp", |
| 112 | "env": { |
| 113 | "GITHUB_TOKEN": "ghp_xxxxxxxxxxxx" |
| 114 | } |
| 115 | } |
| 116 | } |
| 117 | } |
| 118 | ``` |
| 119 | |
| 120 | Restart Claude Desktop. The tools will appear in the toolbox icon. |
| 121 | |
| 122 | #### GitHub Copilot (CLI & desktop app) |
| 123 | |
| 124 | The [GitHub Copilot CLI](https://docs.github.com/en/copilot/how-tos/copilot-cli) and the [GitHub Copilot app](https://github.com/features/ai/github-app) share one MCP config, so a single setup covers both. |
| 125 | |
| 126 | Add it to `~/.copilot/mcp-config.json` (global), or commit a `.copilot/mcp-config.json` in your repo — the Copilot app picks that up automatically: |
| 127 | |
| 128 | ```json |
| 129 | { |
| 130 | "mcpServers": { |
| 131 | "github-talent": { |
| 132 | "type": "local", |
| 133 | "command": "uvx", |
| 134 | "args": ["github-talent-mcp"], |
| 135 | "env": { |
| 136 | "GITHUB_TOKEN": "${GITHUB |