Skip to main content
Glama

uk-visa-sponsor-mcp

CI Python 3.10+ MCP License: MIT

An MCP server and CLI that answer the two questions every international job seeker in the UK asks: "Can this employer sponsor my visa?" and "Is this salary high enough for a Skilled Worker visa?"

Plug it into Claude Desktop, Claude Code or any Model Context Protocol client, and your assistant can check the Home Office's official Register of Licensed Sponsors and the Skilled Worker salary rules in the middle of a conversation:

You: I've got an offer from Northwind Analytics in London for £40,000 as a junior ML engineer. I'm on a Graduate visa. Can they sponsor me?

Assistant (calls search_sponsors and check_offer_salary): Northwind Analytics Ltd (London) holds an A-rated Skilled Worker licence. ML engineer roles usually fall under SOC 2134. Switching from a Graduate visa makes you a new entrant, so the minimum is the higher of £33,400 and 70% of the £54,700 going rate, which is £38,290. £40,000 meets it. A licence means they can sponsor, so confirm with them that they will, and check the current rules on GOV.UK.

(Illustrative conversation; "Northwind Analytics" is a fictional company from the test data.)

I built this because I needed it: I'm a recent MSc graduate in London on a Graduate visa, and checking every employer and offer by hand was slow and error-prone.


Tools

Tool

What it does

search_sponsors(company, town?, route="Skilled Worker", limit=10)

Fuzzy search of the official register. Handles "Ltd/PLC/Limited", "&" and typos, and filters by town and visa route

check_offer_salary(soc_code, annual_salary, new_entrant=false, weekly_hours=37.5)

Does a salary meet the Skilled Worker minimum? Returns the required amount, the shortfall and the reasoning

list_occupations()

Tech-related SOC 2020 codes with going rates and new-entrant minimums

register_status()

Organisations per route in the loaded register, and when it was downloaded

Every salary result carries a disclaimer, and the server's instructions tell the model to pass it on.


Related MCP server: hsm-mcp

Install

pip install git+https://github.com/SAIDUMPALA01/uk-visa-sponsor-mcp.git
sponsorcheck fetch          # downloads the latest register (about 127,000 organisations as of mid-2026) from GOV.UK

Claude Code

claude mcp add uk-visa-sponsor -- sponsorcheck mcp

Claude Desktop: add to claude_desktop_config.json:

{
  "mcpServers": {
    "uk-visa-sponsor": {
      "command": "sponsorcheck",
      "args": ["mcp"]
    }
  }
}

Set SPONSORCHECK_REGISTER if you keep the CSV somewhere other than ~/.cache/sponsorcheck/register.csv.

CLI

The same features work without an AI client:

$ sponsorcheck salary 2134 36000 --new-entrant
2134 Programmers and software development professionals, £36,000, new_entrant route: DOES NOT MEET (short by £2,290)
  - needs at least £38,290 (the higher of the amounts below)
  - new-entrant floor £33,400
  - 70% of the going rate = £38,290

$ sponsorcheck search "deutsche bank" --town London
$ sponsorcheck occupations

Exit codes make it scriptable: 0 means a match was found or the salary meets the rule, 1 means it doesn't, 2 means an input error.


How it works

  • Data: sponsorcheck fetch looks up the current CSV through the public GOV.UK Content API for the register publication, because the file URL changes with every update. The register has one row per organisation and route; rows are grouped into one record per organisation with all its routes and ratings.

  • Name matching: names are normalised (case, punctuation, "&" → "and", legal suffixes such as Ltd/PLC/LLP/UK removed) and ranked with RapidFuzz's weighted ratio. Exact normalised matches always rank first, and matches below a score of 80 are dropped rather than shown as false hope.

  • Salary rules: salary.py encodes the rules for applications from 22 July 2025:

    • Standard route: at least £41,700 and the occupation's going rate.

    • New-entrant route: at least £33,400 and 70% of the going rate, plus an hourly minimum of £17.13.

    • Going rates assume a 37.5-hour week and are pro-rated for other hours.

    • Every constant is in one file, with its source.

  • MCP: built on the official mcp Python SDK (v2), stdio transport. The tests start the real server process and talk to it with the SDK's client.

  • Quality: 30 tests (salary edge cases, fuzzy matching, CSV parsing, mocked GOV.UK download, MCP tool calls, CLI). A weekly CI job downloads the live register to catch format changes early.

Limits — please read

  • This is not legal advice. Immigration rules change. The October 2026 Budget announced lower going rates (25th percentile) with no start date yet; when that happens, the figures in salary.py must be updated.

  • Going rates were taken from secondary sources (listed in salary.py) because GOV.UK's Appendix Skilled Occupations could not be checked directly while building this. Verify them before relying on a result.

  • Only the standard and new-entrant routes are modelled. PhD, shortage-list and transitional options are not.

  • The Home Office decides the SOC code from a job's duties, not its title.

  • A sponsor licence means an employer can sponsor. It doesn't mean it will sponsor a particular role.

Development

pip install -e ".[dev]"
pytest
ruff check . && ruff format --check .

The test register (tests/fixtures/register.csv) uses fictional company names.


MIT licence. Built by Sai Dumpala — GitHub · LinkedIn

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables querying the Dutch IND public register of recognised sponsors for work/residence permits. Offers tools to search sponsors by name or KvK number and check register status.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that lets AI assistants search the UK Register of Licensed Visa Sponsors (125,000+ companies), enabling queries about company sponsorship, location, visa routes, and ratings.
      1
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI assistants to evaluate job postings under a UK visa constraint, including sponsor-licence checks with confidence grades, screening for seniority and hard requirements, and role searches that exclude recruitment agencies. It also tracks application history to help avoid duplicate applications.
      4
      72 npm
      MIT