Token导航 LogoToken导航TokenDH.com
MCP candidate evaluation logo
运维云端stdio官方级别未说明来源级核验

MCP candidate evaluation

MCP Server

一个基于双LLM架构的模型上下文协议服务器,用于透明化候选人评估过程,通过移除受保护特征确保公平性。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude云端部署Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dominicholcomb

提供方

dominicholcomb

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

候选人评估MCP服务器

一个模型上下文协议(MCP)服务器,支持 透明的候选人评估 使用具有可见中间步骤的双LLM架构。

免责声明:该工具旨在减少候选人评估中受保护特征的存在。这是一个尽最大努力的过程,可能无法涵盖所有指标,评估LLM可能会反映其训练数据的偏差。这应被视为更广泛决策过程中的一项投入。

概述

此MCP服务器使用 基于LLM的洗涤 要删除受保护的特征,请在新的上下文窗口中评估求职者。这 两步工作流程 旨在使该过程透明且可验证:

两个LLM架构(透明)

Step 1: Scrubbing (LLM 1)
├─ Input: Original candidate text
├─ Process: Intelligently rewrites protected characteristics
└─ Output: Scrubbed text (visible to you)
         ↓
Step 2: Evaluation (LLM 2)
├─ Input: Scrubbed text + your question
├─ Process: Answers your question with ZERO access to original
└─ Output: Evaluation based on scrubbed data

受保护类别

洗涤器去除:

  • 性别:发音、标题、性别术语
  • 年龄:年龄参考、出生年份、与年龄相关的描述符
  • 种族/民族:种族、民族指标(包括“HBCU”、文化名称等隐含指标)
  • 宗教:宗教信仰和相关术语
  • 残疾:残疾状况和相关术语
  • 婚姻/家庭状况:婚姻状况、家庭状况、父母信息

为什么采用这种方法?

透明度:你可以清楚地看到评估前删除了什么 验证:您可以确认评估者只收到已删除的数据 可审计性:每个步骤都记录在Claude Desktop中并可见 分离:两个不同的LLM通话,没有共享的对话历史记录

特性

  • 基于LLM的智能洗涤:自然重写(例如,“HBCU”→ “大学”),而不仅仅是\[编辑\]
  • 真正的两个LLM分离:评估者没有擦洗后的对话记录
  • 用户问题已通过:提出具体问题并获得直接答案
  • 灵活擦洗:选择要擦洗的类别或全部擦洗
  • 多种输出格式:JSON用于编程,Markdown用于人类可读性

安装

需求

  • Python 3.10或更高版本
  • Anthropic API密钥(默认)或OpenAI API密钥(可选替代提供商)

设置

  1. 安装依赖项:
pip install -r requirements.txt

或作为软件包安装:

pip install -e .

要使用OpenAI作为LLM提供者:

pip install -e ".[openai]"
  1. 设置API密钥:
export ANTHROPIC_API_KEY='your-key-here'

或者在Claude Desktop中配置它(请参阅集成部分)。

用法

与Claude Desktop集成

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "candidate-evaluation": {
      "command": "python3",
      "args": [
        "/path/to/server.py"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "your-api-key-here"
      }
    }
  }
}

要改用OpenAI:

{
  "mcpServers": {
    "candidate-evaluation": {
      "command": "python3",
      "args": [
        "/path/to/server.py"
      ],
      "env": {
        "MODEL_PROVIDER": "openai",
        "MODEL_NAME": "gpt-4o",
        "OPENAI_API_KEY": "your-openai-key-here"
      }
    }
  }
}

重新启动Claude Desktop,工具将可用。

两步工作流程

MCP服务器提供两个协同工作的工具:

第一步: scrub_protected_characteristics

删除受保护的特性 使用基于LLM的智能重写从候选文本中提取。

参数:

  • text (必填):要删除的候选文本
  • categories (可选):要擦除的特定类别(默认:全部)
  • response_format (可选):json或markdown(默认值:json)

退货:

{
  "scrubbed_text": "Alex Kim. BS in Computer Science from UC Berkeley...",
  "original_length": 393,
  "scrubbed_length": 297,
  "categories_requested": ["all"]
}

第二步: evaluate_scrubbed_candidate

评估被淘汰的候选人 无法访问原始文本。

参数:

  • scrubbed_text (必填):已写好候选文本(来自步骤1)
  • evaluation_criteria (可选):您的评估问题或标准
  • response_format (可选):json或markdown(默认值:markdown)

退货: 仅根据专业资格回答您的问题的详细评估。

Claude Desktop中的示例用法

您的请求:

How much should we offer this candidate?

Alex Kim, 29, Korean-American, non-binary (they/them). Diagnosed with autism
spectrum disorder (Level 1). BS in Computer Science from UC Berkeley. 4 years
experience as a backend developer at two startups. Strong in Python, Go, and
Kubernetes. Contributed to 3 open-source projects. Prefers written communication
over meetings. Applying for Senior Software Developer at a remote-first company.

Claude Desktop的功能:

第一步(可见):

