Skip to main content
Glama

github-talent-mcp

License: Apache 2.0 Python 3.10+ MCP Claude GitHub Copilot Cursor Grok Bot GitHub API

用于技术招聘的 MCP 服务器,可搜索、评分并对 GitHub 开发者进行排名。

适用于 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

在 Claude Cowork 中为真实的 Anthropic 职位描述实时寻找候选人。

https://github.com/user-attachments/assets/2dfd82b4-3eb5-4f2b-bc0a-2580b95043e4

个人资料深度分析

获取 torvalds 在 GitHub 上的完整开发者资料和活跃度评分

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 上没有任何活跃记录,因为内核开发通过邮件列表进行,而不是 GitHub PR。声誉下限(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 次提交 + 57 个 PR,强大的 OSS 影响力

4

ArthurZucker

74.4

120

48

90 天内 37 个 PR,为 huggingface/transformers 做贡献

5

ydshieh

72.0

120

40

活跃:90 天内 9 次提交 + 40 个 PR

综合评分 = 活跃度 × 0.4 + 相关性 × 0.6。相关性是与职位描述的关键词重叠度(ML、AI、初创、工程师等)。

安装

1. 安装 uv

服务器通过 uvx 运行,它会自动下载并启动——无需克隆、无需虚拟环境,而且你会自动获得更新。

brew install uv

没有 Homebrew?curl -LsSf https://astral.sh/uv/install.sh | sh

2. 创建 GitHub 个人访问令牌

没有令牌时,GitHub 允许每小时 60 次请求,而单个候选人资料会消耗 6-15 次。你会在搜索中途用完配额,资料也会返回空结果。有了令牌,你可以获得每小时 5,000 次。

前往 github.com/settings/tokens 创建一个细粒度经典令牌,并包含以下权限范围:

权限范围

原因

read:user

读取用户资料和搜索用户

public_repo

读取公共仓库数据、语言、贡献者

复制令牌——离开页面后你就无法再次查看它。

3. 连接

GitHub Copilot(CLI 和桌面应用)

重要提示: 将令牌本身放入配置中,而不是 ${GITHUB_TOKEN}。桌面应用由操作系统启动,而不是由你的 shell 启动,因此它们永远不会读取 .zshrc,环境变量引用会展开为空。服务器随后正常启动、以未认证状态运行,并在搜索几个候选人后悄然失败。.env 文件也有同样的问题,除非配置同时将 cwd 设置为项目目录,因为它是相对于工作目录读取的。

两者共享一个配置。在终端中粘贴以下内容——它会自动填入你的令牌:

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

完全退出 Copilot 并重新打开,然后运行 /mcp show——你应该会在 github-talent 下看到 9 个工具。如果你不想手动编辑文件,应用也接受 Settings → MCP 下的服务器。

如果找不到 uvx,请将其完整路径作为 commandwhich uvx 会打印它)。

Claude Code

claude mcp add github-talent --env GITHUB_TOKEN=github_pat_xxxxxxxx -- uvx github-talent-mcp

重启 Claude 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 一键安装):

  1. 如果机器上还没有 uv,请先安装:

    brew install uv

    没有 Homebrew?curl -LsSf https://astral.sh/uv/install.sh | sh

  2. Cursor IDE 中,前往 Plugins → Add,搜索 GitHub Talent Search 并安装。

  3. 提示时,输入你的 GitHub 个人访问令牌(细粒度,包含 read:userpublic_repo 权限范围)。

在市场批准之前——Cursor IDE:

