← Back to search

io.github.cyanheads/college-scorecard-mcp-server

cyanheads Scanned 27d ago

Search, compare, and analyze U.S. college data — costs, earnings, programs, and outcomes.

B
76.5 / 100

Versions

0.1.2latest
first seen Jun 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 9

scorecard_list_fields
annotations: mismatch low

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_search_schools or scorecard_get_school to verify a path is valid. Served entirely from embedded static data — no API call, no rate limit impact.

cap number tip string path string type string input object query string shown number output object sortable boolean truncated boolean totalMatches number
readOnlyHint true openWorldHint false idempotentHint true
scorecard_get_programs
annotations: verified low

All field-of-study programs at one school with 1-year post-graduation earnings (P25/median/P75), debt at graduation, and enrollment figures. 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.

input object total number output object school_id number school_name string
readOnlyHint true openWorldHint true idempotentHint true
scorecard_lookup_cip
annotations: verified low

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.

cap number code string input object query string shown number family string output object truncated boolean familyTitle string totalMatches number
readOnlyHint true openWorldHint false idempotentHint true
scorecard_search_schools
annotations: verified low

Search and filter U.S. colleges and universities by name, location, type, size, and acceptance rate. Returns a list with core identity and cost metrics for each match. For a full institutional profile use scorecard_get_school; for cross-institution program rankings use scorecard_search_programs. Geographic filtering requires a U.S. zip code and a distance string (e.g. "50mi"). State filter uses 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.

max number min number input object
readOnlyHint true openWorldHint true
scorecard_compare_schools
annotations: verified low

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.

id number input object topic string notice string output object
readOnlyHint true openWorldHint true
scorecard_value_analysis
annotations: verified low

Workflow tool: parallel-fetches cost, debt, repayment, and earnings data for one school and computes ROI metrics the API does not pre-calculate — debt-to-earnings ratio, net price by income bracket, 3-year repayment progress (share paying down principal), and how these compare within the school\'s Carnegie peer group. family_income narrows the net price to the applicable bracket. Returns a structured summary with all source figures alongside derived metrics. Answers "is this school worth it?" without requiring multiple tool calls.

input object output object school_id number median_debt number school_name string graduation_rate number earnings_6yr_median number earnings_10yr_median number
readOnlyHint true openWorldHint true
scorecard_get_school
annotations: verified low

Full institutional profile for one or more school IDs — costs, admissions, outcomes, aid, demographics, and completion rates. Pass a single ID or an array of up to 100 IDs. For side-by-side comparison on a specific dimension (costs, admissions, outcomes, or aid) use scorecard_compare_schools. The fields parameter accepts a comma-separated list of field paths from scorecard_list_fields to override the default field set.

input object notice string output object total_found number total_requested number
readOnlyHint true openWorldHint true idempotentHint true
scorecard_search_programs
annotations: verified low

Find programs by CIP code across all institutions, ranked by median earnings. Accepts school-side filters (state, ownership, max cost) to answer queries like "best CS programs in Washington under $30k." Use scorecard_lookup_cip to convert program names to CIP codes before using this tool. Returns school name, school ID, and unit ID alongside program metrics for follow-up chaining to scorecard_get_school or scorecard_get_programs.

page number input object total number output object max_debt number per_page number min_earnings number max_net_price number total_programs number suppressed_count number
readOnlyHint true openWorldHint true
scorecard_get_earnings
annotations: verified low

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.

input object output object school_id number school_name string earnings_6yr_median number earnings_8yr_median number
readOnlyHint true openWorldHint true idempotentHint true

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 29

medium
Tool 'scorecard_list_fields' claims readOnly but schema suggests write operation annotation_checker · 70%
info
Tool 'scorecard_get_programs' annotations are consistent annotation_checker · 80%
info
Tool 'scorecard_lookup_cip' annotations are consistent annotation_checker · 80%
info
Tool 'scorecard_search_schools' annotations are consistent annotation_checker · 80%
info
Tool 'scorecard_compare_schools' annotations are consistent annotation_checker · 80%
info
Tool 'scorecard_value_analysis' annotations are consistent annotation_checker · 80%
info
Tool 'scorecard_get_school' annotations are consistent annotation_checker · 80%
info
Tool 'scorecard_search_programs' annotations are consistent annotation_checker · 80%
info
Tool 'scorecard_get_earnings' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
package.json metadata manifest_parser · 100%
info
Tool: scorecard_list_fields manifest_parser · 75%
info
Tool: scorecard_get_programs manifest_parser · 75%
info
Tool: scorecard_lookup_cip manifest_parser · 75%
info
Tool: scorecard_search_schools manifest_parser · 75%
info
Tool: scorecard_compare_schools manifest_parser · 75%
info
Tool: scorecard_value_analysis manifest_parser · 75%
info
Tool: scorecard_get_school manifest_parser · 75%
info
Tool: scorecard_search_programs manifest_parser · 75%
info
Tool: scorecard_get_earnings manifest_parser · 75%
info
Required env vars (4) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Tool poisoning in 'scorecard_get_school': Prompt override: 'override' poisoning · 88%
info
SBOM generated: 11 components sbom_generator · 100%
high
Hardcoded Password found in cyanheads-college-scorecard-mcp-server-6b5dd9d/skills/api-utils/references/security.md secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%