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 分