MCP server for searching 104 (Taiwan) job listings with natural-language filters
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"job104-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# job104-mcp An MCP server for searching [104 人力銀行](https://www.104.com.tw) job listings with natural-language filters. Works with any MCP client — Claude, Cursor, Windsurf, Cline, Zed, VS Code, and others. > **Disclaimer:** This is an unofficial, educational/personal-use tool. It is **not > affiliated with, endorsed by, or sponsored by 104 Corporation**. It calls 104's > public web endpoints; please respect 104's Terms of Service and use it at a > reasonable, low frequency. No scraped job data is distributed with this project. ## How it works 104 sits behind Cloudflare bot protection — a plain HTTP request to its JSON API returns 403. This server uses [`curl_cffi`](https://github.com/lexiforest/curl_cffi) with `impersonate="chrome"` to match a real browser's TLS fingerprint, so the same public endpoints return their normal JSON. When Cloudflare rejects even that (104 tightened its rules in late 2026), the server falls back to a headless Chrome/Edge already installed on your machine: it opens 104 in the background and runs the same requests from inside that page. This adds ~1–2 s to the first call and needs Chrome, Edge, Chromium or Brave installed — set `JOB104_CHROME=/path/to/browser` if yours isn't found automatically. The AI sees clean structured results; the 104 category/area codes are resolved from Chinese names automatically. ## Prerequisite: install uv Every install path runs the server through [uv](https://docs.astral.sh/uv/), so it must be installed first (`uvx` ships with uv): # macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows (PowerShell) powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" ## Install in any MCP client (Cursor, Windsurf, Cline, Zed, VS Code, …) MCP is an open protocol, so any MCP-capable client works — not just Claude. Add this to the client's MCP config (e.g. Cursor's `~/.cursor/mcp.json`); the `command`/`args` form is what most clients accept: { …
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.