jobstack-mcp

Unified jobs search over official feeds + ATS boards (USAJOBS, Adzuna, Muse, Greenhouse, Lever...)

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
95%
命名の品質
100%
ポイズニングのリスク
80%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringsearch_jobs 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~712トークン数(ツール定義)
~2.1 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 0.56%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "jobstack-mcp": {
      "url": "https://jobstack-mcp.vercel.app/mcp"
    }
  }
}

リモートエンドポイント

https://jobstack-mcp.vercel.app/mcpstreamable-http

できること

ツール一覧

ツール(2)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢search_jobs(keywords, location, remote, sources, limit, ...)

Search job postings across every configured source and merge the results into one flat Job shape. Fans out in parallel to USAJOBS, Adzuna, Jooble, The Muse, Reed, and the ats engine (Greenhouse/Lever/Ashby/Workable/SmartRecruiters), then merges + sorts by postedDate (newest first) and paginates the combined set. Each Job has id, source, title, company, location, remote, url, description, postedDate, salaryMin, salaryMax, salaryCurrency, department, and employmentType. The response envelope carries meta, the echoed query, sources_requested, an optional sources_errored map, total, count, limit, offset, and results. Use sources= to restrict to specific engines.

入力スキーマ

{
  "type": "object",
  "properties": {
    "keywords": {
      "description": "Free-text search terms (job title, skill, company, etc.). Optional — omit to browse the latest postings.",
      "type": "string"
    },
    "location": {
      "description": "Free-text location filter (e.g. \"Washington, DC\" or \"London\"). Applied upstream where the source supports it.",
      "type": "string"
    },
    "remote": {
      "description": "Filter to remote roles when true. Only sources that expose an explicit remote signal apply it; others ignore it.",
      "type": "boolean"
    },
    "sources": {
      "description": "Comma-separated engine keys to restrict the fan-out to. Any of: usajobs, adzuna, jooble, themuse, reed, ats. Omit for all six.",
      "type": "string"
    },
    "limit": {
      "description": "Max results in the merged page, clamped 1-100. Default 20.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "offset": {
      "description": "Zero-based offset into the merged result set for pagination. Default 0.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_job(source, id)

Fetch one job posting by its source engine and native id, returned as { meta, job } with the same flat Job shape search_jobs yields. The id is the native upstream id as returned by that source in search results (NOT prefixed with the source name). Exception: for source="ats" the id is a composite "board:company:nativeId" string (e.g. "greenhouse:airbnb:7995153") so the lookup can round-trip to the right ATS board. Not every source supports single-job lookup — a search-only source returns a not_supported / not_found error.

入力スキーマ

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "enum": [
        "usajobs",
        "adzuna",
        "jooble",
        "themuse",
        "reed",
        "ats"
      ],
      "description": "The engine that produced the job (matches the Job.source field from search_jobs)."
    },
    "id": {
      "type": "string",
      "description": "Native upstream job id as returned by that source. For source=\"ats\", the composite \"board:company:nativeId\" string."
    }
  },
  "required": [
    "source",
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 2 件
検証済みバージョンは記録されていませんツール 2 件
検証済みバージョンは記録されていませんツール 2 件