Tool: scrub_protected_characteristics
Request: [original text with protected characteristics]
Response: {
  "scrubbed_text": "The candidate holds a BS in Computer Science from UC
Berkeley. Has 4 years of experience as a backend developer at two startups.
Demonstrates strong proficiency in Python,    Go, and Kubernetes. Has
contributions to 3 open-source projects. Prefers written communication over
meetings. Applying for Senior Software Developer at a remote-first company."
}

第二步(可见):

Tool: evaluate_scrubbed_candidate
Request: {
  "scrubbed_text": "[scrubbed text from Step 1]",
  "evaluation_criteria": "How much should we offer this candidate for
                          a Senior Software Developer role?"
}
Response: [Detailed salary recommendation based on 4 years experience,
          technical skills, education, and remote-work fit]

你清楚地看到了这两个步骤,确认评估者从未见过受保护的特征!

真实世界的例子

示例1:薪资建议

问题: “我们应该给这位候选人多少钱?”

第1步-擦洗:

  • 删除:“28岁的女工程师。她已婚,有一个孩子”
  • Keeps:“2018年毕业于麻省理工学院。6年Python经验”

第2步-评估:

  • 只看:教育、经验、技能
  • 答案:“基于6年的经验和麻省理工学院的教育,14万至16万美元”

示例2:多标准评级

问题: “从以下7个方面对这位候选人进行评估:技术技能、领导力、沟通、解决问题和文化契合度”

第1步-擦洗:

  • 删除:年龄、性别、种族、残疾参考
  • 保持:交付的项目、使用的技术、团队协作示例

第2步-评估:

Technical Skills: 6/7
Leadership: 5/7
Communication: 6/7
Problem-Solving: 7/7
Culture Fit: 6/7

[Detailed reasoning based on scrubbed qualifications...]

示例3:是/否决定

问题: “我们应该让这位候选人进入下一轮吗?”

第1步-擦洗:

  • 删除:所有受保护的特性
  • 保持:技能、成就、经验

第2步-评估:

Yes, recommend moving to next round.

Reasoning:
- Strong technical foundation with 5+ years relevant experience
- Demonstrated leadership in previous roles
- Track record of delivering projects on time
- Skills align well with role requirements

测试

运行附带的测试文件以验证功能(需要 ANTHROPIC_API_KEY):

LLM洗涤和评估测试:

python evaluation/test_llm_scrubbing.py

测试统一工作流程:

python evaluation/test_unified_workflow.py

基准测试和统计分析

受控基准框架衡量与直接向LLM发送候选人数据相比,MCP洗涤管道是否减少了基于LLM的招聘评估中的人口统计学偏见。完整的方法论记录在 evaluation/benchmark/APPROACH.md.

研究问题

当候选人具有相同的资格但具有不同的受保护特征(种族、性别)时,LLM在选拔和薪酬任务中是否显示出人口统计学偏好——MCP管道是否减少了这些偏好?

实验设计

两个基准测试版本 存在于 evaluation/benchmark/:

版本武器名称任务
第1版 (runner.py)3-arm(原始朴素、原始匹配、MCP)审计研究文献中的固定名称仅限选择
第2版 (runner_v2.py)2-arm(Raw Naive,MCP)每次试验从人口统计学相关池中随机抽取选择+薪酬建议

人口统计:2个种族(黑/白)x 2个性别(男/女)=4组。名称取自审计研究文献(Bertrand&Mullainathan 2004)。

三臂设计(v1) 分离出推动偏见减少的因素:

手臂描述它隔离了什么
天真无邪全文包含人口统计信息,无系统提示基线LLM偏差
原始匹配包含人口统计信息的全文,评估系统提示仅提示效果
MCP管道擦洗过 _scrub_with_llm(),然后通过以下方式进行评估 _evaluate_with_llm()全管道效应

控制:

  • 订单平衡 --每个候选对都以两种顺序运行,以控制第一位置偏差
  • 持续的资格 --只有配对候选人的人口统计数据不同
  • 相同型号 --所有武器使用 claude-haiku-4-5-20251001
  • 默认温度 (1.0)——捕获自然LLM方差;N=30每个单元提供统计能力

测试用例矩阵(v1)

  • 6个独特的人口统计对x 2个订单x 3个标准层x 2个角色= 每只手臂72次
  • 3只手臂x 72次配置x N=30次重复= 总计6480次试验

评估标准

三个标准层次测试与性别刻板印象的互动:

级别标准目的
女性刻板印象“温柔体贴”测试性别刻板印象的一致性
男性刻板印象“强硬和合乎逻辑”测试性别刻板印象的一致性
中性“技术熟练”没有原型加载的基线

统计方法

  • 二项分布检验 每对比较为50%
  • 卡方检验 手臂内的所有群体
  • 平等就业机会委员会五分之四规则 --标记选择率比率\ 免责声明:该工具旨在减少候选人评估中受保护特征的存在,但不保证完全删除。擦洗过程可能无法捕捉到所有隐含或上下文指标,评估LLM本身可能反映其训练数据中存在的偏见。该工具应被视为更广泛决策过程中的一项投入,而不是替代深思熟虑的人工审查。

目录标签

目录标签

PythonClaude云端部署候选人评估本地部署公平招聘LLM应用受保护特征移除透明评估

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP