使用说明
求职mcp服务器
用于求职、个人资料加载和公司研究的stdio MCP服务器。将4个工具暴露给任何兼容MCP的客户端。
工具
job_search
使用关键字、位置、工作类型、远程偏好、经验水平、工资和最近度的过滤器在LinkedIn上搜索工作列表。
默认值已调整为 高级、远程、全职 角色发布在 过去一周.
profile_data
加载并返回所有配置文件部分(经验、技能、教育等)和完整的连接文本。调用LLM直接将此数据用于工作对齐分析、求职信撰写或任何其他基于个人资料的任务。
job_description_search
从LinkedIn职位URL获取完整的职位描述。接受URL列表(来自 job_search 结果),并返回每个结果的完整描述文本。取数器以并行批处理的方式运行,并有延迟,以避免速率限制。
company_research
使用DuckDuckGo网络搜索对一家公司进行研究(通过Playwright)。搜索公司信息、最新新闻和Glassdoor评论。可选择抓取公司自己的网站。返回结构化数据,用于“他们说什么与实际做什么”分析。
安装
git clone https://github.com/ahardy42/job-search-mcp.git && cd job-search-mcp
npm install
npm run build
npx playwright install chromium # required for company_research and job_description_search
需要 Node.js>=20.
要验证一切正常,请执行以下操作:
npm test
然后将服务器连接到所选的MCP客户端(请参阅 连接到您的MCP客户端 在......下面
配置文件设置
这个 profile_data 该工具需要一个包含您的经验数据的配置文件目录。
- 创建一个
profile/项目根目录中的目录(它是gitignored) - 添加您的文件(Markdown、PDF或DOCX)
- 创建
profile/manifest.json列出您的文件:
{
"sections": [
{ "id": "summary", "label": "Professional Summary", "source": "summary.md", "format": "md", "order": 1 },
{ "id": "experience", "label": "Work Experience", "source": "experience.pdf", "format": "pdf", "order": 2 },
{ "id": "skills", "label": "Technical Skills", "source": "skills.md", "format": "md", "order": 3 }
]
}
支持的格式: md, txt, pdf, docx.
配置文件加载一次,并为服务器会话缓存。文件以显式方式处理 order 用于确定性输出。
通过以下方式覆盖配置文件目录路径 PROFILE_DIR 环境变量。
连接到您的MCP客户端
这是一个stdio服务器,它可以与任何兼容MCP的客户端配合使用。替换 /absolute/path/to/job-search-mcp/dist/index.js 使用机器上的实际路径。
节点版本管理器(nvm、nodenv、asdf): MCP客户端将服务器作为子进程生成,可能不会继承shell的PATH。使用节点二进制文件的完整路径(运行
which node找到它)。
克劳德代码(CLI)
通过命令行:
claude mcp add --transport stdio job-search -- node /absolute/path/to/job-search-mcp/dist/index.js
或手动输入 .mcp.json (项目范围,已检查到版本控制中):
{
"mcpServers": {
"job-search": {
"command": "node",
"args": ["/absolute/path/to/job-search-mcp/dist/index.js"]
}
}
}
重新启动Claude Code或运行 /mcp 以验证服务器是否已连接。
克劳德桌面
编辑配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"job-search": {
"command": "node",
"args": ["/absolute/path/to/job-search-mcp/dist/index.js"]
}
}
}
退出并完全重新启动Claude Desktop(不仅仅是窗口)。在聊天输入中查找锤子图标。
VS Code
创建 .vscode/mcp.json 在您的工作空间中:
{
"mcpServers": {
"job-search": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/job-search-mcp/dist/index.js"]
}
}
}
或者通过命令行:
code --add-mcp '{"name":"job-search","type":"stdio","command":"node","args":["/absolute/path/to/job-search-mcp/dist/index.js"]}'
其他MCP客户端(游标、Codeium等)
大多数客户端使用相同的标准格式:
{
"mcpServers": {
"job-search": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/job-search-mcp/dist/index.js"]
}
}
}
环境变量
通过 PROFILE_DIR 要覆盖默认配置文件位置,请执行以下操作:
{
"mcpServers": {
"job-search": {
"command": "node",
"args": ["/absolute/path/to/job-search-mcp/dist/index.js"],
"env": {
"PROFILE_DIR": "/path/to/your/profile"
}
}
}
}
发展
npm run dev # watch mode with tsx
npm run build # compile TypeScript
npm start # run compiled server
测试
该项目使用 维测试 在单元、工具和集成层进行了102次测试。
npm test # run all tests once
npm run test:watch # re-run on file changes
涵盖内容:
- 服务单元测试 --配置文件加载/缓存、LinkedIn HTML解析和URL构建、SSRF缓解措施(私有IP拒绝、DNS重新绑定、重定向验证)、HTTPS强制
- 工具单元测试 --Zod模式验证、处理程序响应、CHARACTER_LIMIT截断、4个工具中的每一个的错误处理
- 集成测试 --使用内存传输、工具列表、端到端工具调用和协议级别的输入验证进行完整的MCP客户端-服务器往返
以安全为重点的测试验证路径遍历、SSRF保护和输入验证不会倒退。
MCP检查员
这个 MCP检查员 提供了一个交互式web UI,用于测试对运行服务器的工具调用。
npm run inspect # against compiled dist/ (run npm run build first)
npm run inspect:dev # against src/ via tsx (no build needed)
开放时间: http://localhost:6274 您可以在其中浏览工具、编辑输入和查看原始响应。
