雇佣mcp
一个小型MCP服务器,让克劳德与模拟招聘管道进行对话。旨在让我了解MCP的实际工作原理。
______________________________________________________________________
这是什么?
我一直在阅读关于MCP的文章,在接受了Anthropic对MCP的介绍后,我决定自己做一些东西来真正掌握它。所以我做了这个——一个从CSV加载候选数据并将其作为工具公开给Claude的Python服务器。您可以使用我编写的终端客户端(使用Anthropic API)运行它,也可以将它连接到Claude Desktop。 克劳德通过调用工具本身来处理诸如“谁在筹备中?”或“迪恩·温彻斯特处于哪个阶段?”之类的问题。候选数据都是假的电视角色。
______________________________________________________________________
文件
hiring-mcp/
├── server.py # the MCP server — loads the CSV, defines the tools
├── client.py # terminal chat client using the Anthropic API
├── candidates.csv # mock candidates (12 TV characters)
├── requirements.txt # dependencies
└── README.md______________________________________________________________________
设置
需要Python 3.10+。
cd hiring-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt______________________________________________________________________
运行它——选项1:终端客户端
最简单的方法(我自己测试的!)。设置API密钥并运行:
export ANTHROPIC_API_KEY="sk-ant-..."
python client.py它将连接到服务器,列出工具,并将您放入聊天室:
Connecting to hiring-mcp server...
Connected. 5 tools available: get_all_candidates, get_candidate_by_name, ...
Type your question and press Enter. Type 'quit' to exit.
------------------------------------------------------------
You: who is currently interviewing?
Claude: There are 4 candidates in the interviewing stage...quit 或 Ctrl+C 退出。它保持了上下文的交叉,因此后续问题可以很好地解决。
______________________________________________________________________
运行它——选项2:Claude桌面
查找配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
添加以下内容(使用绝对路径,相对路径不起作用):
{
"mcpServers": {
"hiring-mcp": {
"command": "/absolute/path/to/hiring-mcp/.venv/bin/python",
"args": ["/absolute/path/to/hiring-mcp/server.py"]
}
}
}完全退出并重新打开Claude Desktop。如果它没有连接,请检查设置>开发人员的错误日志。
______________________________________________________________________
工具
get_all_candidates --返回所有人 get_candidate_by_name --部分名称搜索,不区分大小写 filter_candidates_by_status --其中之一 applied, interviewing, offer, rejected filter_candidates_by_role --部分角色搜索,例如“工程师”、“设计师” get_candidate_profile --按ID列出的完整配置文件 summarise_pipeline --按状态计数
______________________________________________________________________
要问的问题
- “总结管道”
- “目前谁在面试?”
- “给我看看迪恩·温彻斯特的个人资料”
- “有人收到报价了吗?”
- “搜索任何叫露西的人”
______________________________________________________________________
下一步去哪里
- 将CSV转换为SQLite或Postgres
- 添加写入工具(
add_candidate,update_status) - 连接到真正的ATS,如Greenhouse或Lever
- 尝试将数据作为MCP资源而不是工具公开
______________________________________________________________________
麻省理工学院
