cyanheads avatar

College Scorecard Mcp Server

cyanheads/college-scorecard-mcp-server

Wraps the U.S. Department of Education College Scorecard API with nine tools that search institutions, compare outcomes, and pull program-level earnings data. You can filter schools by state, ownership, size, and acceptance rate, then drill into specific programs with median earnings at P25/P50/P75 one year post-graduation. The compare tool normalizes 2-5 schools side by side on costs, admissions, outcomes, or aid with percentile ranks computed in-flight. The value analysis tool runs parallel fetches for cost and earnings, then computes debt-to-earnings ratios and net price brackets the API doesn't expose directly. Includes CIP code lookup from embedded static data so you're not burning rate limits on taxonomy searches. Runs over stdio or streamable HTTP.

GitHub stars
1
tools
9
auth
Required
transport
STDIO, HTTP
env vars
7
last updated
Nov 3, 2026

Install

From registry metadata
$ npx add-mcp https://college-scorecard.caseyjhand.com/mcp --name college-scorecard

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http college-scorecard https://college-scorecard.caseyjhand.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 9 tools

Verified live against the running server on Nov 6, 2026.

scorecard_lookup_cipSearch the Classification of Instructional Programs (CIP) taxonomy by keyword or partial name. Returns matching CIP codes with standard titles. Use this before passing cip_code filters to scorecard_search_programs or scorecard_get_programs when you know a program by name but n...3 params

Search the Classification of Instructional Programs (CIP) taxonomy by keyword or partial name. Returns matching CIP codes with standard titles. Use this before passing cip_code filters to scorecard_search_programs or scorecard_get_programs when you know a program by name but n...

Parameters* required
limitinteger
Requested limit; serving cap 50, hard ceiling 1,000.default: 20
offsetinteger
Zero-based offset into the complete relevance-ordered matches.default: 0
query*string
Search term — program name keyword (e.g. "computer science", "nursing", "business"). Matches against CIP titles and family names.
scorecard_list_fieldsSearch the College Scorecard field catalog by keyword. Returns matching field paths, descriptions, data types, and whether each field supports API-side sorting. Use before passing custom field paths to the fields parameter on scorecard_get_school to find a supported path. Serv...2 params

Search the College Scorecard field catalog by keyword. Returns matching field paths, descriptions, data types, and whether each field supports API-side sorting. Use before passing custom field paths to the fields parameter on scorecard_get_school to find a supported path. Serv...

Parameters* required
limitinteger
Requested limit; serving cap 100, hard ceiling 1,000.default: 30
query*string
Keyword to search the field catalog (e.g. "tuition", "earnings", "admissions", "debt"). Matches against field paths, descriptions, and category names.
scorecard_search_schoolsSearch and filter U.S. colleges and universities by name, location, type, size, and acceptance rate. Returns core identity and cost metrics. Use scorecard_get_school for profiles or scorecard_search_programs for programs. Geographic distance requires a U.S. ZIP; ZIP alone uses...14 params

Search and filter U.S. colleges and universities by name, location, type, size, and acceptance rate. Returns core identity and cost metrics. Use scorecard_get_school for profiles or scorecard_search_programs for programs. Geographic distance requires a U.S. ZIP; ZIP alone uses...

Parameters* required
acceptance_rate_rangeobject
Acceptance rate range as decimals (0–1). Omit for no filter.
cip_codestring
Filter to schools offering this CIP 4-digit program code (e.g. "11.07"). Use scorecard_lookup_cip to find codes.
degree_levelinteger
Predominant degree: 0=Not classified, 1=certificate, 2=associate, 3=bachelor, 4=Entirely graduate-degree granting.
distancestring
Nonnegative radius: bare miles, mi, or km, including decimals. Requires meaningful zip.
men_onlyboolean
True selects men-only institutions; false selects institutions explicitly marked not men-only. Omit to include unknown values.
ownershipinteger
Control type: 1=public, 2=private nonprofit, 3=private for-profit.
pageinteger
Zero-indexed page number for pagination.default: 0
per_pageinteger
Results per page (max 100).default: 20
querystring
School name search — partial or full name; all words must appear.
size_rangeobject
Undergraduate enrollment size range. Omit for no size filter.
sortstring
Upstream sort expression on an indexed field, e.g. "latest.cost.avg_net_price.overall:asc" or ":desc" for reverse order. Use scorecard_list_fields for sort support; omission keeps API ordering.
statestring
Comma-separated two-letter state codes; case and whitespace normalized, blanks unset.
women_onlyboolean
True selects women-only institutions; false selects institutions explicitly marked not women-only. Omit to include unknown values.
zipstring
Five-digit U.S. ZIP or ZIP+4. Alone uses the provider default radius; blank is unset.
scorecard_get_schoolInstitutional profiles for one or more school IDs. Accepts up to 1,000 elements, deduplicates normalized IDs, serves the first 100 distinct IDs, and reports missing and unprocessed IDs separately. Use scorecard_compare_schools for comparisons. Custom fields return requested pa...4 params

