mcpField
J
jobstack-mcp

jobstack-mcp

远程服务
jobstack-mcp.vercel.app商业与营销013 周前更新

关于 jobstack-mcp

jobstack-mcp 是连接 JobStack 的远程 MCP 适配器,供需要搜索和获取统一职位源及公开 ATS 看板职位的客户端使用。它将六种来源引擎的数据整合为统一职位格式,并提供两个只读工具。

主要功能

  1. 01搜索六种来源引擎的职位
  2. 02按关键词和地点筛选
  3. 03筛选远程职位
  4. 04对搜索结果分页并排序
  5. 05按来源和 ID 获取职位

适用场景

  1. 01跨职位源和 ATS 看板搜索岗位
  2. 02按地点或远程状态缩小结果
  3. 03获取搜索结果中职位的详情

MCP 相关

通过 `/mcp` 的 streamable HTTP 传输,将 JobStack 的搜索和职位获取端点公开为两个只读 MCP 工具。调用会转发至 jobs API,并将其 JSON 响应作为工具结果返回。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://jobstack-mcp.vercel.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

2
参数类型必填说明
limitinteger否合并后页面的最大结果数,限制在 1–100 之间。默认值为 20。
offsetinteger否合并结果集中用于分页的从零开始的偏移量。默认值为 0。
remoteboolean否为 true 时筛选远程职位。仅对提供明确远程标记的来源生效;其他来源会忽略此项。
sourcesstring否用逗号分隔的引擎键,用于限定并行查询的范围。可选值:usajobs、adzuna、jooble、themuse、reed、ats。省略则查询全部六个引擎。
keywordsstring否自由文本搜索词(职位名称、技能、公司等)。可选;省略则浏览最新职位信息。
locationstring否自由文本位置筛选条件(例如 "Washington, DC" 或 "London")。在来源支持的位置应用。

详细介绍

jobstack-mcp

一个面向 JobStack 的远程 **MCP(Model Context Protocol)**连接器。JobStack 是统一的职位搜索 API(jobs-api),可整合官方招聘平台的数据源和公共 ATS 平台(USAJOBS、Adzuna、Jooble、The Muse、Reed,以及由一个 ats 引擎统一接入的 Greenhouse/Lever/Ashby/Workable/SmartRecruiters),并将结果转换为统一的 Job 数据结构。

在线服务: https://jobstack-mcp.vercel.app/mcp — 提供 2 个工具,通过 MCP 可流式传输的 HTTP 传输协议公开。由于上游 jobs-api 部署按用量计费(RapidAPI/Apify),且其 /v1/* 路由受 RapidAPI 代理密钥保护,此连接器使用同一密钥(JOBSTACK_MCP_PROXY_SECRET,通过 X-RapidAPI-Proxy-Secret 标头发送)对外发起的调用进行身份验证,并应用软性 IP 速率限制(JOBSTACK_MCP_RATE_LIMIT,默认为每小时 30 次工具调用,基于内存),确保免费的 MCP 层用于发现,而非绕过付费职位列表的无限制通道 — 参见 lib/ratelimit.js。

项目简介

JobStack 是一个纯 REST API。本仓库是一个轻量适配器,将每个端点作为可发现的、类型化的 MCP 工具公开,让 MCP 客户端(Claude、ChatGPT 及任何支持 MCP 的 Agent)能够直接调用,并通过单个 /mcp 端点使用 MCP 可流式传输的 HTTP 传输协议。它本身不包含业务逻辑 — 每次工具调用都会直接 fetch jobs-api,并将 JSON 响应原样作为工具结果返回。

工具

工具JobStack 端点描述
search_jobsGET /v1/jobs/search搜索并合并所有引擎(或 sources= 指定的引擎子集)的职位信息,按最新发布优先排序,并支持分页。
get_jobGET /v1/jobs/{source}/{id}根据来源引擎和原生 ID 获取单个职位(ats 使用组合 ID:board:company:nativeId)。

两个工具均为只读工具,标注为 { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }。

search_jobs 输入
  • keywords(字符串,可选)— 自由文本搜索词。
  • location(字符串,可选)— 自由文本地点筛选条件。
  • remote(布尔值,可选)— 在数据源提供相关标记时,筛选远程职位。
  • sources(字符串,可选)— 引擎键组成的逗号分隔列表:usajobs, adzuna, jooble, themuse, reed, ats。省略时搜索全部六个引擎。
  • limit(整数,范围 1-100,可选,默认值 20)。
  • offset(整数,≥0,可选,默认值 0)。
get_job 输入
  • source(枚举:usajobs | adzuna | jooble | themuse | reed | ats)。
  • id(字符串)— 搜索结果中的上游原生 ID;对于 ats,则为组合字符串 board:company:nativeId。

配置

  • JOBSTACK_MCP_API_BASE_URL — 上游基础 URL。默认值为 https://jobs-api-gamma.vercel.app。
  • JOBSTACK_MCP_PROXY_SECRET — 随对外调用转发为 X-RapidAPI-Proxy-Secret 的 RapidAPI 代理密钥(生产环境源站会对 /v1/* 进行保护,因此必须提供)。
  • JOBSTACK_MCP_RATE_LIMIT — 每个 IP 每小时的工具调用软性上限。默认值为 30。

本地开发

npm install
npm run dev          # starts local-server.js on http://localhost:3900
npm run smoke        # in another terminal — real HTTP/JSON-RPC smoke test

test/smoke.mjs 会通过真实 HTTP/JSON-RPC 与运行中的服务交互,并验证 GET /health、initialize(serverInfo.name === "jobstack")以及 tools/list(包含 2 个工具及其从 zod 导出的架构),随后尝试执行一次实时的 search_jobs 工具调用。在本地未设置 JOBSTACK_MCP_PROXY_SECRET 时,上游源站会返回 403(受 RapidAPI 保护)——这是预期的上游身份验证情况。冒烟测试会将其报告为软警告,同时仍验证完整的协议功能。

部署

cd /Users/isaiahdupree/Software/jobstack-mcp
npx vercel --yes --prod

部署完成后,可在 Claude、ChatGPT 或任何 MCP 客户端中注册此 MCP 连接器,URL 为 https://<deployment-domain>/mcp。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。