将此仓库符号链接到 ~/.cursor/plugins/local/github-talent-mcp/,然后重新加载 Cursor(Cmd/Ctrl+Shift+PReload 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),commanduvxargs["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 都不是这个)。控件是模型选择器左侧的 + 按钮。

  1. uvx 放到 Cloud Agent VM 的默认 PATH 上。Stdio MCP spawn 不会读取 .bashrc。如果 uvx 只在 ~/.local/bin 中,服务器会以 spawn uvx ENOENT 失败并加载 0 个工具。将此添加到环境的 Install 脚本中,保存,然后启动一个新的代理:

    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/uvx
  2. cursor.com/agents 上,点击 +MCP Servers。如果 github-talent 已列出则编辑它;否则点击 Add MCP

  3. Edit MCP server 中:

    • Name: github-talent

    • Type: Command(不是 URL)。此服务器是 stdio,不是 HTTP。Cloud Agents 不支持 SSE。

    • Command: uvx

    • Arguments: github-talent-mcp(将多余的空 Argument 行留空)

    • Secrets: Key 为 GITHUB_TOKEN,Value 为你的 PAT(ghp_github_pat_)。粘贴令牌。Environment 面板中名为 GITHUB_TOKEN 的 secret 不会复制到 MCP 环境中。

    • 不要将 Command 设置为 /home/box/bin/github-talent-mcp.sh。该路径不在 Cloud Agent VM 上;命名空间会附加但仍加载 0 个工具。

  4. 保存。打开 github-talent 开关。启动一个新的 Cloud Agent——现有运行会保留旧的启动器。你应该会在 github-talent 下看到 9 个工具。

检查它是否真的有效

调用 get_developer_profile(MCP 工具,而不是 python / gh / curl)。真实资料有 120-170 行。三行意味着调用失败——几乎总是缺少或无法读取令牌。每个工具都返回三行而服务器仍显示已连接,这就是以未认证状态运行的标志。

格式化的 Torvalds 表格不是 MCP 正常工作的证明。Cloud Agents 可以从本仓库导入 github_talent_mcp 并打印相同的约 149 行资料,而 MCP 发现仍在失败(spawn uvx ENOENT)。请确认 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 天活跃的 Python 开发者

个人资料深度分析:

获取 torvalds 在 GitHub 上的完整开发者资料和活跃度评分

完整工作流:

查找旧金山过去 30 天活跃的 10 名 ML 工程师,然后为高级 LLM 推理工程师职位进行排名

仓库贡献者:

获取 huggingface/transformers 的顶级贡献者,并为 AI 初创公司的创始 ML 工程师职位进行排名

JD 评分:

根据以下职位描述为这些候选人评分:[粘贴 JD]。候选人:tiangolo, karpathy, hwchase17

比较候选人:

比较 tiangolo 和 hwchase17,用于高级 Python AI 工程师职位

批量评分:

为这 10 个 GitHub 用户名评分并给我一个排名表:[粘贴列表]

外联:

为 tiangolo 生成一条关于 Acme 高级 Python 职位的轻松招聘信息。我的名字是 Daniel。

面试优先的寻源

模糊的提示词会产生模糊的候选名单,因此该服务器的设计是在搜索之前先对你进行访谈。让它“为某个职位寻找候选人”,它会先调用 plan_search——它会识别职位族并提出有针对性的追问(资历、必备技能、地点、否决条件),最重要的是,会要求提供职位描述:粘贴完整文本,或分享公开链接并粘贴其显示的内容。只有在获得真实标准后,它才会开始寻源。

试试看: “帮我找资深安全工程师。” → 助手应在运行任何操作之前先询问 JD 和你的必备条件。

想要快速、可重复的运行?那就一次性提供所有信息——“根据这份 JD 对这 15 个用户名进行排名:……”——或将寻源范围限定到特定仓库,这样它就会跳过访谈。

工具

工具

描述

plan_search

接收阶段——解析寻源请求,识别职位族,并返回有针对性的追问(包括:粘贴 JD 或分享公开链接),以便在搜索前询问。请先调用此工具。

search_developers

按语言、地点、活跃度、关注者搜索 GitHub 用户。对于基于主题的寻源,请改用相关仓库上的 get_repo_contributors

get_developer_profile

深度画像丰富:语言、星标、提交 + PR、OSS 贡献、许可证细分、个人 README,以及带细分的活跃度评分。

rank_candidates

根据职位描述对用户名进行排名。返回排序后的候选人,包含综合得分、优势、差距和理由。

score_against_jd

根据 JD 对候选人进行评分,并给出各维度细分(技术栈、经验水平、OSS 信号、领导力)。返回差距和个性化面试问题。

compare_candidates

2-5 名候选人的并排比较。显示各维度胜出者和推荐。可选地根据 JD 进行评分。

bulk_score

一次调用对最多 100 个 GitHub 用户名进行评分。返回排名的 Markdown 表格或 CSV。支持可选的 JD 匹配。

generate_outreach

生成个性化的招聘人员消息(短/中/详细),引用候选人实际的仓库和贡献。需要你的公司名称和发件人姓名。可选用随意或正式的语气。

get_repo_contributors

任何仓库的顶级贡献者。接受 owner/repo 或完整 URL。针对特定领域进行寻源的最快方式。

评分

活跃度评分结合了两层:行为信号(你最近做了什么)和声誉下限(你长期积累了什么)。

行为评分(0-205)

信号

最高分

说明

提交 + PR(最近 90 天)

60

推送提交 + PR 开启(PR 权重 x3)。同时捕捉基于推送和基于 PR 的工作流程。

仓库星标

40

个人仓库星标 + 你贡献的仓库的星标。组织仓库维护者获得积分。

个人 README

20

是否存在个人 README(github.com/username/username)。

关注者

20

上限为 20。

有描述的仓库

20

有描述的仓库的比例。体现用心和打磨的信号。

宽松许可证仓库

15

至少有一个仓库使用 MIT、Apache-2.0、BSD、ISC 或 Unlicense。

主要 OSS 贡献

30

在你非拥有的仓库上的 PR、推送或 issue。上限为 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 将活跃度评分与相关性评分(0-100)相结合,该评分基于职位描述与候选人画像(个人简介、语言、仓库主题、README)之间的关键词重叠。综合评分中相关性占 60%,活跃度占 40%——一个高活跃度但与职位无重叠的开发者不应排在相关开发者之前。

交互式仪表板

搜索产生候选名单后,服务器会询问你是否需要交互式仪表板——搜索、技能筛选、排名、证据和 GitHub 个人资料链接。回答“是”,你的助手就会使用其自身的工件工具(Copilot 的画布、Claude 的工件)根据评分后的候选人数据构建它。

它只会提供;除非你说“是”,否则不会构建任何内容,并且当搜索未产生可用画像时,该提议会被跳过。设置 GITHUB_TALENT_DASHBOARD_PROMPT=0 可将其关闭。

如果页面在内联画布中打开,请注意这些窗格会沙箱化其内容并阻止出站链接,因此助手也会被要求在你浏览器中打开保存的文件,以便 GitHub 链接正常工作。

速率限制

GitHub REST API:有令牌时 5,000 次请求/小时,无令牌时 60 次。 单个丰富画像需要 6-15 次调用,典型工作流程(搜索 + 丰富 5 个候选人 + 排名)使用约 60-100 次,因此未认证的服务器在一次搜索内就会耗尽配额。画像结果会在会话内缓存,以避免排名期间的冗余调用。

两个限制与每小时预算分开,值得了解:

  • 搜索端点/search/commits/search/issues)即使有令牌也仅允许 30 次请求/分钟。服务器将那里的失败视为未知的活跃度计数,而不是失败的画像,因此候选名单仍然会返回——提交计数可能只是显示为 0。

  • 次级速率限制会在并发请求突发时触发,并返回明确的 Retry-After。服务器会精确等待该时间,最多 30 秒,然后放弃,而不是在尚未解除的窗口内重试。

