JobSpy MCP Server について
JobSpy MCP Server は、Claude などのアシスタントが複数の求人サイトを横断して求人を検索できるようにする MCP サーバーです。JobSpy ツールを基盤とし、モデルが処理しやすい構造化された求人データを返します。
主な機能
- 01複数の求人サイトを横断した検索
- 02検索語・勤務地・掲載期間による絞り込み
- 03JSON または CSV 形式での結果出力
- 04stdio と SSE のトランスポート対応
活用シーン
- 01AI アシスタントによる最近掲載された求人の検索
- 02Indeed と LinkedIn の求人情報の一括取得
- 03SSE 経由で Web クライアントに求人検索機能を提供
MCP 対応
本プロジェクトは MCP サーバーとして、MCP クライアントに search_jobs ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
JobSpy MCP サーバー
JobSpy ツールを使用して、Claude などの AI アシスタントが複数の求人掲載プラットフォームで求人を検索できるようにする Model Context Protocol(MCP)サーバーです。
機能
- 複数のプラットフォーム(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 のアクセストークン(必要な場合) | なし |
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 通信)
このサーバーは、Web アプリケーションが JobSpy MCP サーバーとやり取りできる HTTP エンドポイントを公開します。
-
更新情報を受信する:
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 のサポート
MCP サーバーをコンテナ化するための Dockerfile が用意されています。
# 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。