Sponsor Finder

io.sponsorfinder由 sponsorfinder.io 發布官方發布者v1.0.0更新於 Oct 28, 2026

Check whether a company holds a UK or Netherlands work-visa sponsorship licence.

已驗證Streamable HTTP可網頁執行位置與生活網頁搜尋與抓取商業與電商

概覽

AI 產生的概覽

唯讀的遠端 MCP 伺服器,讓助理查詢英國與荷蘭的工作簽證擔保執照,以及英國薪資門檻。

可以做什麼
  • 查詢某公司在英國或荷蘭是否持有擔保執照,並回傳類別、評級、地點與登記日期
  • 依名稱、城市、類別或擔保類型搜尋擔保名冊,回傳精簡清單與總數
  • 依 id 取得單一機構的完整紀錄,可選擇包含名冊變更歷史
  • 說明名冊統計、資料更新時間,以及執照、類別、評級、擔保類型等術語含義
  • 以英國職缺薪資對照技術工人簽證薪資門檻與職業現行工資標準
適用情境
適合求職或移居情境:想確認某間雇主能否擔保英國或荷蘭工作簽證,或判斷英國錄取通知是否達到薪資門檻。也適合查看某城市或某類別下有哪些持照雇主。
執行需求
使用託管端點無需任何設定:不需帳號、金鑰或標頭。若要在本機執行,需要 Node.js 24 與 pnpm,並設定 SPONSORFINDER_API_BASE 與 SPONSORFINDER_API_KEY 兩個環境變數以存取上游 API。
安裝前請注意
僅供讀取,沒有寫入工具,也不保存使用者狀態。託管服務把上游 API 金鑰保存在伺服器端,用戶端看不到。選用的分析功能會把工具呼叫事件送到 Google Analytics,啟用 CAPTURE_QUERY_NAMES 後還會送出所查詢的公司名稱,可能構成個人資料。資料僅供參考,不構成法律意見,且可能落後於官方發布。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Sponsor Finder,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.sponsorfinder%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "sponsor-finder": {
      "type": "http",
      "url": "https://mcp.sponsorfinder.io/mcp"
    }
  }
}

README

SponsorFinder MCP Server

An authless, read-only remote MCP server that lets AI assistants (Claude, ChatGPT, Cursor, …) check whether a company holds a UK or Netherlands work-visa sponsorship licence. It proxies the public SponsorFinder API, shaping responses into clean verdicts, and keeps the upstream API key server-side so clients connect with no credentials.

[License: MIT] [Node >=24] [Built with MCP]

What it does

SponsorFinder tracks two official government registers of licensed work-visa sponsors:

  • UK — the Home Office register of licensed sponsors, rebuilt from the CSVs the Home Office publishes (checked daily). Carries routes (e.g. Skilled Worker), ratings (A/B) and locations.
  • Netherlands — the IND public register of recognised sponsors, checked daily. Lists recognised sponsors and their sponsor type (WORK / EXCHANGE / STUDY / RESEARCH); much thinner than the UK data — no routes, ratings, or locations.

This MCP server exposes that data as four tools. It is read-only and authless for clients: the upstream x-api-key is a server-side secret that MCP clients never see. There is no OAuth, no per-user state, and no write tools.

Tools

ToolTitleWhat it doesKey inputs
check_sponsor_licenseCheck Sponsorship LicencePrimary tool. Resolves a company by name (typo-tolerant) and returns a verdict — licensed, formerly_licensed, ambiguous, or not_found — with routes, ratings, locations and register dates. Refuses to guess on weak matches.company_name (2–100 chars, typos OK), country (uk | nl | both, default both)
search_sponsorsSearch Sponsor RegisterExploratory list search with optional filters. Returns a compact list plus a total count. For one specific company, prefer check_sponsor_license.query?, country (uk | nl, default uk), city? (UK), route? (UK), sponsor_type? (NL: WORK | EXCHANGE | STUDY | RESEARCH), limit (1–20, default 10)
get_sponsor_detailsGet Sponsor DetailsFull record for one organization by id: routes/ratings/locations/dates (UK) or sponsor type + KvK number (NL). Optionally includes register change history.org_id (int), country (uk | nl, default uk), include_history (bool, default false)
get_register_infoAbout the Sponsor RegistersRegister statistics, data freshness, a terminology glossary, and the legal disclaimer. Use it to explain what a licence, route, rating, or sponsor type means.none

Every tool is annotated readOnlyHint: true and returns both a human-readable text block and structuredContent, each stamped with the data-freshness date and a source note.

Example prompts

