{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_4s8vnq973pyz","handle":"job104-mcp","url":"https://wellknown.network/agents/job104-mcp","links":{"self":"https://wellknown.network/agents/job104-mcp/record.json","html":"https://wellknown.network/agents/job104-mcp","markdown":"https://wellknown.network/agents/job104-mcp/record.md","api":"https://wellknown.network/api/v1/agents/job104-mcp","status":"https://wellknown.network/api/v1/agents/job104-mcp/status","claim":"https://wellknown.network/agents/job104-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/job104-mcp/claim.json","badge":"https://wellknown.network/agents/job104-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/job104-mcp/history","tools":"https://wellknown.network/api/v1/agents/job104-mcp/tools"},"ard":{"identifier":"urn:air::server:job104-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"job104-mcp","summary":"MCP server for searching 104 (Taiwan) job listings with natural-language filters","description":"# job104-mcp\n\nAn MCP server for searching [104 人力銀行](https://www.104.com.tw) job listings with\nnatural-language filters. Works with any MCP client — Claude, Cursor, Windsurf, Cline,\nZed, VS Code, and others.\n\n> **Disclaimer:** This is an unofficial, educational/personal-use tool. It is **not\n> affiliated with, endorsed by, or sponsored by 104 Corporation**. It calls 104's\n> public web endpoints; please respect 104's Terms of Service and use it at a\n> reasonable, low frequency. No scraped job data is distributed with this project.\n\n## How it works\n\n104 sits behind Cloudflare bot protection — a plain HTTP request to its JSON API\nreturns 403. This server uses [`curl_cffi`](https://github.com/lexiforest/curl_cffi)\nwith `impersonate=\"chrome\"` to match a real browser's TLS fingerprint, so the same\npublic endpoints return their normal JSON.\n\nWhen Cloudflare rejects even that (104 tightened its rules in late 2026), the server\nfalls back to a headless Chrome/Edge already installed on your machine: it opens\n104 in the background and runs the same requests from inside that page. This adds\n~1–2 s to the first call and needs Chrome, Edge, Chromium or Brave installed — set\n`JOB104_CHROME=/path/to/browser` if yours isn't found automatically. The AI sees clean structured results; the\n104 category/area codes are resolved from Chinese names automatically.\n\n## Prerequisite: install uv\n\nEvery install path runs the server through [uv](https://docs.astral.sh/uv/), so it must\nbe installed first (`uvx` ships with uv):\n\n    # macOS / Linux\n    curl -LsSf https://astral.sh/uv/install.sh | sh\n    # Windows (PowerShell)\n    powershell -ExecutionPolicy ByPass -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n\n## Install in any MCP client (Cursor, Windsurf, Cline, Zed, VS Code, …)\n\nMCP is an open protocol, so any MCP-capable client works — not just Claude. Add this to\nthe client's MCP config (e.g. Cursor's `~/.cursor/mcp.json`); the `command`/`args` form is\nwhat most clients accept:\n\n    {\n      …","publisher":{"name":"mozzan","url":null},"homepage":"https://github.com/mozzan/job104-mcp","repository":"https://github.com/mozzan/job104-mcp","version":"0.1.10","license":null,"protocols":["mcp"],"tags":["104","claude","jobs","mcp","model-context-protocol","taiwan"],"pricing":null,"endpoints":[{"url":"pypi:job104-mcp","type":"package_pypi","auth":null,"probeable":false,"listed":true}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"infra.browser-automation","name":"Browser Automation","confidence":1,"provenance":"derived"}],"categories":["infra"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"job104-mcp","registry":"pypi","observedAt":"2026-11-09T12:23:27.526Z","publishedAt":"2026-11-03T13:42:35.062749Z","latestVersion":"0.1.10"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"job104-mcp","url":"https://pypi.org/project/job104-mcp/","firstSeenAt":"2026-09-09T22:22:36.700Z","fetchedAt":"2026-11-09T12:21:30.890Z","normalizedAt":"2026-11-09T12:21:30.890Z"}]},"firstSeenAt":"2026-09-09T22:22:36.700Z","updatedAt":"2026-11-09T12:23:27.526Z"}