Search, compare, and analyze U.S. college data — costs, earnings, programs, and outcomes — via MCP. STDIO or Streamable HTTP.
Strong tool definitions with clear naming, comprehensive descriptions, and well-structured schemas. All 6 tools follow verb_noun convention (get_, search_, list_, lookup_, compare_). Descriptions are detailed (150-300 chars) and explain WHEN to use each tool vs. alternatives. Input schemas are complete with types, enums, and constraints. However, output schemas are not explicitly documented in the source, only inferred from descriptions. Error handling guidance is minimal. Tool composition is excellent: tools chain naturally (search → get → compare), and responses include necessary IDs for downstream calls.
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.
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.
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.
Output schemas not explicitly documented in source code. Descriptions infer structure (e.g., 'percentile-ranked rows', 'P25/median/P75'), but formal JSON Schema definitions for response objects are not visible. LLMs cannot reliably plan downstream operations without knowing exact field names and types.
No error handling guidance in tool descriptions. Tools lack recovery hints (e.g., 'If school not found, try scorecard_search_schools first'). Error responses are not documented, LLMs cannot self-correct on failures.
scorecard_get_school 'fields' parameter accepts free-form comma-separated strings without validation. LLMs may pass invalid field paths. Should validate against scorecard_list_fields output or return actionable error with valid options.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
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.
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.
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.
scorecard_get_programs 'credential_level' parameter is numeric (1-8, 99) without enum constraint. Description lists mappings but LLMs may pass invalid integers. Should use enum: [1, 2, 3, 4, 5, 6, 7, 8, 99] with descriptions.
No pagination guidance for tools returning lists (scorecard_get_programs, scorecard_list_fields, scorecard_lookup_cip). Descriptions mention 'limit' but do not document total count, next_cursor, or behavior when results exceed limit. Large result sets risk context window exhaustion.