限制与负责任使用

此工具将公开 GitHub 活动评分作为技术寻源的一个信号。在依赖它之前,请了解其限制:

  • 不同运行之间结果会有所不同。 它是 AI 驱动的——助手决定探索哪些仓库和搜索,因此相同的提示词每次可能产生不同的候选名单。对于给定的候选人集合,评分本身是确定性的;变化来自寻源。对于可重复的运行,请限制寻源:指定要从中提取贡献者的仓库,或提供明确的用户名列表进行排名。

  • GitHub 并不代表工程师的全部。 公开活动是技术工作的有力证据,但对私有仓库和内部/企业贡献,以及非 GitHub 生态系统(邮件列表、GitLab 等)视而不见。它无法验证人员管理或领导力历史——请通过 GitHub 之外的方式确认。(声誉下限的存在正是因为近期活跃度低 ≠ 能力低。)

  • 将其用作线索生成器,而非过滤器。 公开 OSS 可见性与空闲时间、任职期限和环境相关——而不仅仅是技能——并且在不同人群中存在偏差。将分数视为外联和人工判断的起点。不要使用它们自动排除候选人,并始终将其与公平、与角色相关的评估相结合。

  • 数据是实时的且受速率限制。 分数反映查询时的 GitHub 状态,并随活动变化而变化;未认证的服务器上限为 60 次请求/小时。

许可证

Apache License 2.0 © 2026 Daniel An。发布的版本(包括 0.4.0)仍受 MIT 许可证约束;0.4.1 及以后版本为 Apache-2.0。

Available Tools

8 tools
bulk_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)

ParametersJSON Schema
NameRequiredDescriptionDefault
usernamesYes
job_descriptionNo
export_formatNomarkdown
top_nNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
usernamesYes
job_descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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"

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
job_descriptionYes
company_nameNo[Your Company]
sender_nameNo[Your Name]
toneNocasual

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
usernamesYes
job_descriptionYes
top_nNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
job_descriptionYes
usernamesYes
top_nNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
languagesNo
locationNo
min_followersNo
min_reposNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

A4.1/5.0
Disambiguation4/5

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.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with underscores (e.g., bulk_score, compare_candidates, generate_outreach). No mixing of conventions.

Tool Count5/5

8 tools is well-scoped for a developer sourcing server, covering search, enrichment, comparison, ranking, and outreach without being excessive.

Completeness4/5

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

ActivityMaintained
ResponsivenessSlow

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for GitHub operations, providing tools for repository management, issues, pull requests, and code search.

Latest Blog Posts

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