CJ

chinpeerapat/jobspy-mcp-server

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

6 stars 3 forks 质量 82 趋势 22MIT

An MCP (Model Context Protocol) server that scrapes live job postings from LinkedIn, Indeed, Glassdoor, ZipRecruiter, Google Jobs, Bayt, Naukri, and BDJobs using python-jobspy. Built on FastMCP 3.

概览

An MCP (Model Context Protocol) server that scrapes live job postings from LinkedIn, Indeed, Glassdoor, ZipRecruiter, Google Jobs, Bayt, Naukri, and BDJobs using python-jobspy. Built on FastMCP 3.x against the current MCP spec (2025-11-25). Job boards aggressively block datacenter IPs, and JobSpy depends on tls-client (a native binary). Running the server on your own machine over stdio gives the best scrape success rate. Streamable HTTP mode is available behind a flag if you want to host it (bring your own proxies). Download jobspy-mcp-server.mcpb (rolling build from main) and open it with Claude Desktop, or drag the file onto the app. Versioned files live on Releases. The host's UV runtime installs Python and dependencies on first launch — you do not need a local Python toolchain. Optional install-time settings: proxies and a CA certificate bundle (for proxied HTTPS). See PRIVACY.md. CI packs and publishes the bundle on every push to main.

README

以下为原文 README 节选,完整内容请查看原文。

JobSpy MCP Server

An MCP (Model Context Protocol) server that scrapes live job postings from LinkedIn, Indeed, Glassdoor, ZipRecruiter, Google Jobs, Bayt, Naukri, and BDJobs using python-jobspy. Built on FastMCP 3.x against the current MCP spec (2025-11-25).

Why local?

Job boards aggressively block datacenter IPs, and JobSpy depends on tls-client (a native binary). Running the server on your own machine over stdio gives the best scrape success rate. Streamable HTTP mode is available behind a flag if you want to host it (bring your own proxies).

Installation

Claude Desktop (MCPB, one-click)

Download jobspy-mcp-server.mcpb (rolling build from main) and open it with Claude Desktop, or drag the file onto the app. Versioned files live on Releases. The host’s UV runtime installs Python and dependencies on first launch — you do not need a local Python toolchain.

Optional install-time settings: proxies and a CA certificate bundle (for proxied HTTPS). See PRIVACY.md.

CI packs and publishes the bundle on every push to main. To pack locally:

bash scripts/build-mcpb.sh
# → dist/jobspy-mcp-server-.mcpb
# → dist/jobspy-mcp-server.mcpb

From source (stdio)

Requires Python 3.10+ and uv.

git clone  && cd jobspy-mcp-server
uv sync

Note: python-jobspy is pinned to a GitHub commit ahead of the PyPI release (which is missing LinkedIn/Naukri fixes), so git must be on your PATH during install.

Usage

Claude Desktop (manual stdio)

If you are not using the MCPB, add this to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%/Claude/claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "jobspy": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/jobspy-mcp-server", "jobspy-mcp-server"]
    }
  }
}

Tip: Claude Desktop launches with a limited PATH that usually excludes ~/.local/bin, so you may need the absolute path to uv (e.g. /Users/you/.local/bin/uv) in command. (Thanks to @VennieSo in #1.)

Cursor / other MCP clients

Any stdio-capable client works with the same command:

uv run --directory /absolute/path/to/jobspy-mcp-server jobspy-mcp-server

HTTP mode (optional)

uv run jobspy-mcp-server --http --port 8000
# MCP endpoint: http://127.0.0.1:8000/mcp

Set JOBSPY_HTTP_TOKEN to require a bearer token; without it the endpoint is unauthenticated and should stay on localhost.

--stateless (HTTP only, opt-in)

在 GitHub 查看完整 README

安装

npx @modelcontextprotocol/inspector uv run jobspy-mcp-server # interactive testing
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "jobspy": { "command": "uv", "args": ["run", "--directory", "/absolute/path/to/jobspy-mcp-server", "jobspy-mcp-server"] } } }