US Department of Education College Scorecard API — Search and retrieve detailed information about US colleges and universities
College Scorecard MCP has clear, verb-prefixed tool names (search_schools, get_school) and complete input schemas with type definitions. Descriptions are present but generic, they lack actionable guidance on when to use each tool, dependencies, or error recovery. Parameter descriptions are minimal (e.g., 'School name to search for' lacks format/constraint details). Output schema is not documented, LLMs cannot predict the structure of returned school objects. No error handling guidance; API errors are raw. The _apiKey parameter violates secret-injection best practices by exposing credentials as a tool parameter rather than server-side injection.
Get detailed info for a specific college by its College Scorecard ID. Returns tuition, admission rate, student size, median earnings after 10 years, completion rate, and median debt.
Search US colleges and universities by name. Returns school name, location, tuition, admission rate, student size, median earnings, and completion rate. Example: search_schools("MIT", "MA").
API key exposed as tool parameter (_apiKey). Credentials must never appear in tool parameters, they are logged in traces and prompt history. Use server-side secret injection via environment variables or vault.
Output schema not documented. LLMs cannot predict the structure of returned school objects (e.g., fields like 'median_earnings_10yr', 'completion_rate'). Document the response schema so agents can plan downstream operations.
Error handling provides no recovery guidance. Raw API errors (e.g., 'College Scorecard API error (400): ...') give agents no actionable next steps. Errors should categorize as retryable/user-fixable/fatal and suggest alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint details. 'School name to search for' does not specify case sensitivity, wildcard support, or minimum length. 'Two-letter state code' should include an enum or regex pattern.
Tool descriptions are generic and lack dependency hints. 'Search US colleges...' does not explain when to use search_schools vs get_school, or that get_school requires an ID from search_schools. Add: 'Use search_schools to find schools by name, then pass the returned ID to get_school for detailed info.'