Institutional profiles for one or more school IDs. Accepts up to 1,000 elements, deduplicates normalized IDs, serves the first 100 distinct IDs, and reports missing and unprocessed IDs separately. Use scorecard_compare_schools for comparisons. Custom fields return requested pa...

Parameters* required
fieldsstring
Optional comma-separated list of custom field paths from scorecard_list_fields. Overrides the default field set.
id*value
Positive safe integer school ID or up to 1,000 raw elements. First 100 distinct normalized IDs served; discover IDs with scorecard_search_schools.
program_limitinteger
Projected program positions per parent array; values above 100 are clamped to 100.default: 20
program_offsetinteger
Zero-based position in each projected program parent array.default: 0
scorecard_get_programsPage through field-of-study programs at one school, ranked and filtered by completion-based one-year earnings. Legacy highest-credential earnings remain separate from current one- and four-year completion series, with dictionary provenance. Earnings and debt pool across campus...6 params

Page through field-of-study programs at one school, ranked and filtered by completion-based one-year earnings. Legacy highest-credential earnings remain separate from current one- and four-year completion series, with dictionary provenance. Earnings and debt pool across campus...

Parameters* required
cip_codestring
Filter to one 4-digit CIP code, dotted or undotted (e.g. "11.07" or "1107" for Computer Science). Returns one row per credential level the school offers in that program.
credential_levelinteger
Filter by credential level: 1=undergraduate certificate, 2=associate, 3=bachelor, 4=post-baccalaureate certificate, 5=master, 6=doctoral, 7=first professional, 8=graduate/professional certificate,...
id*value
School ID from scorecard_search_schools.
limitinteger
Program rows per response; values above 100 normalize to 100.default: 20
min_earningsnumber
Minimum completion-based one-year median earnings; no legacy fallback.
offsetinteger
Zero-based program row offset after filtering and stable earnings ordering.default: 0
scorecard_get_earningsInstitution-level earnings of federally aided undergraduate entrants working and not enrolled, regardless of completion. Reports medians at 6/8/10 years after entry, 6/10-year percentiles, and non-male/male 6-year medians. For graduate program earnings use scorecard_get_progra...2 params

Institution-level earnings of federally aided undergraduate entrants working and not enrolled, regardless of completion. Reports medians at 6/8/10 years after entry, 6/10-year percentiles, and non-male/male 6-year medians. For graduate program earnings use scorecard_get_progra...

Parameters* required
id*value
School ID from scorecard_search_schools.
yearsarray
Optional API data-file start years from 1996–2025 (e.g. [2003, 2011, 2020]); valid files may lack observations. Omit or pass [] for snapshot only.
scorecard_search_programsFind programs across institutions, ranked and filtered by completion-based one-year median earnings within the fetched school page. Legacy highest-credential values remain separate with their own provenance. Earnings and debt pool across campuses sharing OPEID6 within CIP/cred...12 params

Find programs across institutions, ranked and filtered by completion-based one-year median earnings within the fetched school page. Legacy highest-credential values remain separate with their own provenance. Earnings and debt pool across campuses sharing OPEID6 within CIP/cred...

