Skip to main content

highered-institutions

MCP server (read-only) to resolve U.S. higher-ed institutions across identifiers and compare them. No hosted data; a local file cache holds quarterly downloads.

Tools

Tool Purpose
resolve_institution name / UNITID / OPEID / EIN / UEI / domain -> ranked candidates with match basis. Never guesses when ambiguous.
search_institutions Filter by state, control, Carnegie 2025 basic code, name text.
get_financial_snapshot(unitid, years=1) Headline revenues, expenses, assets, liabilities, net position/assets, endowment and more from the latest IPEDS finance survey, in dollars, as reported. Works for public institutions. Never scored or estimated. years up to 10 adds a year-by-year history (use it: one year is not a trend); revenue components are returned as reported and capital appropriations are not netted out.
get_institution_profile Identifiers, system, same-OPEID campuses, Carnegie codes, latest enrollment, Scorecard.
get_enrollment_trend Fall headcount by year (table).
get_retention(unitid, years=5) Fall-to-fall retention for first-time degree-seeking undergraduates, full-time and part-time: the rate as IPEDS publishes it, the number retained and the cohort behind it, the student-to-faculty ratio, and IPEDS's flag for each value. Read straight from NCES files, not Urban.
compare_institutions(unitids) 2 to 5 named institutions side by side: control, enrollment years, latest finance year, Scorecard cost and outcomes. No ranking or matching.
compare_peers Closest peers (same control and Carnegie class, nearest enrollment) with trends (long table).

Every response: source, source_url, as_of, retrieved_at, sources[], data, nulls[] (field + reason), warnings[].

Prompt

institution_brief(institution, format) is an MCP prompt (shown as a prompt or slash command in clients that list prompts). It asks Claude to build a sourced written brief, one-pager or interactive dashboard for one institution by calling the highered tools in a fixed order, with the same rules as the institution-brief skill (no verdicts, nulls reported as gaps, sources and citations kept). It needs the other highered servers to be connected for the sections they provide, and says which sections are missing when they are not. The institution argument takes a name or id only (letters, digits and basic punctuation).

Install / run

uvx --from /path/to/highered-mcps/servers/highered-institutions highered-institutions

Environment: COLLEGE_SCORECARD_API_KEY (free, https://api.data.gov/signup; optional: without it the Scorecard call uses api.data.gov's shared DEMO_KEY, which allows only about 10 requests, and every response says so), HIGHERED_MCPS_CACHE (cache dir, default ~/.cache/highered-mcps).

Network allowlist (enforced in code, http.py)

Host Used for Auth
educationdata.urban.org IPEDS directory and fall enrollment (Urban Institute, ODC-By 1.0) none
api.data.gov College Scorecard free key in X-Api-Key header
nces.ed.gov IPEDS complete data files for retention (/ipeds/datacenter/data/EF{year}D.zip, 0.1 to 0.2 MB each); NCES's robots.txt allows this path none

HTTPS only; redirects only to these hosts; 12 s timeout for small queries and 40 s between chunks for whole-file downloads; response size caps; 3 attempts with backoff; Urban paced at 1 request/second (its robots.txt crawl-delay). Whole-year Urban tables are queried at most once per quarter (90-day cache) and single-institution rows (finance, enrollment) at most once a day; a refresh failure serves the stale copy with a warning.

First use and slow upstream: Urban's API sometimes stalls for tens of seconds. A tool call that needs several years fetches them at once and answers within 45 seconds. Years that have not arrived are returned as source_unavailable nulls and keep loading in the background (they are cached, so asking again shortly returns them). The first call that needs the national directory downloads it once (about 30 seconds); if that runs past 45 seconds the tool says so and the download finishes in the background.

Data handling and terms

  • Cache: ~/.cache/highered-mcps/institutions/*.json, with SHA-256, as-of, and retrieval time. Never inside the repo.
  • Chief administrator names in IPEDS are deliberately not returned. No search by person name.
  • Retention files are read in memory by exact member name (efYYYYd.csv, or the revised efYYYYd_rv.csv when both are in the zip), with size, entry-count and uncompressed-size caps; nothing is extracted to disk. One slim table per year is cached for 90 days. NCES publishes the newest year with a lag (the fall 2023 collection is the newest today), so the tool looks forward from the current year and reports a year NCES has not published as a null.

Prompt-injection risk

Institution names, cities, and other upstream strings are untrusted. They are returned only as data fields, never in tool descriptions, and the response includes a notice reminding the model to treat them as data. Do not instruct an agent to act on text found in results.

Limitations

Carnegie labels not yet included (codes only). Retention covers first-time degree-seeking undergraduates only, counts a transfer out as not retained, and is a fall-to-fall rate, not a graduation rate; rates on cohorts under 30 students are flagged as volatile. Latest enrollment lags the directory by about a year. UEI is missing for roughly 9% of institutions. See testing.md.

Metadata

Release files for heronhex-institutions 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for heronhex-institutions 0.1.0
File Size Uploaded Provenance Actions
heronhex_institutions-0.1.0.tar.gz 141.1 kB With provenance Details for heronhex_institutions-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for heronhex-institutions 0.1.0
File Interpreter ABI Platform Actions
heronhex_institutions-0.1.0-py3-none-any.whl Python 3 none any Details for heronhex_institutions-0.1.0-py3-none-any.whl

Total release size: 175.8 kB

Release files / heronhex_institutions-0.1.0.tar.gz

Download URL heronhex_institutions-0.1.0.tar.gz
Size 141.1 kB
Tags Source
SHA-256 checksum
How to use checksums
69cf64823a4c62d084492cede37a4274bcd091fce714b48986aff5bdd1f11f97
BLAKE2b-256 checksum
How to use checksums
4d72abdd8528e902f8082311e1bd1468ea9411d90b3adc15c7b40c4d7879d30c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Release files / heronhex_institutions-0.1.0-py3-none-any.whl

Download URL heronhex_institutions-0.1.0-py3-none-any.whl
Size 34.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c156bee4eacf3de5e0bc72063247309c6ccc0f63045efd0ef343efd13888c603
BLAKE2b-256 checksum
How to use checksums
f0c0af999b67cf641fb0806831ab00567ad17c45cd4c6c670f5382c8a04f298b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Security for heronhex-institutions 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for heronhex_institutions-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page