Natural-language things you can ask an assistant once the server is connected:

  • "Does Google hold a UK sponsorship licence?"
  • "Is ASML a recognised sponsor in the Netherlands?"
  • "Search UK Skilled Worker sponsors in Manchester."
  • "List Dutch WORK-type sponsors matching 'shell'."
  • "What does a B rating mean?"

A note on name matching. The fuzzy match tolerates typos (e.g. googel uk), but it needs a reasonably complete name to resolve confidently — "Google UK" or "Google UK Limited" resolves cleanly, whereas a single bare word can match many companies. The server deliberately refuses to guess on weak or tied matches: instead of silently picking one, it returns an ambiguous verdict with the candidate list and asks you to disambiguate (or to call get_sponsor_details with the right id). Absence from a register is itself a meaningful answer: it means the company cannot currently sponsor that visa type.

Use it (hosted)

The server is hosted at:

https://mcp.sponsorfinder.io/mcp

Claude Code

bash
claude mcp add --transport http sponsorfinder https://mcp.sponsorfinder.io/mcp

claude.ai — Settings → Connectors → Add custom connector → paste the URL above. No authentication is required.

ChatGPT — Settings → Connectors (or a custom GPT's Actions) → Add a custom/remote MCP connector and paste the URL above.

Any MCP client that speaks Streamable HTTP can connect the same way — point it at https://mcp.sponsorfinder.io/mcp.

Run locally

Prerequisites: Node.js 24 and pnpm 11.

bash
pnpm installcp .env.example .env# then edit .env and fill in:#   SPONSORFINDER_API_BASE   e.g. https://api.sponsorfinder.io#   SPONSORFINDER_API_KEY    your upstream x-api-key (server-side secret)

Run one of the two transports in watch mode:

bash
pnpm dev:stdio   # stdio transport (Claude Desktop / Claude Code / MCP Inspector)pnpm dev:http    # Streamable HTTP on http://localhost:3001/mcp

Add the local stdio build to Claude Code:

bash
pnpm buildclaude mcp add sponsorfinder -- node dist/entry/stdio.js

Inspect the tools interactively with the MCP Inspector against either transport:

bash
npx @modelcontextprotocol/inspector

Configuration

All configuration is via environment variables (see .env.example):

NameRequiredDefaultDescription
SPONSORFINDER_API_BASEyes—Base URL of the upstream SponsorFinder API, no trailing slash (e.g. https://api.sponsorfinder.io).
SPONSORFINDER_API_KEYyes—Upstream x-api-key header value. Server-side secret — never exposed to MCP clients, tool output, errors, or logs.
PORTno3001HTTP port for the Node entry (src/entry/node.ts). Ignored by stdio and Cloudflare Workers.
UPSTREAM_TIMEOUT_MSno10000Upstream request timeout in milliseconds (aborted via AbortSignal.timeout()).

SPONSORFINDER_API_KEY is the one true secret. MCP clients connect authless; the key lives only on the server (a Docker env var or a Cloudflare Workers secret) and is never surfaced to clients.

Self-host / deploy

The Web-standard core runs on both Node and Cloudflare Workers; only the entry file differs.

Docker (primary) — image ghcr.io/alirezahamid/sponsor-finder-mcp, config in Dockerfile and docker-compose.yml:

bash
docker compose up -d

Put a reverse proxy (Caddy/nginx) in front of mcp.sponsorfinder.io and pass POST, GET and DELETE through to /mcp. Streamable HTTP needs response buffering off (proxy_buffering off; in nginx; Caddy's defaults are fine).

Cloudflare Workers — config in wrangler.jsonc:

bash
wrangler secret put SPONSORFINDER_API_KEYpnpm deploy:worker

Development

ScriptWhat it does
pnpm typecheckType-check with tsc --noEmit.
pnpm lintLint with ESLint.
pnpm testRun unit tests (excludes smoke tests).
pnpm test:smokeIntegration smoke tests against the real staging API (needs secrets).
pnpm buildBundle to dist/ with tsup.
pnpm checktypecheck + lint + test in one go.

Analytics (optional)

The server can report usage to Google Analytics 4 via the server-side Measurement Protocol. Because an MCP server has no browser, a GA/GTM JavaScript tag cannot run in it — the server sends events over HTTP instead. It works on both Node and Cloudflare Workers.

Analytics are off unless both GA_MEASUREMENT_ID and GA_API_SECRET are set. Each tool call emits one mcp_tool_call event with categorical parameters — tool, status, verdict, country, mcp_client, latency_bucket, error_kind. By default no company names or free-text queries are sent to GA; the searched name is only included (as the query param) if you opt in with CAPTURE_QUERY_NAMES — see below.

Setup:

  1. Create a GA4 property (free) and a Web data stream.
  2. In Admin → Data streams → your stream → Measurement Protocol API secrets, create a secret. Copy the stream's Measurement ID (G-XXXXXXXXXX) and the secret value.
  3. Set GA_MEASUREMENT_ID and GA_API_SECRET (env / Docker / wrangler secret).
  4. In GA4, register the event params above as custom dimensions (Admin → Custom definitions) so they appear in reports. Use GA_DEBUG=true to send to GA's validation endpoint while testing.

Unmet-demand analysis: setting CAPTURE_QUERY_NAMES=true records the searched company name to the server's structured logs and sends it to GA4 as the query event param (register a query custom dimension to see it). Off by default. Caveats: raw names are high-cardinality in GA (bucketed as (other)) and person-named queries may count as PII under GA's terms — a private log store is usually the better home for this, and you should add a privacy-policy line before enabling it.

How it works

The server is a thin, stateless proxy with response shaping. An MCP client connects over stdio or stateless Streamable HTTP; a small Hono app (with @hono/mcp) constructs an MCP server per request, calls the SponsorFinder API with the server-side key, validates every response with zod (a contract-drift guard), and shapes it into a compact verdict. Register stats and filter values are cached in-process with a short TTL. Because the core uses only Web-standard APIs (fetch, URL), the same code runs on Node and Cloudflare Workers — only src/entry/* differs.

MCP client (Claude / ChatGPT / Cursor)        │  stdio  or  stateless Streamable HTTP        ▼SponsorFinder MCP server  (Hono + @hono/mcp)   • 4 read-only tools, zod-validated   • x-api-key added server-side   • cached /status + /filters        │  HTTPS  (x-api-key)        ▼SponsorFinder API  →  UK Home Office register + Dutch IND register

Data & disclaimer

The data comes from the official UK gov.uk register of licensed sponsors and the Dutch IND public register of recognised sponsors, refreshed daily.

This tool is informational only and is not legal advice. Register data can lag official publications, and a licence does not guarantee a company will sponsor any given role. Always verify against the official sources before making decisions.

Contributing

Issues and pull requests are welcome at github.com/alirezahamid/sponsor-finder-mcp. Please run pnpm check before opening a PR.

Publishing note: server.json is the manifest for the official MCP registry. Before running mcp-publisher publish, confirm the exact $schema URL against the current registry.modelcontextprotocol.io docs — the schema version pinned here may have moved on.

License

MIT © 2026 Alireza Hamid

來源:README.md,提交 475f83d

工具

5

check_sponsor_license

Check Sponsorship Licence

Check whether a company holds a UK or Netherlands work-visa sponsorship licence. The register lists official registered legal entity names, not brand, product, or trading names. If the user provides a brand name, product name, or website, first determine the company's registered legal name (via web search, the company's own website, or the relevant companies register) and pass that. Tolerates minor typos but not brand-vs-legal-name mismatches. Returns licence routes, ratings, locations and register dates. If results are ambiguous or none are found, refine the legal name and try again. For exploring or filtering many companies, use search_sponsors instead.

輸入參數countrycompany_name必填

search_sponsors

Search Sponsor Register

Exploratory list search of the sponsor register with optional filters (city/route for UK, sponsor type for NL). Returns a compact list with a total count. For checking one specific company, prefer check_sponsor_license.

輸入參數citylimitqueryroutecountrysponsor_type

get_sponsor_details

Get Sponsor Details

Full record for one organization by id: routes, ratings, locations and register dates (UK), or sponsor type and KvK number (NL). Optionally include register change history.

輸入參數org_id必填countryinclude_history

get_register_info

About the Sponsor Registers

Register statistics, data freshness, and terminology for the UK and Netherlands sponsor registers. Use this to explain what a licence, route, rating, or sponsor type means.

無需輸入參數。

check_salary_threshold

Skilled Worker Salary Check

Check a UK job offer against the Skilled Worker visa salary thresholds and occupation going rates. Takes a job title (or SOC 2020 code), the annual salary, and the contracted weekly hours — hours matter, because going rates pro-rate. Returns a three-state verdict: eligible, not_eligible, or uncertain with the reason. Covers the standard Skilled Worker route only (not Health & Care or Global Business Mobility).

輸入參數phd_stemjob_title必填new_entrantphd_relevantweekly_hours必填salary_gbp_per_year必填on_immigration_salary_list

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分