college-scorecard-mcp-server
Server Details
Search, compare, and analyze U.S. college data — costs, earnings, programs, and outcomes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/college-scorecard-mcp-server
- GitHub Stars
- 1
- Server Listing
- College Scorecard MCP Server
TDQS
Score is being calculated.
Available Tools
9 toolsscorecard_compare_schoolsCompare SchoolsRead-onlyInspect
Normalized side-by-side comparison of 2–5 schools on a named topic. Returns percentile-ranked rows and relative deltas within the result set — structured output an agent cannot reconstruct from raw profiles. Topics: costs (tuition, net price by income bracket, debt), admissions (acceptance rate, SAT/ACT, enrollment), outcomes (graduation rate, earnings, repayment), aid (Pell grants, federal loans, debt, repayment). This is different from scorecard_get_school with multiple IDs — compare_schools adds within-set normalization.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Array of 2–5 school unit IDs to compare. | |
| topic | Yes | Comparison topic: costs, admissions, outcomes, or aid. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | Comparison rows — one per metric, with per-school values and ranks. |
| error | No | Present when the call failed. Absent on success. |
| topic | No | The comparison topic used. |
| notice | No | Warning if some requested IDs returned no record. |
| schools | No | Schools in the comparison set, in the same order as the ids input. |
| summary | No | Brief interpretive summary highlighting the most notable relative differences. |
scorecard_get_earningsGet School EarningsRead-onlyIdempotentInspect
Institution-level post-graduation earnings for one school — median and percentiles at 6, 8, and 10 years after entry, with optional gender breakdown. This reflects outcomes across all graduates, not broken down by program. For program-specific earnings use scorecard_get_programs. For ROI analysis combining cost and debt data use scorecard_value_analysis. The years parameter accepts a list of cohort entry years for historical trend queries — omit for current snapshot only.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | School ID from scorecard_search_schools. | |
| years | No | Optional list of cohort entry years for historical trend data (e.g. [2011, 2012, 2013]). Omit for current snapshot. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| trend | No | Historical trend rows by cohort entry year. Present only when years parameter was supplied. |
| current | No | Most recent available earnings snapshot. |
| school_id | No | School unit ID. |
| suppressed | No | True when earnings data is suppressed across all time points. |
| school_name | No | Institution name. |
| suppression_note | No | Explains suppression when suppressed=true. |
scorecard_get_programsGet School ProgramsRead-onlyIdempotentInspect
All field-of-study programs at one school with median earnings 1 year after the highest credential, cumulative Stafford/Grad PLUS debt, and IPEDS award counts for each year of the pooled debt cohort. This is the primary source for program-level earnings — institution-level 6/8/10-year earnings are available via scorecard_get_earnings. Earnings may be suppressed (null) for programs with small cohorts due to FERPA privacy protection; suppressed=true flags this explicitly. Use scorecard_lookup_cip to find CIP codes by name.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | School ID from scorecard_search_schools. | |
| cip_code | No | 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. | |
| min_earnings | No | Minimum 1-year post-graduation median earnings filter. | |
| credential_level | No | 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, 99=non-credential. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| query | No | Normalized effective school ID and program selectors. |
| total | No | Total programs returned after filtering. |
| notice | No | Guidance when no programs match the filters or all data is suppressed. |
| programs | No | All programs at this school matching the filters. Sorted by median earnings descending (suppressed programs at end). |
| school_id | No | School unit ID. |
| school_name | No | Institution name. |
| suppressed_count | No | Number of programs with earnings suppressed due to small cohort. |
scorecard_get_schoolGet School ProfileRead-onlyIdempotentInspect
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 paths and their JSON values in selected_fields, absent paths in absent_fields, and real identity; default profiles include costs, admissions, outcomes, aid, and completion rates.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Positive safe integer school ID or up to 1,000 raw elements. First 100 distinct normalized IDs served; discover IDs with scorecard_search_schools. | |
| fields | No | Optional comma-separated list of custom field paths from scorecard_list_fields. Overrides the default field set. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| notice | No | Warning when some requested IDs returned no record. |
| schools | No | Full profiles for the requested school(s). |
| missing_ids | No | Processed distinct IDs with no returned record. |
| total_found | No | Number of records returned. |
| total_requested | No | Number of IDs requested. |
| unprocessed_ids | No | Distinct IDs beyond the 100-ID serving cap, in caller order. |
scorecard_list_fieldsList Scorecard FieldsRead-onlyIdempotentInspect
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. Served entirely from embedded static data — no API call, no rate limit impact.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Requested limit; serving cap 100, hard ceiling 1,000. | |
| query | Yes | Keyword to search the field catalog (e.g. "tuition", "earnings", "admissions", "debt"). Matches against field paths, descriptions, and category names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The limit that was applied. |
| tip | No | Usage tip for unsortable fields when relevant. |
| error | No | Present when the call failed. Absent on success. |
| query | No | The search query used. |
| shown | No | Number of fields returned. |
| notice | No | No-match guidance. |
| results | No | Matching field entries ranked by relevance. |
| guidance | No | Concrete narrowing guidance when matches remain. |
| truncated | No | True when results were capped at the limit. |
| queryContext | No | Effective selectors. |
| totalMatches | No | Number of matching fields found. |
scorecard_lookup_cipLookup CIP CodeRead-onlyIdempotentInspect
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 not its code. Served entirely from embedded static data — no API call, no rate limit impact.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Requested limit; serving cap 50, hard ceiling 1,000. | |
| query | Yes | Search term — program name keyword (e.g. "computer science", "nursing", "business"). Matches against CIP titles and family names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The limit that was applied. |
| error | No | Present when the call failed. Absent on success. |
| query | No | The search query used. |
| shown | No | Number of CIP codes returned. |
| notice | No | No-match guidance. |
| results | No | Matching CIP entries ranked by relevance. |
| guidance | No | Concrete narrowing guidance when matches remain. |
| truncated | No | True when results were capped at the limit. |
| queryContext | No | Effective selectors. |
| totalMatches | No | Number of matches found. |
scorecard_search_programsSearch ProgramsRead-onlyInspect
Find programs by CIP code across institutions, ranked by median earnings within the fetched school page. Accepts school-side filters (state, ownership, max cost). Minimum earnings is applied locally; totals and pagination count schools before local program filtering. Use scorecard_lookup_cip to convert program names to CIP codes. Returns school names and IDs alongside program earnings, cumulative Stafford/Grad PLUS debt, and IPEDS awards for follow-up calls to scorecard_get_school or scorecard_get_programs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Zero-indexed page number. | |
| state | No | Comma-separated two-letter state codes; case and whitespace normalized, blanks unset. | |
| cip_code | No | CIP 4-digit code to search for (e.g. "11.07" for Computer Science). Use scorecard_lookup_cip to find codes. | |
| max_debt | No | Maximum median cumulative Stafford/Grad PLUS debt across institutions at the same academic level, inclusive; excludes unavailable debt. | |
| per_page | No | Schools per page (max 100); program rows may exceed this count. | |
| ownership | No | Restrict to school type: 1=public, 2=private nonprofit, 3=for-profit. | |
| min_earnings | No | Minimum 1-year median earnings, inclusive. Filters this school page locally and excludes unavailable earnings; school totals are unchanged. | |
| program_name | No | Case-insensitive title substring matched within the fetched school page. Ignored when cip_code is provided; use cip_code for upstream program matching. | |
| max_net_price | No | Maximum average net price at the school. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The per_page limit that was applied. |
| page | No | Current page (zero-indexed). |
| error | No | Present when the call failed. Absent on success. |
| query | No | Normalized effective selectors and pagination defaults. |
| shown | No | Schools returned on this page. |
| total | No | Total schools matching upstream filters, before pagination and local program filtering. |
| notice | No | Recovery hint when no programs match or earnings data is unavailable. |
| per_page | No | Results per page used. |
| programs | No | Program results — multiple programs per school if school matches multiple CIP codes. Sorted by earnings descending (suppressed last). |
| truncated | No | True when school pagination metadata indicates a later page exists. |
| totalCount | No | Total schools matching upstream filters, before pagination and local program filtering. |
| total_programs | No | Total programs returned across all result schools. |
| suppressed_count | No | Programs with suppressed earnings. |
scorecard_search_schoolsSearch SchoolsRead-onlyInspect
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 program rankings. Geographic distance requires a U.S. ZIP; ZIP alone uses the provider default radius. State accepts comma-separated two-letter codes (e.g. WA,CA). Ownership: 1=public, 2=private nonprofit, 3=for-profit. Degree level: 0=non-degree, 1=certificate, 2=associate, 3=bachelor, 4=graduate.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Five-digit U.S. ZIP or ZIP+4. Alone uses the provider default radius; blank is unset. | |
| page | No | Zero-indexed page number for pagination. | |
| sort | No | 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. | |
| query | No | School name search — partial or full name; all words must appear. | |
| state | No | Comma-separated two-letter state codes; case and whitespace normalized, blanks unset. | |
| cip_code | No | Filter to schools offering this CIP 4-digit program code (e.g. "11.07"). Use scorecard_lookup_cip to find codes. | |
| distance | No | Nonnegative radius: bare miles, mi, or km, including decimals. Requires meaningful zip. | |
| men_only | No | True selects men-only institutions; false selects institutions explicitly marked not men-only. Omit to include unknown values. | |
| per_page | No | Results per page (max 100). | |
| ownership | No | Control type: 1=public, 2=private nonprofit, 3=private for-profit. | |
| size_range | No | Undergraduate enrollment size range. Omit for no size filter. | |
| women_only | No | True selects women-only institutions; false selects institutions explicitly marked not women-only. Omit to include unknown values. | |
| degree_level | No | Predominant degree: 0=non-degree/certificate, 1=certificate, 2=associate, 3=bachelor, 4=graduate. | |
| acceptance_rate_range | No | Acceptance rate range as decimals (0–1). Omit for no filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The per_page limit that was applied. |
| page | No | Current page (zero-indexed). |
| error | No | Present when the call failed. Absent on success. |
| query | No | Normalized effective selectors and pagination defaults. |
| shown | No | Institutions returned on this page. |
| total | No | Total institutions matching the filters (before pagination). |
| notice | No | Recovery hint when results are empty — echoes applied filters and suggests how to broaden. |
| schools | No | Matching institutions. |
| per_page | No | Results per page used. |
| truncated | No | True when school pagination metadata indicates a later page exists. |
| totalCount | No | Total institutions matching the filters, before pagination. |
scorecard_value_analysisValue AnalysisRead-onlyInspect
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 principal 3 years after entering repayment.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | School ID from scorecard_search_schools. | |
| family_income | No | Annual family income in dollars. When provided, net price is shown for the applicable income bracket. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present when the call failed. Absent on success. |
| school_id | No | School unit ID. |
| data_notes | No | Flags for suppressed, missing, or potentially unreliable data fields. Empty when all data is available. |
| list_price | No | Full tuition and fees (in-state, or out-of-state when no in-state exists). |
| median_debt | No | Median debt at graduation (completers). |
| school_name | No | Institution name. |
| graduation_rate | No | Completion rate at 150% normal time (0–1). |
| net_price_overall | No | Average net price across all income levels. |
| earnings_6yr_median | No | Median earnings 6 years after entry. |
| earnings_10yr_median | No | Median earnings 10 years after entry. |
| net_price_for_income | No | Net price for the provided family income bracket. Omitted when family_income not provided. |
| debt_to_earnings_ratio | No | Debt-to-earnings ratio: median_debt / earnings_6yr_median. Values >1 indicate debt exceeds annual earnings. |
| repayment_progress_3yr | No | Share of borrowers paying down principal (declining loan balance) 3 years after entering repayment (0–1). |
| applicable_income_bracket | No | Income bracket used for net_price_for_income. |
| net_price_to_annual_earnings | No | Net price divided by median annual earnings measured 6 years after entry. Uses the family-income net price when available, otherwise the overall net price. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
- First observed
scorecard_compare_schools - First observed
scorecard_get_earnings - First observed
scorecard_get_programs - First observed
scorecard_get_school - First observed
scorecard_list_fields - First observed
scorecard_lookup_cip - First observed
scorecard_search_programs - First observed
scorecard_search_schools - First observed
scorecard_value_analysis
Related MCP Connectors
Search US colleges and compare historical admissions, costs and aid using public federal data.
Higher education data: tuition, graduation rates, and earnings
Admission chances at 1,100+ U.S. colleges, college list scoring, and federal admissions data.
College Scorecard MCP — US Department of Education College Scorecard API
Related MCP Servers
- FlicenseAqualityDmaintenanceSearches US colleges and scholarships using government data, enabling comparisons of tuition, debt, earnings, and program-specific outcomes.4-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to explore, compare, and engage with postsecondary education and training offerings—programs, courses, certifications, credit transfer, prior learning, and career transitions—with sourced, snapshot-dated answers and explicit statements of missing data.-
- AlicenseNot gradedqualityBmaintenanceCollege Scorecard MCP — US Department of Education College Scorecard API25 npmMIT
- AlicenseAqualityCmaintenanceEnables AI assistants to discover and explore university research, researchers, academic programs, and institutional data from OpenAlex and the U.S. College Scorecard, returning source-linked results without fabricating facts.9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.