Parameters* required
cip_codestring
CIP 4-digit code to search for (e.g. "11.07" for Computer Science). Use scorecard_lookup_cip to find codes.
credential_levelinteger
Provider credential selector: 1=undergraduate certificate, 2=associate, 3=bachelor, 4=post-baccalaureate certificate, 5=master, 6=doctoral, 7=first professional, 8=graduate/professional certificate...
limitinteger
Program rows per response; values above 100 normalize to 100.default: 20
max_debtnumber
Maximum median cumulative Stafford/Grad PLUS debt across institutions at the same academic level, inclusive; excludes unavailable debt.
max_net_pricenumber
Maximum average net price at the school.
min_earningsnumber
Minimum completion-based one-year median earnings, inclusive, without legacy fallback; filters this school page locally while school totals remain unchanged.
offsetinteger
Zero-based row offset within the filtered and sorted school page.default: 0
ownershipinteger
Restrict to school type: 1=public, 2=private nonprofit, 3=for-profit.
pageinteger
Zero-indexed page number.default: 0
per_pageinteger
Schools per page (max 100); program rows may exceed this count.default: 20
program_namestring
Case-insensitive title substring matched within the fetched school page. Ignored when cip_code is provided; use cip_code for upstream program matching.
statestring
Comma-separated two-letter state codes; case and whitespace normalized, blanks unset.
scorecard_compare_schoolsSide-by-side comparison of the first five distinct normalized school IDs, accepting up to 1,000 raw IDs. Remaining IDs are unprocessed; request them separately. Ordinal competition ranks share ties; shared OPEID6 outcomes and mixed-period price rows are unranked. Topics: costs...2 params

Side-by-side comparison of the first five distinct normalized school IDs, accepting up to 1,000 raw IDs. Remaining IDs are unprocessed; request them separately. Ordinal competition ranks share ties; shared OPEID6 outcomes and mixed-period price rows are unranked. Topics: costs...

Parameters* required
ids*array
2–1,000 raw school IDs; first five distinct normalized IDs compared.
topic*string
Comparison topic: costs, admissions, outcomes, or aid.one of costs · admissions · outcomes · aid
scorecard_value_analysisAnalyze costs, debt, repayment progress, and earnings for one school. Returns debt-to-earnings and net-price-to-annual-earnings ratios alongside the source figures. family_income selects the applicable net-price bracket. Repayment progress is the share of borrowers paying down...2 params

Analyze costs, debt, repayment progress, and earnings for one school. Returns debt-to-earnings and net-price-to-annual-earnings ratios alongside the source figures. family_income selects the applicable net-price bracket. Repayment progress is the share of borrowers paying down...

Parameters* required
family_incomenumber
Annual family income in dollars. When provided, net price is shown for the applicable income bracket.
id*value
School ID from scorecard_search_schools.

Sponsors

Configuration

SCORECARD_API_KEY*

Required API key for the College Scorecard API. Free registration at https://api.data.gov/signup/. Rate limit: 1,000 requests/hour.

MCP_LOG_LEVELdefault: info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

MCP_TRANSPORT_TYPEdefault: http

Selects the HTTP transport.

MCP_HTTP_HOSTdefault: 127.0.0.1

The hostname for the HTTP server.

MCP_HTTP_PORTdefault: 3010

The port to run the HTTP server on.

MCP_HTTP_ENDPOINT_PATHdefault: /mcp

The endpoint path for the MCP server.

MCP_AUTH_MODEdefault: none

Authentication mode to use: 'none', 'jwt', or 'oauth'.

Readme

@cyanheads/college-scorecard-mcp-server

Search, compare, and analyze U.S. college data — costs, earnings, programs, and outcomes — via MCP. STDIO or Streamable HTTP.

9 Tools • 3 Resources • 1 Prompt • 1 Skill

Details

Repository
github.com/cyanheads/college-scorecard-mcp-server
Categories
Search & Web Crawling, Data & Analytics
Package
@cyanheads/college-scorecard-mcp-server
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Resources
11
Prompts
1
Tools verified
Nov 6, 2026

More from cyanheads

Related Search & Web Crawling MCP servers

View all
1cyanheads avatarCyanheads Mcp Servercyanheads/cyanheads-mcp-serverFleet discovery for the cyanheads MCP ecosystem — semantic search + install snippets.1stars
2cyanheads avatarGbif Biodiversity Mcp Servercyanheads/gbif-biodiversity-mcp-serverSearch GBIF species taxonomy, occurrence records, datasets, and publishers.1stars
3cyanheads avatarNist Nvd Mcp Servercyanheads/nist-nvd-mcp-serverSearch and audit NIST NVD CVEs by keyword, severity, CWE, CISA KEV status, and CPE.1stars
4cyanheads avatarUsda Mcp Servercyanheads/usda-mcp-serverSearch foods, compare nutrients, and look up the full USDA FoodData Central database.1stars
5danielenricocahall avatarDisney Lorcana MCPdanielenricocahall/lorcana-mcpMCP server for Disney Lorcana TCG: card search, deck validation, stats, and deck import/export1stars
6davidsirota avatarRollin Mcp Serverdavidsirota/rollin-mcp-serverWheelchair accessibility scores for 70,000+ US restaurants. Search, filter, and submit feedback.1stars