uk-he-data-mcp
This server lets you query UK higher-education open data — including student satisfaction, outcomes, and graduate earnings — with every figure paired with its appropriate benchmark.
search_providers: Look up any UK higher-education provider by name, nickname, or fragment (e.g. "UCL", "Manchester Met") to get their official name and UKPRN identifier used by all other tools.nss_scores: Retrieve National Student Survey positivity scores for a provider, filterable by subject, question/theme, population, mode, and level of study — paired with the OfS benchmark and UK sector average.compare_providers: Compare NSS results across two or more providers side-by-side, each judged against their own benchmark, with similar filtering options.b3_outcomes: Access OfS B3 continuation, completion, and progression rates with benchmarks and regulatory thresholds, filterable by subject or demographic splits (sex, ethnicity, age, disability, deprivation quintile).leo_earnings: Retrieve lower-quartile, median, and upper-quartile graduate earnings at 1, 3, and 5 years post-graduation by subject, with UK-wide figures for context.run_sql: Execute read-only SQL SELECT queries directly against the underlying DuckDB database (capped at 100 rows) for custom exploration.data://dictionaryresource: Descriptions of every table, its granularity, and what is deliberately absent from the dataset.Guided prompts: Built-in MCP prompts (
provider_health_checkandsubject_shortlist) that walk through the tools in the correct order with statistical conventions applied.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@uk-he-data-mcp NSS scores for Law at Birmingham"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
uk-he-data-mcp
An MCP server that lets Claude (or any MCP client) query UK higher-education open data: National Student Survey satisfaction, OfS student outcomes (continuation, completion, progression) and LEO graduate earnings, every figure paired with the benchmark the regulator intends it to be read against.
Status: built in public, moving fast. All three data sources are queryable; the interface may still change before the first tagged release.
Why
UK HE publishes a lot of good open data, and almost nobody can use it in conversation. The files are large, split across regulators, keyed on codes (UKPRN, CAH) that mean nothing to most people, and full of statistical conventions that are easy to get wrong — quoting an NSS score without its benchmark is the classic one. This server puts that data behind a small set of tools that carry those conventions with them, so an AI assistant can answer carefully instead of confidently.
Related MCP server: mcp-geo
Install
# one-off: build the local database (downloads open data from the OfS and DfE)
uvx --from git+https://github.com/wilgreeves-cmd/uk-he-data-mcp uk-he-data-mcp build
# then add the server to Claude Code
claude mcp add uk-he-data -- uvx --from git+https://github.com/wilgreeves-cmd/uk-he-data-mcp uk-he-data-mcp(PyPI release is coming, which shortens both commands to plain uvx uk-he-data-mcp.)
The build downloads open data straight from the Office for Students and loads it into a DuckDB file on your machine — no keys, no accounts. Queries run locally; tool results then enter your AI assistant's conversation context like anything else you discuss with it.
Try asking
"How satisfied are Law students at Birmingham, and is that good for a university with their intake?" — uses the OfS benchmark, so the answer compares like with like.
"Compare Sheffield and Sheffield Hallam for Computing" — side by side, each judged against its own benchmark rather than raw score vs raw score.
"Do mature students complete their degrees at Birmingham?" — B3 outcomes split by age on commencement, against the OfS regulatory threshold.
"What do Law graduates actually earn five years on?" — LEO quartiles, with the caveats stated: pre-tax, employment-matched, and emphatically not causal.
"Show me assessment-and-feedback scores for nursing at a small provider" — often returns nothing, and says why: cuts under 10 respondents are suppressed by the OfS, which is an answer, not an error.
"Which university gets the most applications for Computer Science?" — the server tells you this isn't answerable from open data (UCAS publishes no bulk application volumes) rather than guessing from satisfaction scores.
That last behaviour is deliberate. Each tool description states what the data cannot answer, so the model declines honestly instead of inferring.
Tools
Tool | What it does |
| Name, nickname or fragment → official name + UKPRN ("UCL" and "Sheffield Uni" both work) |
| NSS positivity vs OfS benchmark and UK sector average, filterable by subject (CAH), question/theme, population, mode and level |
| Two or more providers side by side, each judged against its own benchmark |
| Continuation, completion and progression rates vs OfS benchmarks and regulatory thresholds, by subject or demographic split |
| Graduate earnings (LQ/median/UQ) at 1, 3 and 5 years, by subject, with the UK figure for context |
| Read-only SELECT against the underlying DuckDB, capped at 100 rows, for anything the fixed tools don't cover |
Plus a data://dictionary resource describing every table, its grain, and
what is deliberately absent, and two MCP prompts — provider_health_check
and subject_shortlist — that walk a client through the tools in the right
order with the statistical conventions attached.
Roadmap
Discover Uni course catalogue — the full course census, crawled from the public sitemap.
Prebuilt database download, so the one-off build takes seconds rather than minutes.
Data sources and licences
Source | Publisher | Licence |
National Student Survey 2026 | Office for Students | |
Student outcomes (B3) Feb 2026 | Office for Students | OGL v3.0 |
LEO graduate earnings 2022/23 | Department for Education | OGL v3.0 |
Contains public sector information licensed under the Open Government Licence v3.0. This project is not affiliated with or endorsed by the Office for Students or the Department for Education.
Code is MIT licensed.
Available Tools
5 toolsb3_outcomesA
Student outcomes (OfS B3 indicators) for one provider.
Three indicators, each a percentage of students:
- Continuation: still in higher education (or qualified) about a year
after starting.
- Completion: qualified or still studying four years after starting.
- Progression: in managerial/professional employment or further study
15 months after graduating.
Each row carries the OfS benchmark (expected value given the provider's
student and course mix), the regulatory minimum threshold the OfS
enforces (condition B3), and the number of students behind the figure.
Quote outcomes against the benchmark, not just the raw percentage. Years
are pooled windows (e.g. "2019-2022") — the latest available per
indicator is returned.
Args:
ukprn: Provider id from search_providers.
indicator: Optional filter — "Continuation", "Completion" or
"Progression" (partial match). Omit for all three.
subject: Optional subject filter by CAH name ("Law") or code
("CAH16-01"). Omit for whole-provider figures.
split_type: Optional demographic split instead of subject — e.g.
"Sex", "Ethnicity", "AgeOnCommencement", "Disability",
"DeprivationQuintile". Use with or without split_value.
split_value: Optional value within the split, e.g. "Female",
"Mature". Partial match.
mode: "Full-time" (default), "Part-time" or "Apprenticeship".
level: "FirstDegree" (default), "AllUndergraduates",
"OtherUndergraduate", "PostgraduateTaughtMasters",
"PostgraduateResearch", "PGCE" and others.
A NULL value with a supp_reason (e.g. "[low]") means the OfS suppressed
that figure, usually for small numbers — report the suppression, don't
estimate. This dataset has no application volumes, entry grades or
satisfaction scores (NSS tools cover satisfaction).
Inputs: ukprn (required), mode, level, subject, +3 more. Returns: result
compare_providersA
Compare NSS results across two or more providers, side by side.
Returns one entry per question/theme, each holding every provider's
positivity score, its OfS benchmark and its position against it, plus the
UK sector average for context. Because each provider is judged against
its own benchmark, this comparison is fairer than ranking raw scores —
say which providers beat their benchmark, not just who scored highest.
Args:
ukprns: Two or more provider ids from search_providers.
subject: Optional CAH subject name filter, e.g. "Computing". Omit to
compare at whole-provider level.
question: Filter on question/theme text. Defaults to "Theme" (the
seven headline themes), which keeps the comparison readable.
Pass None (or a specific question) to widen or narrow it.
subject_level, population, mode_of_study, level_of_study: As in
nss_scores.
A provider missing from a row has suppressed data on that cut (under 10
respondents) — report the gap, don't fill it.
Inputs: ukprns (required), subject, question, population, +3 more. Returns: result
leo_earningsA
Graduate earnings (DfE Longitudinal Education Outcomes) for one provider.
Returns lower-quartile, median and upper-quartile annualised earnings at
1, 3 and 5 years after graduation, by CAH2 subject, with the UK-wide
figure on the same cut for context. Always quote the median with its
quartiles — the spread is usually the story — and say how many graduates
the figure is based on.
Args:
ukprn: Provider id from search_providers.
subject: Optional CAH2 subject name filter, e.g. "Law", "Computing"
(partial match). Omit for all subjects.
years_after: 1, 3 or 5 (years after graduation). Omit for all three.
tax_year: e.g. "2022/2023". Omit for the latest available.
characteristic_type: "All graduates" (default), or a split:
"sex", "ethnicity", "POLAR4", "prior_attainment_code".
characteristic_value: Value within the split, e.g. "F", "M".
Honest limits, worth repeating to the user: these are pre-tax earnings of
UK graduates in sustained employment whose records matched tax data —
the self-employed abroad, or those out of work, aren't in the medians.
Earnings reflect where graduates live and work (London weighting is
real), and nothing here is causal: a subject's high earnings may be who
it admits, not what it teaches. No figures on application volumes,
satisfaction or dropout — other tools cover the latter two.
Inputs: ukprn (required), subject, tax_year, years_after, +2 more. Returns: result
nss_scoresA
National Student Survey results for one provider.
Returns positivity scores (the % of students answering positively) per
question and theme, with two comparators: the OfS benchmark (the score a
provider with this mix of students and subjects would be expected to get,
including whether the provider is materially above or below it) and the
UK sector average on the same cut. A score without its benchmark is
misleading; always quote both.
Args:
ukprn: Provider id from search_providers.
subject: Optional CAH subject name filter, e.g. "Law", "Nursing"
(matches partially). Omit for provider-level results.
question: Optional filter on question/theme text, e.g. "feedback",
"Theme 3", "Q14". Omit for everything.
subject_level: Granularity of the subject cut when `subject` is given:
"CAH1" (broadest, ~23 groups), "CAH2" (default, ~35 groups) or
"CAH3" (finest, ~100+). Without this the same subject would appear
once per level.
population: "Registered" (default; the OfS headline convention) or
"Taught".
mode_of_study: "All modes" (default), "Full-time", "Part-time" or
"Apprenticeship".
level_of_study: "First degree" (default), "Other undergraduate",
"Undergraduate with postgraduate component" or
"All undergraduates".
This is survey data about the student experience. It cannot tell you
application volumes, offer rates, entry requirements or fees — none of
that is in the NSS. Say so rather than inferring it from satisfaction.
Inputs: ukprn (required), subject, question, population, +3 more. Returns: result
search_providersA
Find UK higher-education providers by name, nickname or fragment.
Returns each match with its UKPRN, the key that every other tool uses to
identify a provider. Use this first when the user names a university
loosely — "UCL", "Sheffield Uni" and "Manchester Met" all resolve.
Universities rank above colleges when a fragment matches both.
Covers the ~450 providers that appear in the National Student Survey.
It cannot tell you about providers with no published NSS results (very
small or new providers are often suppressed).
Inputs: query (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool covers a distinct aspect of UK higher education data: student outcomes (b3_outcomes), NSS satisfaction (nss_scores and compare_providers for cross-provider comparison), graduate earnings (leo_earnings), and provider lookup (search_providers). There is no overlap in purpose.
All tool names follow snake_case and a predictable pattern: data type nouns (b3_outcomes, leo_earnings, nss_scores) or verb_noun (compare_providers, search_providers). The naming is uniform and descriptive.
With 5 tools, the server is well-scoped for its domain. Each tool serves a necessary function without redundancy or bloat, covering key areas of higher education data.
The toolset covers student outcomes, satisfaction, and earnings comprehensively. Minor gaps exist (e.g., no tool for application data or fees), but these are explicitly excluded in tool descriptions and not core to the server's purpose.
Maintenance
Related MCP Connectors
Remote MCP server for deterministic educational practice-assessment score conversions.
Hosted MCP server for finding authoritative primary data sources and official portals.
MCP server for Altmetric APIs - track research attention across news, policy, social media, and more
data.gov.uk MCP — UK national open-data portal (CKAN API).
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server providing access to comprehensive UK school data from official government sources, including search, details, near-postcode, comparisons, Ofsted ratings, and DfE education datasets.11MIT
- AlicenseCqualityCmaintenanceA research MCP server for UK geospatial and statistical data, enabling AI assistants to query Ordnance Survey and ONS datasets.1033MIT
- AlicenseNot gradedqualityDmaintenanceFederated MCP server that routes K-12 education data requests to public sources like Urban Institute, EDC/Zelma, NAEP, and MA E2C, handling comparability and provenance automatically.MIT
- AlicenseAqualityCmaintenanceRead-only MCP server for factual queries and side-by-side comparisons of Korean university disclosure indicators using a bundled local snapshot, with no API key or network required.8142 npmMIT