College Scorecard MCP Server
Click on "Install 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., "@College Scorecard MCP Serversearch for colleges with high median earnings"
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.
Tools
9 tools for working with U.S. Department of Education College Scorecard data — institution search, program-level earnings, cost and outcomes analysis, and structured comparison:
Tool | Description |
| Search and filter institutions by name, location, type, size, and acceptance rate range. Returns core identity and cost metrics. |
| Full institutional profile for one or more school IDs — costs, admissions, outcomes, aid, demographics, and completion rates. |
| Normalized side-by-side comparison of 2–5 schools on a named topic. Returns percentile-ranked rows and relative deltas within the result set. |
| All field-of-study programs at one school: 1-year post-graduation earnings (P25/median/P75), debt at graduation, and enrollment figures. |
| Find programs by CIP code or keyword across all institutions, ranked by median earnings. Accepts school-side filters (state, ownership, max cost). |
| Institution-level post-graduation earnings for one school — median and percentiles at 6, 8, and 10 years after entry, with optional gender breakdown. |
| Workflow tool: parallel-fetches cost, debt, repayment, and earnings data, then computes ROI metrics — debt-to-earnings ratio, net price by income bracket, and peer comparisons. |
| Search Classification of Instructional Programs (CIP) codes by keyword or partial name. Served from embedded static data — no API call or rate-limit impact. |
| Search the Scorecard field catalog by keyword. Returns matching field paths, descriptions, data types, and sort support. Use before passing custom |
scorecard_search_schools
Search for institutions using name, location, and institutional filters.
Free-text name search plus typed filters: state, ownership (public/private nonprofit/private for-profit), degree level, size range, acceptance rate range
Geographic proximity filtering by U.S. zip code and distance (miles or km)
CIP code filter to find schools offering a specific program family
Pagination (
per_pageup to 100, zero-indexedpage)Returns core identity and cost metrics for quick scanning
scorecard_get_school
Fetch a full institutional profile by school ID.
Accepts a single ID or an array of IDs (batch fetch up to 100 per page)
Covers costs, admissions, outcomes, financial aid, demographics, and completion rates
Optional
fieldsoverride for callers who need a narrower or broader field setFor side-by-side comparison on a specific dimension, use
scorecard_compare_schools
scorecard_compare_schools
Normalized comparison across 2–5 institutions on a named topic.
Four topics:
costs,admissions,outcomes,aid— each pulls a curated topic-specific field setComputes within-set percentile ranks and relative deltas — structured output an agent cannot reconstruct from raw profiles
Single API call for all schools; normalization applied post-fetch
Distinct from
scorecard_get_schoolmulti-ID: output shape is rows, not profiles
scorecard_get_programs
List all field-of-study programs at one school with earnings and debt data.
Returns P25/median/P75 earnings 1 year after graduation, median debt at graduation, and enrollment figures per program
Filter by CIP code to return only matching programs
Filter by
credential_level(certificate, associate's, bachelor's) and minimum earnings thresholdPrimary source for program-level earnings — institution-level earnings at 6/8/10 years are available via
scorecard_get_earningsFERPA suppression surfaced as structured
suppressed: trueflag withsuppression_note, not bare null
scorecard_search_programs
Find programs by CIP code or name across all institutions, ranked by median earnings.
Program-centric: "which schools in Washington have CS programs with median earnings over $80k?"
Accepts school-side filters: state, ownership, max net price
Earnings and debt thresholds for filtering results
Returns school name, school ID, and unit ID alongside program metrics for follow-up chaining
Sorting applied post-fetch where earnings fields are not API-indexed
scorecard_get_earnings
Institution-level post-graduation earnings for one school.
Median and P25/P75 earnings at 6, 8, and 10 years after entry
Optional gender breakdown when available
yearsparameter for time-series analysis; defaults tolatest.*for current-state queriesReflects outcomes across all graduates, not broken down by program
scorecard_value_analysis
Workflow tool: "Is this school worth it?"
Parallel-fetches cost/debt/repayment and earnings data in two concurrent requests
Computes ROI metrics the API does not pre-calculate: debt-to-earnings ratio (median debt / 6-year earnings), net price to first-year earnings ratio, and 3-year loan repayment rate
family_incomeparameter selects the applicable net price bracketFetches peer school identifiers (same Carnegie category and ownership) for comparative median values
Returns all source figures alongside derived metrics — callers can audit the arithmetic
data_notesflags any suppressed or null fields with structured explanations
scorecard_lookup_cip
Search CIP codes by keyword or partial name.
Covers the full ~2,400-code CIP taxonomy embedded as static data
No API call required — zero rate-limit impact, works offline
Required before using CIP-based filters when the caller knows a program by name but not code
Returns matching codes with standard titles
scorecard_list_fields
Search the Scorecard field catalog by keyword.
~2,800 field entries from the data dictionary, embedded as static data
Returns field paths, descriptions, data types, and whether the field supports API-side sorting
No API call required — zero rate-limit impact
Use before passing custom
fieldsparameters to search/get tools
Related MCP server: mcp-college-scorecard
Resources and prompts
Type | Name | Description |
Resource |
| Institutional profile by unit ID — injectable context for school-specific conversations |
Resource |
| Program-level outcomes for a school |
Prompt |
| Structures a multi-school comparison analysis using Scorecard data |
All resource data is also reachable via tools. Use scorecard_search_schools or scorecard_get_school to discover school IDs before constructing resource URIs.
Features
Built on @cyanheads/mcp-ts-core:
Declarative tool, resource, and prompt definitions — single file per primitive, framework handles registration and validation
Unified error handling — handlers throw, framework catches, classifies, and formats
Pluggable auth:
none,jwt,oauthSwappable storage backends:
in-memory,filesystem,Supabase,Cloudflare KV/R2/D1Structured logging with optional OpenTelemetry tracing
STDIO and Streamable HTTP transports
College Scorecard-specific:
Full College Scorecard API coverage: ~6,500 Title IV institutions, ~2,800 data fields spanning costs, outcomes, demographics, financial aid, and field-of-study earnings
Program-level post-graduation earnings: actual median earnings 1 year after graduation for ~6,500 school × CIP code combinations
Field pre-selection per tool — curated ~10–20 field sets appropriate to each tool's purpose; optional
fieldsoverride for custom queriesEmbedded CIP code taxonomy and field catalog: both served as static data with zero API calls and zero rate-limit impact
Geographic filtering via U.S. zip code + distance radius
scorecard_value_analysisworkflow tool computes ROI metrics (debt-to-earnings ratio, net price to first-year earnings) that require multiple API round-trips and post-processing arithmetic
Agent-friendly output:
FERPA suppression surfaced as structured
suppressed: trueflag withsuppression_note— prevents hallucination of missing earnings data at selective schools with small cohortsDerived metrics alongside source figures in
scorecard_value_analysis— agents can verify arithmetic and branch on computed values, not raw numbersPercentile ranks and relative deltas in
scorecard_compare_schools— structured output an agent cannot reconstruct from raw profiles without knowing the full comparison setPost-fetch sorting documented and handled transparently — callers never hit API errors on non-indexed sort fields
Getting started
Add the following to your MCP client configuration file. See api.data.gov/signup for a free API key.
{
"mcpServers": {
"college-scorecard-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/college-scorecard-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"SCORECARD_API_KEY": "your-api-key"
}
}
}
}Or with npx (no Bun required):
{
"mcpServers": {
"college-scorecard-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@cyanheads/college-scorecard-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"SCORECARD_API_KEY": "your-api-key"
}
}
}
}Or with Docker:
{
"mcpServers": {
"college-scorecard-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "MCP_TRANSPORT_TYPE=stdio",
"-e", "SCORECARD_API_KEY=your-api-key",
"ghcr.io/cyanheads/college-scorecard-mcp-server:latest"
]
}
}
}For Streamable HTTP, set the transport and start the server:
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 SCORECARD_API_KEY=... bun run start:http
# Server listens at http://localhost:3010/mcpPrerequisites
Bun v1.3.0 or higher (or Node.js v24+).
A College Scorecard API key — free registration at api.data.gov/signup. Rate limit: 1,000 requests/hour per key.
Installation
Clone the repository:
git clone https://github.com/cyanheads/college-scorecard-mcp-server.gitNavigate into the directory:
cd college-scorecard-mcp-serverInstall dependencies:
bun installConfigure environment:
cp .env.example .env
# edit .env and set SCORECARD_API_KEYConfiguration
All configuration is validated at startup via Zod schemas in src/config/server-config.ts. Key environment variables:
Variable | Description | Default |
| Required. API key from api.data.gov. 1,000 req/hour rate limit. | — |
| Transport: |
|
| HTTP server port |
|
| HTTP endpoint path where the MCP server is mounted |
|
| Public origin override for TLS-terminating reverse-proxy deployments | none |
| Authentication: |
|
| Log level ( |
|
| Opt-in forced-GC pressure loop (ms, Bun only). Try |
|
| Directory for log files (Node.js only) |
|
| Storage backend: |
|
|
|
See .env.example for the full list of optional overrides.
Running the server
Local development
Build and run:
# One-time build bun run rebuild # Run the built server bun run start:stdio # or bun run start:httpRun checks and tests:
bun run devcheck # Lint, format, typecheck, security bun run test # Vitest test suite bun run lint:mcp # Validate MCP definitions against spec
Docker
docker build -t college-scorecard-mcp-server .
docker run --rm -e SCORECARD_API_KEY=your-key -p 3010:3010 college-scorecard-mcp-serverThe Dockerfile defaults to HTTP transport, stateless session mode, and logs to /var/log/college-scorecard-mcp-server. OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.
Project structure
Directory | Purpose |
|
|
| Server-specific environment variable parsing and validation with Zod. |
| Tool definitions ( |
| Resource definitions. School profile and program outcomes resources. |
| Prompt definitions. Multi-school comparison prompt. |
|
|
| Unit and integration tests mirroring |
Development guide
See CLAUDE.md for development guidelines and architectural rules. The short version:
Handlers throw, framework catches — no
try/catchin tool logicUse
ctx.logfor request-scoped logging,ctx.statefor tenant-scoped storageRegister new tools and resources via the barrels in
src/mcp-server/*/definitions/index.tsWrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields
Contributing
Issues and pull requests are welcome. Run checks and tests before submitting:
bun run devcheck
bun run testLicense
Apache-2.0 — see LICENSE for details.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceQuery SEC EDGAR filings, XBRL financials, and company data through MCP.Last updated6366Apache 2.0
- Alicense-qualityCmaintenanceCollege Scorecard MCP — US Department of Education College Scorecard APILast updated8MIT
- AlicenseBqualityBmaintenanceEnables access to high-value US public data sources via MCP, including federal agencies, state portals, and platforms like Socrata, ArcGIS, and CKAN, with tools for searching, querying, and geographic resolution.Last updated16MIT
- AlicenseAqualityBmaintenanceMCP server to query UK higher-education open data including National Student Survey results, student outcomes, and graduate earnings. Data is downloaded locally from official sources and compared against benchmarks.Last updated5MIT
Related MCP Connectors
College Scorecard MCP — US Department of Education College Scorecard API
Fetch US Bureau of Labor Statistics data — CPI, unemployment, wages, JOLTS, and more via MCP.
Grants.gov search and USAspending grant data. 4 MCP tools for grant discovery.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/college-scorecard-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server