Jobo Job Search について
Jobo Job Searchは、Joboの最新求人インデックスをLLMクライアントに提供するリモートMCPサーバーです。詳細な条件検索に加え、Deep Researchに対応する独立した検索・取得ツールを備えています。
主な機能
- 01構造化フィルターによる求人検索
- 02Deep Research形式での求人取得
- 03求人情報の詳細取得
- 04フィルター項目と最新件数の表示
- 05OAuthトークンのJobo APIへの転送
活用シーン
- 01勤務地、スキル、勤務形態で求人を検索
- 02Deep Researchで求人情報を利用
- 03求人の詳細や説明を確認
MCP 対応
ステートレスなStreamable HTTP MCPエンドポイントで求人検索ツールを提供します。クライアントはJoboアカウントを使ってOAuth 2.1で認証し、`jobs:read`スコープを指定します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://jobs-mcp.jobo.world/mcpclaude mcp add --transport http world-jobo-job-search https://jobs-mcp.jobo.world/mcp{"mcpServers":{"world-jobo-job-search":{"type":"http","url":"https://jobs-mcp.jobo.world/mcp"}}}Cursor で開く{"servers":{"world-jobo-job-search":{"type":"http","url":"https://jobs-mcp.jobo.world/mcp"}}}VS Code で開く{"mcpServers":{"world-jobo-job-search":{"type":"http","url":"https://jobs-mcp.jobo.world/mcp"}}}{"mcpServers":{"world-jobo-job-search":{"serverUrl":"https://jobs-mcp.jobo.world/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Jobo 求人検索 MCP サーバー
雇用主の採用サイトや150以上の応募者追跡システムから収集した数百万件の求人情報を含む、Joboの最新求人インデックスをLLMクライアントに提供するリモートMCPサーバーです。
クライアント(Claude、ChatGPT、Cursor、Codex CLI)のセットアップ手順とツールのリファレンスについては、jobo.world/docs/connectors/mcpをご覧ください。
- トランスポート: Streamable HTTP、単一の
/mcpエンドポイント、ステートレスです。MCP仕様 2026-07-28 をネイティブにサポートし、組み込みのレガシーフォールバック(SDK v2のcreateMcpHandler。どちらの世代にも対応する単一のファクトリー)を通じて、2025年世代のすべてのクライアントにも対応します。 - 認証: OAuth 2.1。このサーバーはリソースサーバーであり、認可サーバーはJobo APIです。クライアントはJoboアカウントでログインします。APIキーをコピー&ペーストする必要はありません。必須スコープ:
jobs:read
セルフホスト
ホスト型のデプロイ先はhttps://jobs-mcp.jobo.worldです。代わりに独自の環境で実行するには、次のようにします。
npx jobo-job-search-mcp
$PORT(デフォルトは3002)でStreamable HTTPサーバーを起動します。クライアントの接続先をhttp://localhost:3002/mcpに設定してください。これはゲートウェイの実行場所を変更するだけで、認証モデルは変わりません。上流APIは、どのゲートウェイ経由でリクエストが転送されたかにかかわらず、すべてのリクエストを認可サーバーに対して検証するため、引き続きJoboアカウントへのサインインを必要とするOAuthリソースサーバーです。実際に公開するホストに合わせてMCP_RESOURCE_URLを設定してください。詳しくは、以下の設定をご覧ください。
このサーバーが別個になっている理由
Jobo.Enterprise/Jobo.Enterprise.Mcpは、v4で分析専用に意図的に再スコープされ、その際にsearch_jobs、get_job_details、list_filters、search、fetchが削除されました。ここに求人ツールを戻すと、その決定を覆すことになるため、同じExternal APIを利用する2つ目のサーバーとして用意しています。
/api/mcp/jobs/*エンドポイントは削除されたことがありません。McpController.csは現在もこれらを提供しており、そのコメントにも、GET検索は「ChatGPTの標準的なsearch(query)ツールに便利」と記されています。このサーバーは、そのために構築されたエンドポイントの前段に置かれる、OAuth転送専用の薄いゲートウェイです。
すぐに得られるメリットは、searchとfetchによりDeep Researchとの互換性が回復することです。 この標準的な組み合わせがなければ、サーバーをChatGPT Deep Researchコネクターとして使用することはできません。
ツール
| ツール | 用途 |
|---|---|
search | Deep Researchの標準コントラクト:{query} → {results: [{id, title, url}]}。 |
fetch | Deep Researchの標準コントラクト:{id} → {id, title, text, url, metadata}。 |
search_jobs | 構造化検索。勤務地、勤務形態、雇用形態、経験レベル、情報源、スキル、業界、給与、日付、ファセット、ページングで検索できます。 |
get_job_details | Deep Researchコントラクトを使用しないクライアント向けに、求人情報全体を返します。 |
list_filters | 各フィルターで指定可能な値を、最新の件数とともに返します。 |
searchとfetchが受け取る引数は、コントラクトで許可されている最小限のものに意図的に絞っています。構造化された検索には、フィルターを期待値頼みの自由記述ではなく実際のパラメーターとして指定できるsearch_jobsを使用してください。
fetchが返す内容
textは自己完結した文章です。Deep Researchはこのテキストを読み、URLを開かないためです。原文のHTMLは定型文が多く、役立つ情報より長くなることもよくあるため、雇用主のHTMLよりもAIが抽出したフィールド(職務内容、応募資格、福利厚生、報酬)を優先して作成しています。原文の説明は、include_description: trueを指定したget_job_detailsから取得できます。
認証モデル
このサーバーはゲートウェイであり、暗号処理の権威ではありません。C# External API は、同じ発行者、オーディエンス、jobs:read スコープを使用して OpenIddict で JWT を検証します。ここで署名をもう一度検証しても、2 つの検証処理の不整合を招くだけです。そのため、ゲートウェイに最低限必要な処理のみを行います。
- Bearer トークンを必須とします。トークンがない場合は、OAuth フローを開始するリソースメタデータチャレンジを付けて
401を返します。 - すでに期限切れのトークンを(署名を検証せずに
expをデコードして)低コストで拒否します。これにより、長時間接続するクライアントは期限切れのトークンを転送せず、更新します。 - 現在のリクエストの生のトークンを
req.authに設定します。これにより、各ツール呼び出しでは、クライアントが直前に送信したトークンが転送されます。セッション初期化時に取得したトークンを使うことはありません。
設計上のステートレス性
セッションマップはありません。このマップはプロセスのメモリ上にあったため、再起動や再デプロイのたびにクライアントが「アクティブなセッションがありません」という状態になり、デプロイ先も単一のレプリカに固定されていました。また、Redis でも管理できません。値がオープンストリームを保持する稼働中のトランスポートオブジェクトだからです。各 POST は、新しいサーバーとトランスポートで処理され、mcp-session-id は発行されません。
設定
| 変数 | デフォルト値 | 説明 |
|---|---|---|
JOBO_API_URL | https://connect.jobo.world | 上流の External API です。 |
MCP_RESOURCE_URL | https://jobs-mcp.jobo.world | OAuth オーディエンスです。分析サーバーの mcp.jobo.world とは異なる値である必要があります。 |
OAUTH_AUTH_SERVER_URL | https://enterprise.jobo.world | 認可サーバーです。 |
PORT | 3002 | 分析サーバーは 3001 を使用します。 |
開発
npm install && npm run build && npm test
npm run dev
認証情報なしでの検証
node --test dist/format.test.js では、search と fetch が Deep Research に必要な形状を正確に返すことを含め、マッピングロジックを検証します。通信経路を検証するには、サーバーの接続先としてスタブを指定します。
JOBO_API_URL=http://localhost:3098 PORT=3097 MCP_RESOURCE_URL=http://localhost:3097 node dist/index.js
その後、HTTP 経由で tools/list と tools/call を実行します。exp が未来の時刻に設定された JWT 形式の Bearer トークンなら何でも使用できます。ゲートウェイがそれを転送し、スタブが応答します。実際のトークンが必要なのは、稼働中の API に接続する場合だけです。
レジストリへの掲載
公式 MCP Registry に world.jobo/job-search(package.json の mcpName。このディレクトリの server.json はレジストリマニフェストです)として公開されています。公開は自動化されており、mcp-v* タグのワークフローで npm に公開した後、DNS-TXT による検証済みの world.jobo/* 名前空間で server.json をレジストリにプッシュします。詳しくは ../RELEASING.md を参照してください。レビュー待ちキューはなく、アグリゲーターはおよそ 1 時間ごとにポーリングします。なお、公式レジストリには設計上、サーバーごとのウェブページがありません。アグリゲーター向けのメタデータ API です。下流の各サービスでの扱いは異なり、PulseMCP は dofollow リンクを生成し、Glama と mcp.so は nofollow です。手動でのディレクトリへの登録(Claude、ChatGPT、アグリゲーターへの申請)は ../MCP-DISTRIBUTION.md に記載されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。