关于 JobSpy MCP Server
JobSpy MCP Server 是一个 MCP 服务,让 Claude 等 AI 助手可以跨多个招聘平台搜索职位。它以 JobSpy 工具为基础,返回结构化的职位数据。
主要功能
- 01跨多个招聘平台搜索职位
- 02支持按关键词、地点和发布时间筛选
- 03返回 JSON 或 CSV 格式结果
- 04支持 stdio 与 SSE 传输方式
适用场景
- 01让 AI 助手按条件查找近期发布的职位
- 02汇总 Indeed 与 LinkedIn 等平台的职位信息
- 03为网页应用提供通过 SSE 调用的职位搜索接口
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 search_jobs 工具,用于执行职位搜索。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
JobSpy MCP 服务
一种模型上下文协议(MCP)服务,可让 Claude 等 AI 助手使用 JobSpy 工具跨多个招聘平台搜索职位。
功能
- 跨多个平台搜索职位(Indeed、LinkedIn、Glassdoor 等)
- 按搜索词、地点、时间范围等条件筛选
- 获取 AI 模型易于处理的结构化职位数据
- 将结果格式化为 JSON 或 CSV
- 支持多种传输方式:用于集成 Claude 的 stdio,以及用于 Web 客户端的 SSE
前置条件
- Node.js 16+
- Python 3.6+
- 已安装并可使用 JobSpy 工具
安装
# Clone the repository
git clone https://github.com/borgius/jobspy-mcp-server.git
cd jobspy-mcp-server
# Install dependencies
npm install
# Make sure the JobSpy tool is properly set up
cd ../jobSpy
pip install -r requirements.txt
chmod +x run.sh
配置
服务会自动尝试在以下标准位置查找 JobSpy 脚本:
../jobSpy/run.sh(相对于服务目录)./run.sh(当前目录中)/app/run.sh(Docker 环境中)
环境变量
你可以使用以下环境变量配置服务:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
JOBSPY_DOCKER_IMAGE | JobSpy 使用的 Docker 镜像 | jobspy |
JOBSPY_ACCESS_TOKEN | JobSpy API 的访问令牌(如有需要) | none |
PORT | MCP 服务的端口 | 9423 |
HOST | HTTP 服务的主机 | '0.0.0.0' |
ENABLE_SSE | 启用 Server-Sent Events 传输 | 0 |
设置配置
你可以通过多种方式设置这些配置值:
1. 直接使用环境变量
export JOBSPY_DOCKER_IMAGE=jobspy
export JOBSPY_HOST='0.0.0.0'
export JOBSPY_PORT=9423
export ENABLE_SSE=1
2. 使用 .env 文件
在根目录中创建 .env 文件并写入配置:
JOBSPY_DOCKER_IMAGE=jobspy
JOBSPY_HOST='0.0.0.0'
JOBSPY_PORT=9423
ENABLE_SSE=1
用法
启动服务
npm start
连接 Claude Desktop
将以下内容添加到 Claude Desktop 配置文件中(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"jobspy": {
"command": "node",
"args": ["/path/to/jobspy-mcp-server/src/index.js"],
"env": {
"ENABLE_SSE": 0
}
}
}
}
与 Web 客户端配合使用(SSE 传输)
服务提供 HTTP 端点,供 Web 应用与 JobSpy MCP 服务交互:
-
连接以获取更新:
GET /mcp/connect- 建立用于实时更新的 Server-Sent Events(SSE)连接
- 返回进度更新和职位搜索结果
-
发送请求:
POST /mcp/request- 接受 MCP 格式的工具调用请求
- 返回工具响应
浏览器 JavaScript 客户端示例:
// Connect to SSE endpoint
const eventSource = new EventSource('http://localhost:9423/mcp/connect');
// Listen for updates
eventSource.onmessage = function(event) {
const data = JSON.parse(event.data);
console.log('Received update:', data);
// Handle progress updates
if (data.type === 'progress') {
updateProgressBar(data.progress);
}
};
// Send a search request
async function searchJobs() {
const response = await fetch('http://localhost:9423/mcp/request', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
tool: 'search_jobs',
params: {
search_term: 'software engineer',
location: 'San Francisco, CA',
site_names: 'indeed,linkedin'
}
})
});
return await response.json();
}
API 用法
服务提供以下端点:
搜索职位
GET /search
查询参数:
site_names:要搜索的招聘网站列表,以逗号分隔search_term:要搜索的词语location:职位地点- 以及所需的其他 JobSpy 参数
可用工具
search_jobs
跨多个招聘网站搜索职位。
参数:
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| site_names | string | 要搜索的招聘网站列表,以逗号分隔(indeed,linkedin,zip_recruiter,glassdoor,google,bayt,naukri) | "indeed" |
| search_term | string | 职位搜索词 | "software engineer" |
| location | string | 职位搜索地点 | "San Francisco, CA" |
| google_search_term | string | Google 专用搜索词 | null |
| results_wanted | integer | 所需结果数量 | 20 |
| hours_old | integer | 职位信息的最早发布时间(小时) | 72 |
| country_indeed | string | Indeed 搜索国家/地区 | "USA" |
| linkedin_fetch_description | boolean | 是否获取 LinkedIn 职位描述(速度较慢) | false |
| format | string | 输出格式(json 或 csv) | "json" |
| output | string | 不含扩展名的输出文件名 | "jobs" |
Claude 用法示例:
I need to find senior software engineer jobs in Boston posted in the last 24 hours on both LinkedIn and Indeed.
Docker 支持
提供了一个 Dockerfile,可将 MCP 服务容器化:
# Build the Docker image
docker build -t jobspy-mcp-server .
# Run the container
docker run -p 9423:9423 jobspy-mcp-server
开发
在开发模式下运行
npm run dev
Running tests
npm test
curl -X POST "http://localhost:9423/api" \
-H "Content-Type: application/json" \
-d '{
"method": "search_jobs",
"params": {
"search_term": "software engineer",
"location": "San Francisco, CA",
"site_names": "indeed,linkedin",
"results_wanted": 10,
"format": "json"
}
}'
License
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。