@cyanheads/college-scorecard-mcp-server 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CLAUDE.md +405 -0
  2. package/Dockerfile +98 -0
  3. package/README.md +356 -0
  4. package/changelog/0.1.x/0.1.0.md +24 -0
  5. package/changelog/0.1.x/0.1.1.md +14 -0
  6. package/changelog/template.md +119 -0
  7. package/dist/config/server-config.d.ts +12 -0
  8. package/dist/config/server-config.d.ts.map +1 -0
  9. package/dist/config/server-config.js +17 -0
  10. package/dist/config/server-config.js.map +1 -0
  11. package/dist/data/cip-codes.d.ts +23 -0
  12. package/dist/data/cip-codes.d.ts.map +1 -0
  13. package/dist/data/cip-codes.js +274 -0
  14. package/dist/data/cip-codes.js.map +1 -0
  15. package/dist/data/field-catalog.d.ts +25 -0
  16. package/dist/data/field-catalog.d.ts.map +1 -0
  17. package/dist/data/field-catalog.js +122 -0
  18. package/dist/data/field-catalog.js.map +1 -0
  19. package/dist/index.d.ts +7 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +47 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/mcp-server/format-helpers.d.ts +9 -0
  24. package/dist/mcp-server/format-helpers.d.ts.map +1 -0
  25. package/dist/mcp-server/format-helpers.js +24 -0
  26. package/dist/mcp-server/format-helpers.js.map +1 -0
  27. package/dist/mcp-server/prompts/definitions/compare.prompt.d.ts +15 -0
  28. package/dist/mcp-server/prompts/definitions/compare.prompt.d.ts.map +1 -0
  29. package/dist/mcp-server/prompts/definitions/compare.prompt.js +55 -0
  30. package/dist/mcp-server/prompts/definitions/compare.prompt.js.map +1 -0
  31. package/dist/mcp-server/resources/definitions/programs.resource.d.ts +10 -0
  32. package/dist/mcp-server/resources/definitions/programs.resource.d.ts.map +1 -0
  33. package/dist/mcp-server/resources/definitions/programs.resource.js +42 -0
  34. package/dist/mcp-server/resources/definitions/programs.resource.js.map +1 -0
  35. package/dist/mcp-server/resources/definitions/school.resource.d.ts +10 -0
  36. package/dist/mcp-server/resources/definitions/school.resource.d.ts.map +1 -0
  37. package/dist/mcp-server/resources/definitions/school.resource.js +43 -0
  38. package/dist/mcp-server/resources/definitions/school.resource.js.map +1 -0
  39. package/dist/mcp-server/tools/definitions/compare-schools.tool.d.ts +46 -0
  40. package/dist/mcp-server/tools/definitions/compare-schools.tool.d.ts.map +1 -0
  41. package/dist/mcp-server/tools/definitions/compare-schools.tool.js +367 -0
  42. package/dist/mcp-server/tools/definitions/compare-schools.tool.js.map +1 -0
  43. package/dist/mcp-server/tools/definitions/get-earnings.tool.d.ts +43 -0
  44. package/dist/mcp-server/tools/definitions/get-earnings.tool.d.ts.map +1 -0
  45. package/dist/mcp-server/tools/definitions/get-earnings.tool.js +183 -0
  46. package/dist/mcp-server/tools/definitions/get-earnings.tool.js.map +1 -0
  47. package/dist/mcp-server/tools/definitions/get-programs.tool.d.ts +46 -0
  48. package/dist/mcp-server/tools/definitions/get-programs.tool.d.ts.map +1 -0
  49. package/dist/mcp-server/tools/definitions/get-programs.tool.js +194 -0
  50. package/dist/mcp-server/tools/definitions/get-programs.tool.js.map +1 -0
  51. package/dist/mcp-server/tools/definitions/get-school.tool.d.ts +67 -0
  52. package/dist/mcp-server/tools/definitions/get-school.tool.d.ts.map +1 -0
  53. package/dist/mcp-server/tools/definitions/get-school.tool.js +324 -0
  54. package/dist/mcp-server/tools/definitions/get-school.tool.js.map +1 -0
  55. package/dist/mcp-server/tools/definitions/list-fields.tool.d.ts +28 -0
  56. package/dist/mcp-server/tools/definitions/list-fields.tool.d.ts.map +1 -0
  57. package/dist/mcp-server/tools/definitions/list-fields.tool.js +92 -0
  58. package/dist/mcp-server/tools/definitions/list-fields.tool.js.map +1 -0
  59. package/dist/mcp-server/tools/definitions/lookup-cip.tool.d.ts +26 -0
  60. package/dist/mcp-server/tools/definitions/lookup-cip.tool.d.ts.map +1 -0
  61. package/dist/mcp-server/tools/definitions/lookup-cip.tool.js +71 -0
  62. package/dist/mcp-server/tools/definitions/lookup-cip.tool.js.map +1 -0
  63. package/dist/mcp-server/tools/definitions/search-programs.tool.d.ts +49 -0
  64. package/dist/mcp-server/tools/definitions/search-programs.tool.d.ts.map +1 -0
  65. package/dist/mcp-server/tools/definitions/search-programs.tool.js +188 -0
  66. package/dist/mcp-server/tools/definitions/search-programs.tool.js.map +1 -0
  67. package/dist/mcp-server/tools/definitions/search-schools.tool.d.ts +57 -0
  68. package/dist/mcp-server/tools/definitions/search-schools.tool.d.ts.map +1 -0
  69. package/dist/mcp-server/tools/definitions/search-schools.tool.js +223 -0
  70. package/dist/mcp-server/tools/definitions/search-schools.tool.js.map +1 -0
  71. package/dist/mcp-server/tools/definitions/value-analysis.tool.d.ts +37 -0
  72. package/dist/mcp-server/tools/definitions/value-analysis.tool.d.ts.map +1 -0
  73. package/dist/mcp-server/tools/definitions/value-analysis.tool.js +227 -0
  74. package/dist/mcp-server/tools/definitions/value-analysis.tool.js.map +1 -0
  75. package/dist/services/scorecard/scorecard-service.d.ts +44 -0
  76. package/dist/services/scorecard/scorecard-service.d.ts.map +1 -0
  77. package/dist/services/scorecard/scorecard-service.js +376 -0
  78. package/dist/services/scorecard/scorecard-service.js.map +1 -0
  79. package/dist/services/scorecard/types.d.ts +131 -0
  80. package/dist/services/scorecard/types.d.ts.map +1 -0
  81. package/dist/services/scorecard/types.js +6 -0
  82. package/dist/services/scorecard/types.js.map +1 -0
  83. package/package.json +80 -0
  84. package/server.json +99 -0
@@ -0,0 +1,274 @@
1
+ /**
2
+ * @fileoverview Embedded CIP (Classification of Instructional Programs) code taxonomy.
3
+ * Derived from NCES CIP 2020 taxonomy. Static data — no API call required.
4
+ * @module data/cip-codes
5
+ */
6
+ /** 4-digit CIP code taxonomy — common programs for college/career exploration. */
7
+ export const CIP_CODES = [
8
+ // 01 — Agriculture
9
+ { code: '01.00', title: 'Agriculture, General', family: '01', familyTitle: 'Agriculture, Agriculture Operations, And Related Sciences' },
10
+ { code: '01.01', title: 'Agricultural Business And Management, General', family: '01', familyTitle: 'Agriculture, Agriculture Operations, And Related Sciences' },
11
+ { code: '01.10', title: 'Food Science', family: '01', familyTitle: 'Agriculture, Agriculture Operations, And Related Sciences' },
12
+ // 03 — Natural Resources
13
+ { code: '03.00', title: 'Natural Resources/Conservation, General', family: '03', familyTitle: 'Natural Resources And Conservation' },
14
+ { code: '03.01', title: 'Natural Resources Management And Policy', family: '03', familyTitle: 'Natural Resources And Conservation' },
15
+ { code: '03.02', title: 'Environmental Studies', family: '03', familyTitle: 'Natural Resources And Conservation' },
16
+ // 04 — Architecture
17
+ { code: '04.02', title: 'Architecture', family: '04', familyTitle: 'Architecture And Related Services' },
18
+ { code: '04.04', title: 'Environmental Design/Architecture', family: '04', familyTitle: 'Architecture And Related Services' },
19
+ { code: '04.06', title: 'Landscape Architecture', family: '04', familyTitle: 'Architecture And Related Services' },
20
+ // 09 — Communication
21
+ { code: '09.01', title: 'Communication, General', family: '09', familyTitle: 'Communication, Journalism, And Related Programs' },
22
+ { code: '09.07', title: 'Radio And Television', family: '09', familyTitle: 'Communication, Journalism, And Related Programs' },
23
+ { code: '09.09', title: 'Public Relations, Advertising, And Applied Communication', family: '09', familyTitle: 'Communication, Journalism, And Related Programs' },
24
+ { code: '09.10', title: 'Journalism', family: '09', familyTitle: 'Communication, Journalism, And Related Programs' },
25
+ // 10 — Communications Technology
26
+ { code: '10.03', title: 'Graphic Communications', family: '10', familyTitle: 'Communications Technologies/Technicians And Support Services' },
27
+ // 11 — Computer Science
28
+ { code: '11.00', title: 'Computer And Information Sciences, General', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
29
+ { code: '11.01', title: 'Computer And Information Sciences, General', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
30
+ { code: '11.02', title: 'Computer Programming', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
31
+ { code: '11.03', title: 'Data Processing', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
32
+ { code: '11.04', title: 'Information Science/Studies', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
33
+ { code: '11.05', title: 'Computer Systems Analysis', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
34
+ { code: '11.06', title: 'Data Entry/Microcomputer Applications', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
35
+ { code: '11.07', title: 'Computer Science', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
36
+ { code: '11.08', title: 'Computer Software And Media Applications', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
37
+ { code: '11.09', title: 'Computer Systems Networking And Telecommunications', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
38
+ { code: '11.10', title: 'Computer/Information Technology Services Administration And Management', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
39
+ { code: '11.16', title: 'Modeling, Virtual Environments And Simulation', family: '11', familyTitle: 'Computer And Information Sciences And Support Services' },
40
+ // 13 — Education
41
+ { code: '13.01', title: 'Education, General', family: '13', familyTitle: 'Education' },
42
+ { code: '13.02', title: 'Bilingual, Multilingual, And Multicultural Education', family: '13', familyTitle: 'Education' },
43
+ { code: '13.03', title: 'Curriculum And Instruction', family: '13', familyTitle: 'Education' },
44
+ { code: '13.06', title: 'Educational Assessment, Testing, And Measurement', family: '13', familyTitle: 'Education' },
45
+ { code: '13.10', title: 'Special Education And Teaching', family: '13', familyTitle: 'Education' },
46
+ { code: '13.12', title: 'Teacher Education And Professional Development, Specific Levels And Methods', family: '13', familyTitle: 'Education' },
47
+ { code: '13.13', title: 'Teacher Education And Professional Development, Specific Subject Areas', family: '13', familyTitle: 'Education' },
48
+ // 14 — Engineering
49
+ { code: '14.00', title: 'Engineering, General', family: '14', familyTitle: 'Engineering' },
50
+ { code: '14.01', title: 'Engineering, General', family: '14', familyTitle: 'Engineering' },
51
+ { code: '14.03', title: 'Agricultural Engineering', family: '14', familyTitle: 'Engineering' },
52
+ { code: '14.04', title: 'Architectural Engineering', family: '14', familyTitle: 'Engineering' },
53
+ { code: '14.05', title: 'Biomedical/Medical Engineering', family: '14', familyTitle: 'Engineering' },
54
+ { code: '14.06', title: 'Ceramic Sciences And Engineering', family: '14', familyTitle: 'Engineering' },
55
+ { code: '14.07', title: 'Chemical Engineering', family: '14', familyTitle: 'Engineering' },
56
+ { code: '14.08', title: 'Civil Engineering, General', family: '14', familyTitle: 'Engineering' },
57
+ { code: '14.09', title: 'Computer Engineering, General', family: '14', familyTitle: 'Engineering' },
58
+ { code: '14.10', title: 'Electrical And Electronics Engineering', family: '14', familyTitle: 'Engineering' },
59
+ { code: '14.12', title: 'Engineering Physics/Applied Physics', family: '14', familyTitle: 'Engineering' },
60
+ { code: '14.13', title: 'Engineering Science', family: '14', familyTitle: 'Engineering' },
61
+ { code: '14.14', title: 'Environmental/Environmental Health Engineering', family: '14', familyTitle: 'Engineering' },
62
+ { code: '14.18', title: 'Materials Engineering', family: '14', familyTitle: 'Engineering' },
63
+ { code: '14.19', title: 'Mechanical Engineering', family: '14', familyTitle: 'Engineering' },
64
+ { code: '14.20', title: 'Metallurgical Engineering', family: '14', familyTitle: 'Engineering' },
65
+ { code: '14.22', title: 'Naval Architecture And Marine Engineering', family: '14', familyTitle: 'Engineering' },
66
+ { code: '14.23', title: 'Nuclear Engineering', family: '14', familyTitle: 'Engineering' },
67
+ { code: '14.24', title: 'Ocean Engineering', family: '14', familyTitle: 'Engineering' },
68
+ { code: '14.25', title: 'Petroleum Engineering', family: '14', familyTitle: 'Engineering' },
69
+ { code: '14.27', title: 'Systems Engineering', family: '14', familyTitle: 'Engineering' },
70
+ { code: '14.28', title: 'Textile Sciences And Engineering', family: '14', familyTitle: 'Engineering' },
71
+ { code: '14.32', title: 'Polymer/Plastics Engineering', family: '14', familyTitle: 'Engineering' },
72
+ { code: '14.33', title: 'Construction Engineering', family: '14', familyTitle: 'Engineering' },
73
+ { code: '14.34', title: 'Forest Engineering', family: '14', familyTitle: 'Engineering' },
74
+ { code: '14.35', title: 'Industrial Engineering', family: '14', familyTitle: 'Engineering' },
75
+ { code: '14.36', title: 'Manufacturing Engineering', family: '14', familyTitle: 'Engineering' },
76
+ { code: '14.37', title: 'Operations Research', family: '14', familyTitle: 'Engineering' },
77
+ { code: '14.38', title: 'Surveying Engineering', family: '14', familyTitle: 'Engineering' },
78
+ { code: '14.39', title: 'Geological/Geophysical Engineering', family: '14', familyTitle: 'Engineering' },
79
+ { code: '14.40', title: 'Paper Science And Engineering', family: '14', familyTitle: 'Engineering' },
80
+ { code: '14.41', title: 'Electromechanical Engineering', family: '14', familyTitle: 'Engineering' },
81
+ { code: '14.43', title: 'Biochemical Engineering', family: '14', familyTitle: 'Engineering' },
82
+ { code: '14.44', title: 'Engineering Chemistry', family: '14', familyTitle: 'Engineering' },
83
+ { code: '14.45', title: 'Biological/Biosystems Engineering', family: '14', familyTitle: 'Engineering' },
84
+ { code: '14.47', title: 'Electrical And Computer Engineering', family: '14', familyTitle: 'Engineering' },
85
+ // 15 — Engineering Technology
86
+ { code: '15.00', title: 'Engineering Technology, General', family: '15', familyTitle: 'Engineering/Engineering-Related Technologies/Technicians' },
87
+ { code: '15.03', title: 'Electrical, Electronic And Communications Engineering Technology', family: '15', familyTitle: 'Engineering/Engineering-Related Technologies/Technicians' },
88
+ { code: '15.08', title: 'Mechanical Engineering Related Technologies/Technicians', family: '15', familyTitle: 'Engineering/Engineering-Related Technologies/Technicians' },
89
+ // 16 — Foreign Languages
90
+ { code: '16.01', title: 'Linguistic, Comparative, And Related Language Studies And Services', family: '16', familyTitle: 'Foreign Languages, Literatures, And Linguistics' },
91
+ { code: '16.09', title: 'Romance Languages, Literatures, And Linguistics', family: '16', familyTitle: 'Foreign Languages, Literatures, And Linguistics' },
92
+ // 19 — Family and Consumer Sciences
93
+ { code: '19.04', title: 'Family And Consumer Economics And Related Studies', family: '19', familyTitle: 'Family And Consumer Sciences/Human Sciences' },
94
+ { code: '19.05', title: 'Foods, Nutrition, And Related Services', family: '19', familyTitle: 'Family And Consumer Sciences/Human Sciences' },
95
+ { code: '19.07', title: 'Human Development, Family Studies, And Related Services', family: '19', familyTitle: 'Family And Consumer Sciences/Human Sciences' },
96
+ // 22 — Legal Professions
97
+ { code: '22.00', title: 'Legal Professions And Studies, General', family: '22', familyTitle: 'Legal Professions And Studies' },
98
+ { code: '22.03', title: 'Legal Support Services', family: '22', familyTitle: 'Legal Professions And Studies' },
99
+ // 23 — English
100
+ { code: '23.01', title: 'English Language And Literature, General', family: '23', familyTitle: 'English Language And Literature/Letters' },
101
+ { code: '23.07', title: 'American Literature', family: '23', familyTitle: 'English Language And Literature/Letters' },
102
+ { code: '23.13', title: 'Writing, General', family: '23', familyTitle: 'English Language And Literature/Letters' },
103
+ { code: '23.14', title: 'Professional, Technical, Business, And Scientific Writing', family: '23', familyTitle: 'English Language And Literature/Letters' },
104
+ // 24 — Liberal Arts
105
+ { code: '24.01', title: 'Liberal Arts And Sciences, General Studies And Humanities', family: '24', familyTitle: 'Liberal Arts And Sciences, General Studies And Humanities' },
106
+ // 25 — Library Science
107
+ { code: '25.01', title: 'Library Science And Administration', family: '25', familyTitle: 'Library Science' },
108
+ // 26 — Biological Sciences
109
+ { code: '26.00', title: 'Biology, General', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
110
+ { code: '26.01', title: 'Biology, General', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
111
+ { code: '26.02', title: 'Biochemistry, Biophysics And Molecular Biology', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
112
+ { code: '26.03', title: 'Botany/Plant Biology', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
113
+ { code: '26.04', title: 'Cell/Cellular Biology And Histology', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
114
+ { code: '26.05', title: 'Microbiological Sciences And Immunology', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
115
+ { code: '26.07', title: 'Zoology/Animal Biology', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
116
+ { code: '26.08', title: 'Genetics', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
117
+ { code: '26.09', title: 'Physiology, Pathology And Related Sciences', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
118
+ { code: '26.13', title: 'Ecology, Evolution, Systematics And Population Biology', family: '26', familyTitle: 'Biological And Biomedical Sciences' },
119
+ // 27 — Mathematics
120
+ { code: '27.01', title: 'Mathematics', family: '27', familyTitle: 'Mathematics And Statistics' },
121
+ { code: '27.03', title: 'Applied Mathematics, General', family: '27', familyTitle: 'Mathematics And Statistics' },
122
+ { code: '27.05', title: 'Statistics, General', family: '27', familyTitle: 'Mathematics And Statistics' },
123
+ // 28 — Military Science
124
+ { code: '28.02', title: 'Military Science, Leadership And Operational Art', family: '28', familyTitle: 'Military Science, Leadership, And Operational Art' },
125
+ // 29 — Military Technology
126
+ { code: '29.02', title: 'Intelligence, Command Control And Information Operations', family: '29', familyTitle: 'Military Technologies And Applied Sciences' },
127
+ // 30 — Multi/Interdisciplinary Studies
128
+ { code: '30.00', title: 'Multi/Interdisciplinary Studies, General', family: '30', familyTitle: 'Multi/Interdisciplinary Studies' },
129
+ { code: '30.08', title: 'Mathematics And Computer Science', family: '30', familyTitle: 'Multi/Interdisciplinary Studies' },
130
+ { code: '30.10', title: 'Biopsychology', family: '30', familyTitle: 'Multi/Interdisciplinary Studies' },
131
+ { code: '30.25', title: 'Cognitive Science, General', family: '30', familyTitle: 'Multi/Interdisciplinary Studies' },
132
+ { code: '30.30', title: 'Computational Science', family: '30', familyTitle: 'Multi/Interdisciplinary Studies' },
133
+ { code: '30.41', title: 'Economics And Computer Science', family: '30', familyTitle: 'Multi/Interdisciplinary Studies' },
134
+ { code: '30.70', title: 'Data Science, General', family: '30', familyTitle: 'Multi/Interdisciplinary Studies' },
135
+ { code: '30.71', title: 'Data Analytics, General', family: '30', familyTitle: 'Multi/Interdisciplinary Studies' },
136
+ // 31 — Parks and Recreation
137
+ { code: '31.05', title: 'Health And Physical Education/Fitness, General', family: '31', familyTitle: 'Parks, Recreation, Leisure, Fitness, And Kinesiology' },
138
+ // 38 — Philosophy
139
+ { code: '38.01', title: 'Philosophy', family: '38', familyTitle: 'Philosophy And Religious Studies' },
140
+ { code: '38.02', title: 'Religion/Religious Studies', family: '38', familyTitle: 'Philosophy And Religious Studies' },
141
+ // 40 — Physical Sciences
142
+ { code: '40.02', title: 'Astronomy And Astrophysics', family: '40', familyTitle: 'Physical Sciences' },
143
+ { code: '40.04', title: 'Atmospheric Sciences And Meteorology, General', family: '40', familyTitle: 'Physical Sciences' },
144
+ { code: '40.05', title: 'Chemistry, General', family: '40', familyTitle: 'Physical Sciences' },
145
+ { code: '40.06', title: 'Geological And Earth Sciences/Geosciences', family: '40', familyTitle: 'Physical Sciences' },
146
+ { code: '40.08', title: 'Physics, General', family: '40', familyTitle: 'Physical Sciences' },
147
+ // 41 — Science Technologies
148
+ { code: '41.03', title: 'Physical Science Technologies/Technicians', family: '41', familyTitle: 'Science Technologies/Technicians' },
149
+ // 42 — Psychology
150
+ { code: '42.01', title: 'Psychology, General', family: '42', familyTitle: 'Psychology' },
151
+ { code: '42.16', title: 'Cognitive Psychology And Psycholinguistics', family: '42', familyTitle: 'Psychology' },
152
+ { code: '42.17', title: 'Comparative Psychology', family: '42', familyTitle: 'Psychology' },
153
+ { code: '42.18', title: 'Community Psychology', family: '42', familyTitle: 'Psychology' },
154
+ { code: '42.19', title: 'Developmental And Child Psychology', family: '42', familyTitle: 'Psychology' },
155
+ { code: '42.23', title: 'Research And Experimental Psychology', family: '42', familyTitle: 'Psychology' },
156
+ { code: '42.26', title: 'Neuropsychology', family: '42', familyTitle: 'Psychology' },
157
+ { code: '42.27', title: 'Forensic Psychology', family: '42', familyTitle: 'Psychology' },
158
+ { code: '42.28', title: 'Health/Medical Psychology', family: '42', familyTitle: 'Psychology' },
159
+ // 43 — Security and Law Enforcement
160
+ { code: '43.01', title: 'Criminal Justice/Safety Studies', family: '43', familyTitle: 'Homeland Security, Law Enforcement, Firefighting And Related Protective Services' },
161
+ { code: '43.02', title: 'Fire Protection', family: '43', familyTitle: 'Homeland Security, Law Enforcement, Firefighting And Related Protective Services' },
162
+ { code: '43.03', title: 'Security And Protective Services', family: '43', familyTitle: 'Homeland Security, Law Enforcement, Firefighting And Related Protective Services' },
163
+ { code: '43.07', title: 'Forensic Science And Technology', family: '43', familyTitle: 'Homeland Security, Law Enforcement, Firefighting And Related Protective Services' },
164
+ // 44 — Public Administration
165
+ { code: '44.00', title: 'Public Administration And Social Service Professions, General', family: '44', familyTitle: 'Public Administration And Social Service Professions' },
166
+ { code: '44.02', title: 'Community Organization And Advocacy', family: '44', familyTitle: 'Public Administration And Social Service Professions' },
167
+ { code: '44.04', title: 'Public Administration', family: '44', familyTitle: 'Public Administration And Social Service Professions' },
168
+ { code: '44.07', title: 'Social Work', family: '44', familyTitle: 'Public Administration And Social Service Professions' },
169
+ // 45 — Social Sciences
170
+ { code: '45.01', title: 'Social Sciences, General', family: '45', familyTitle: 'Social Sciences' },
171
+ { code: '45.02', title: 'Anthropology', family: '45', familyTitle: 'Social Sciences' },
172
+ { code: '45.03', title: 'Archeology', family: '45', familyTitle: 'Social Sciences' },
173
+ { code: '45.04', title: 'Criminology', family: '45', familyTitle: 'Social Sciences' },
174
+ { code: '45.05', title: 'Demography And Population Studies', family: '45', familyTitle: 'Social Sciences' },
175
+ { code: '45.06', title: 'Economics, General', family: '45', familyTitle: 'Social Sciences' },
176
+ { code: '45.07', title: 'Geography And Cartography', family: '45', familyTitle: 'Social Sciences' },
177
+ { code: '45.08', title: 'Sociology', family: '45', familyTitle: 'Social Sciences' },
178
+ { code: '45.09', title: 'International Relations And National Security Studies', family: '45', familyTitle: 'Social Sciences' },
179
+ { code: '45.10', title: 'Political Science And Government, General', family: '45', familyTitle: 'Social Sciences' },
180
+ { code: '45.11', title: 'Sociology', family: '45', familyTitle: 'Social Sciences' },
181
+ // 50 — Visual and Performing Arts
182
+ { code: '50.01', title: 'Visual And Performing Arts, General', family: '50', familyTitle: 'Visual And Performing Arts' },
183
+ { code: '50.02', title: 'Crafts/Craft Design, Folk Art And Artisanry', family: '50', familyTitle: 'Visual And Performing Arts' },
184
+ { code: '50.03', title: 'Dance', family: '50', familyTitle: 'Visual And Performing Arts' },
185
+ { code: '50.04', title: 'Design And Applied Arts', family: '50', familyTitle: 'Visual And Performing Arts' },
186
+ { code: '50.05', title: 'Drama/Theatre Arts And Stagecraft', family: '50', familyTitle: 'Visual And Performing Arts' },
187
+ { code: '50.06', title: 'Film/Video And Photographic Arts', family: '50', familyTitle: 'Visual And Performing Arts' },
188
+ { code: '50.07', title: 'Fine And Studio Arts', family: '50', familyTitle: 'Visual And Performing Arts' },
189
+ { code: '50.09', title: 'Music', family: '50', familyTitle: 'Visual And Performing Arts' },
190
+ { code: '50.10', title: 'Arts, Entertainment, And Media Management', family: '50', familyTitle: 'Visual And Performing Arts' },
191
+ // 51 — Health Professions
192
+ { code: '51.00', title: 'Health Services/Allied Health/Health Sciences, General', family: '51', familyTitle: 'Health Professions And Related Programs' },
193
+ { code: '51.01', title: 'Chiropractic', family: '51', familyTitle: 'Health Professions And Related Programs' },
194
+ { code: '51.02', title: 'Communication Disorders Sciences And Services', family: '51', familyTitle: 'Health Professions And Related Programs' },
195
+ { code: '51.04', title: 'Dentistry', family: '51', familyTitle: 'Health Professions And Related Programs' },
196
+ { code: '51.05', title: 'Advanced/Graduate Dentistry And Oral Sciences', family: '51', familyTitle: 'Health Professions And Related Programs' },
197
+ { code: '51.06', title: 'Dental Support Services And Allied Professions', family: '51', familyTitle: 'Health Professions And Related Programs' },
198
+ { code: '51.07', title: 'Health And Medical Administrative Services', family: '51', familyTitle: 'Health Professions And Related Programs' },
199
+ { code: '51.08', title: 'Allied Health And Medical Assisting Services', family: '51', familyTitle: 'Health Professions And Related Programs' },
200
+ { code: '51.09', title: 'Allied Health Diagnostic, Intervention, And Treatment Professions', family: '51', familyTitle: 'Health Professions And Related Programs' },
201
+ { code: '51.10', title: 'Clinical/Medical Laboratory Science/Research And Allied Professions', family: '51', familyTitle: 'Health Professions And Related Programs' },
202
+ { code: '51.11', title: 'Health/Medical Preparatory Programs', family: '51', familyTitle: 'Health Professions And Related Programs' },
203
+ { code: '51.12', title: 'Medicine', family: '51', familyTitle: 'Health Professions And Related Programs' },
204
+ { code: '51.14', title: 'Medical Clinical Sciences/Graduate Medical Studies', family: '51', familyTitle: 'Health Professions And Related Programs' },
205
+ { code: '51.15', title: 'Mental And Social Health Services And Allied Professions', family: '51', familyTitle: 'Health Professions And Related Programs' },
206
+ { code: '51.17', title: 'Optometry', family: '51', familyTitle: 'Health Professions And Related Programs' },
207
+ { code: '51.18', title: 'Ophthalmic And Optometric Support Services And Allied Professions', family: '51', familyTitle: 'Health Professions And Related Programs' },
208
+ { code: '51.20', title: 'Pharmacy, Pharmaceutical Sciences, And Administration', family: '51', familyTitle: 'Health Professions And Related Programs' },
209
+ { code: '51.22', title: 'Public Health', family: '51', familyTitle: 'Health Professions And Related Programs' },
210
+ { code: '51.23', title: 'Rehabilitation And Therapeutic Professions', family: '51', familyTitle: 'Health Professions And Related Programs' },
211
+ { code: '51.26', title: 'Health Aides/Attendants/Orderlies', family: '51', familyTitle: 'Health Professions And Related Programs' },
212
+ { code: '51.27', title: 'Medical Illustration And Informatics', family: '51', familyTitle: 'Health Professions And Related Programs' },
213
+ { code: '51.31', title: 'Dietetics And Clinical Nutrition Services', family: '51', familyTitle: 'Health Professions And Related Programs' },
214
+ { code: '51.36', title: 'Movement And Mind-Body Therapies And Education', family: '51', familyTitle: 'Health Professions And Related Programs' },
215
+ { code: '51.37', title: 'Somatic Bodywork And Related Therapeutic Services', family: '51', familyTitle: 'Health Professions And Related Programs' },
216
+ { code: '51.38', title: 'Registered Nursing, Nursing Administration, Nursing Research And Clinical Nursing', family: '51', familyTitle: 'Health Professions And Related Programs' },
217
+ { code: '51.39', title: 'Practical Nursing, Vocational Nursing And Nursing Assistants', family: '51', familyTitle: 'Health Professions And Related Programs' },
218
+ // 52 — Business
219
+ { code: '52.00', title: 'Business, Management, Marketing, And Related Support Services, General', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
220
+ { code: '52.01', title: 'Business/Commerce, General', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
221
+ { code: '52.02', title: 'Business Administration, Management And Operations', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
222
+ { code: '52.03', title: 'Accounting And Related Services', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
223
+ { code: '52.04', title: 'Business Operations Support And Assistant Services', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
224
+ { code: '52.05', title: 'Business/Corporate Communications', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
225
+ { code: '52.06', title: 'Business/Managerial Economics', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
226
+ { code: '52.07', title: 'Entrepreneurship And Small Business Operations', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
227
+ { code: '52.08', title: 'Finance And Financial Management Services', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
228
+ { code: '52.09', title: 'Hospitality Administration/Management', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
229
+ { code: '52.10', title: 'Human Resources Management And Services', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
230
+ { code: '52.11', title: 'International Business', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
231
+ { code: '52.12', title: 'Management Information Systems And Services', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
232
+ { code: '52.13', title: 'Management Sciences And Quantitative Methods', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
233
+ { code: '52.14', title: 'Marketing', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
234
+ { code: '52.15', title: 'Real Estate', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
235
+ { code: '52.16', title: 'Taxation', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
236
+ { code: '52.17', title: 'Insurance', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
237
+ { code: '52.18', title: 'General Sales, Merchandising And Related Marketing Operations', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
238
+ { code: '52.19', title: 'Specialized Sales, Merchandising And Marketing Operations', family: '52', familyTitle: 'Business, Management, Marketing, And Related Support Services' },
239
+ // 54 — History
240
+ { code: '54.01', title: 'History', family: '54', familyTitle: 'History' },
241
+ // 60 — Residency programs
242
+ { code: '60.04', title: 'Dentistry Residency Programs', family: '60', familyTitle: 'Residency Programs' },
243
+ ];
244
+ /**
245
+ * Search CIP codes by keyword — matches against code, title, family title.
246
+ * Returns up to `limit` results (default 20).
247
+ */
248
+ export function searchCipCodes(query, limit = 20) {
249
+ const terms = query.toLowerCase().split(/\s+/).filter(Boolean);
250
+ if (terms.length === 0)
251
+ return CIP_CODES.slice(0, limit);
252
+ const scored = [];
253
+ for (const entry of CIP_CODES) {
254
+ const haystack = `${entry.code} ${entry.title} ${entry.familyTitle}`.toLowerCase();
255
+ let score = 0;
256
+ for (const term of terms) {
257
+ if (haystack.includes(term)) {
258
+ score++;
259
+ // Boost exact title match
260
+ if (entry.title.toLowerCase().includes(term))
261
+ score++;
262
+ if (entry.code.startsWith(term))
263
+ score += 2;
264
+ }
265
+ }
266
+ if (score > 0)
267
+ scored.push({ entry, score });
268
+ }
269
+ return scored
270
+ .sort((a, b) => b.score - a.score)
271
+ .slice(0, limit)
272
+ .map((s) => s.entry);
273
+ }
274
+ //# sourceMappingURL=cip-codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cip-codes.js","sourceRoot":"","sources":["../../src/data/cip-codes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @fileoverview Embedded College Scorecard field catalog. Derived from the
3
+ * Scorecard data dictionary. Static data — no API call required.
4
+ * @module data/field-catalog
5
+ */
6
+ export interface FieldEntry {
7
+ /** API field path (e.g. "latest.cost.tuition.in_state") */
8
+ path: string;
9
+ /** Human-readable description */
10
+ description: string;
11
+ /** Data type */
12
+ type: 'integer' | 'float' | 'string' | 'boolean';
13
+ /** Whether this field supports API-side sorting */
14
+ sortable: boolean;
15
+ /** Thematic category */
16
+ category: string;
17
+ }
18
+ /** Core field catalog — most decision-relevant fields from the data dictionary. */
19
+ export declare const FIELD_CATALOG: FieldEntry[];
20
+ /**
21
+ * Search the field catalog by keyword — matches path, description, or category.
22
+ * Returns up to `limit` results (default 30).
23
+ */
24
+ export declare function searchFieldCatalog(query: string, limit?: number): FieldEntry[];
25
+ //# sourceMappingURL=field-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-catalog.d.ts","sourceRoot":"","sources":["../../src/data/field-catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB;IAChB,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACjD,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mFAAmF;AACnF,eAAO,MAAM,aAAa,EAAE,UAAU,EA8FrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,UAAU,EAAE,CAsB1E"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * @fileoverview Embedded College Scorecard field catalog. Derived from the
3
+ * Scorecard data dictionary. Static data — no API call required.
4
+ * @module data/field-catalog
5
+ */
6
+ /** Core field catalog — most decision-relevant fields from the data dictionary. */
7
+ export const FIELD_CATALOG = [
8
+ // Identity
9
+ { path: 'id', description: 'Unique unit ID (use for ID-based lookups)', type: 'integer', sortable: true, category: 'identity' },
10
+ { path: 'school.name', description: 'Institution name', type: 'string', sortable: true, category: 'identity' },
11
+ { path: 'school.city', description: 'City', type: 'string', sortable: false, category: 'identity' },
12
+ { path: 'school.state', description: 'State (two-letter code)', type: 'string', sortable: false, category: 'identity' },
13
+ { path: 'school.zip', description: 'ZIP code', type: 'string', sortable: false, category: 'identity' },
14
+ { path: 'school.school_url', description: 'Institution website URL', type: 'string', sortable: false, category: 'identity' },
15
+ { path: 'school.ownership', description: 'Control: 1=public, 2=private nonprofit, 3=private for-profit', type: 'integer', sortable: false, category: 'identity' },
16
+ { path: 'school.carnegie_basic', description: 'Carnegie Basic Classification', type: 'integer', sortable: false, category: 'identity' },
17
+ { path: 'school.locale', description: 'Urbanization: 11=city-large, 12=city-mid, 13=city-small, 21=suburb-large, 31=town-fringe, 41=rural-fringe', type: 'integer', sortable: false, category: 'identity' },
18
+ { path: 'school.degrees_awarded.predominant', description: 'Predominant degree: 0=non-degree, 1=certificate, 2=associate, 3=bachelor, 4=graduate', type: 'integer', sortable: false, category: 'identity' },
19
+ { path: 'school.institutional_characteristics.level', description: 'Level: 1=4-year, 2=2-year, 3=less-than-2-year', type: 'integer', sortable: false, category: 'identity' },
20
+ { path: 'school.religious_affiliation', description: 'Religious affiliation code (0=none)', type: 'integer', sortable: false, category: 'identity' },
21
+ { path: 'school.hbcu', description: 'Historically Black College or University flag', type: 'integer', sortable: false, category: 'identity' },
22
+ { path: 'school.men_only', description: 'Men-only institution flag', type: 'integer', sortable: false, category: 'identity' },
23
+ { path: 'school.women_only', description: 'Women-only institution flag', type: 'integer', sortable: false, category: 'identity' },
24
+ // Cost
25
+ { path: 'latest.cost.tuition.in_state', description: 'In-state tuition and fees (list price)', type: 'integer', sortable: true, category: 'cost' },
26
+ { path: 'latest.cost.tuition.out_of_state', description: 'Out-of-state tuition and fees (list price)', type: 'integer', sortable: true, category: 'cost' },
27
+ { path: 'latest.cost.avg_net_price.overall', description: 'Average net price (all students receiving Title IV aid)', type: 'integer', sortable: true, category: 'cost' },
28
+ { path: 'latest.cost.avg_net_price.by_income.0-30000', description: 'Average net price for family income $0–$30,000', type: 'integer', sortable: false, category: 'cost' },
29
+ { path: 'latest.cost.avg_net_price.by_income.30001-48000', description: 'Average net price for family income $30,001–$48,000', type: 'integer', sortable: false, category: 'cost' },
30
+ { path: 'latest.cost.avg_net_price.by_income.48001-75000', description: 'Average net price for family income $48,001–$75,000', type: 'integer', sortable: false, category: 'cost' },
31
+ { path: 'latest.cost.avg_net_price.by_income.75001-110000', description: 'Average net price for family income $75,001–$110,000', type: 'integer', sortable: false, category: 'cost' },
32
+ { path: 'latest.cost.avg_net_price.by_income.110001-plus', description: 'Average net price for family income $110,001+', type: 'integer', sortable: false, category: 'cost' },
33
+ { path: 'latest.cost.attendance.academic_year', description: 'Total cost of attendance per academic year', type: 'integer', sortable: true, category: 'cost' },
34
+ { path: 'latest.cost.attendance.program_year', description: 'Total cost of attendance per program year', type: 'integer', sortable: false, category: 'cost' },
35
+ { path: 'latest.cost.roomboard.oncampus', description: 'On-campus room and board cost', type: 'integer', sortable: false, category: 'cost' },
36
+ { path: 'latest.cost.booksupply', description: 'Books and supplies cost', type: 'integer', sortable: false, category: 'cost' },
37
+ // Admissions
38
+ { path: 'latest.admissions.admission_rate.overall', description: 'Overall admission rate (0–1)', type: 'float', sortable: true, category: 'admissions' },
39
+ { path: 'latest.admissions.sat_scores.average.overall', description: 'Average SAT score (all sections)', type: 'integer', sortable: true, category: 'admissions' },
40
+ { path: 'latest.admissions.sat_scores.25th_percentile.critical_reading', description: 'SAT Critical Reading 25th percentile', type: 'integer', sortable: false, category: 'admissions' },
41
+ { path: 'latest.admissions.sat_scores.75th_percentile.critical_reading', description: 'SAT Critical Reading 75th percentile', type: 'integer', sortable: false, category: 'admissions' },
42
+ { path: 'latest.admissions.sat_scores.25th_percentile.math', description: 'SAT Math 25th percentile', type: 'integer', sortable: false, category: 'admissions' },
43
+ { path: 'latest.admissions.sat_scores.75th_percentile.math', description: 'SAT Math 75th percentile', type: 'integer', sortable: false, category: 'admissions' },
44
+ { path: 'latest.admissions.act_scores.25th_percentile.cumulative', description: 'ACT composite 25th percentile', type: 'integer', sortable: false, category: 'admissions' },
45
+ { path: 'latest.admissions.act_scores.75th_percentile.cumulative', description: 'ACT composite 75th percentile', type: 'integer', sortable: false, category: 'admissions' },
46
+ { path: 'latest.student.size', description: 'Total undergraduate enrollment', type: 'integer', sortable: true, category: 'admissions' },
47
+ // Financial Aid
48
+ { path: 'latest.aid.loan_principal', description: 'Median loan principal (institutional level)', type: 'integer', sortable: true, category: 'aid' },
49
+ { path: 'latest.aid.median_debt.completers.overall', description: 'Median debt at graduation (completers)', type: 'integer', sortable: true, category: 'aid' },
50
+ { path: 'latest.aid.median_debt.noncompleters', description: 'Median debt for non-completers', type: 'integer', sortable: false, category: 'aid' },
51
+ { path: 'latest.aid.pell_grant_rate', description: 'Share of undergrads receiving Pell grants', type: 'float', sortable: true, category: 'aid' },
52
+ { path: 'latest.aid.federal_loan_rate', description: 'Share of undergrads receiving federal loans', type: 'float', sortable: true, category: 'aid' },
53
+ { path: 'latest.repayment.3_yr_repayment.overall', description: '3-year repayment rate (share not in default/delinquency)', type: 'float', sortable: true, category: 'aid' },
54
+ { path: 'latest.repayment.1_yr_repayment.overall', description: '1-year repayment rate', type: 'float', sortable: false, category: 'aid' },
55
+ { path: 'latest.repayment.5_yr_repayment.overall', description: '5-year repayment rate', type: 'float', sortable: false, category: 'aid' },
56
+ // Completion / Outcomes
57
+ { path: 'latest.completion.rate_suppressed.overall', description: 'Completion rate at 150% normal time (overall)', type: 'float', sortable: true, category: 'completion' },
58
+ { path: 'latest.completion.rate_suppressed.lt_four_year_150percent', description: 'Completion rate for <4-year programs at 150% time', type: 'float', sortable: false, category: 'completion' },
59
+ { path: 'latest.completion.consumer_rate', description: 'Consumer-friendly completion rate', type: 'float', sortable: false, category: 'completion' },
60
+ // Earnings — Institution Level
61
+ { path: 'latest.earnings.6_yrs_after_entry.median', description: 'Median earnings 6 years after entry', type: 'integer', sortable: true, category: 'earnings' },
62
+ { path: 'latest.earnings.8_yrs_after_entry.median_earnings', description: 'Median earnings 8 years after entry', type: 'integer', sortable: true, category: 'earnings' },
63
+ { path: 'latest.earnings.10_yrs_after_entry.median', description: 'Median earnings 10 years after entry', type: 'integer', sortable: true, category: 'earnings' },
64
+ { path: 'latest.earnings.6_yrs_after_entry.percent_greater_than_25000', description: 'Share earning >$25k at 6 years', type: 'float', sortable: false, category: 'earnings' },
65
+ { path: 'latest.earnings.6_yrs_after_entry.percent_greater_than_100000', description: 'Share earning >$100k at 6 years', type: 'float', sortable: false, category: 'earnings' },
66
+ { path: 'latest.earnings.mean_annual_increment', description: 'Mean annual earnings increment', type: 'float', sortable: false, category: 'earnings' },
67
+ // Earnings percentiles
68
+ { path: 'latest.earnings.6_yrs_after_entry.percentile25', description: '25th percentile earnings at 6 years', type: 'integer', sortable: false, category: 'earnings' },
69
+ { path: 'latest.earnings.6_yrs_after_entry.percentile75', description: '75th percentile earnings at 6 years', type: 'integer', sortable: false, category: 'earnings' },
70
+ { path: 'latest.earnings.10_yrs_after_entry.percentile25', description: '25th percentile earnings at 10 years', type: 'integer', sortable: false, category: 'earnings' },
71
+ { path: 'latest.earnings.10_yrs_after_entry.percentile75', description: '75th percentile earnings at 10 years', type: 'integer', sortable: false, category: 'earnings' },
72
+ // Earnings by gender
73
+ { path: 'latest.earnings.6_yrs_after_entry.female_students.median_earnings', description: 'Median earnings for female students at 6 years', type: 'integer', sortable: false, category: 'earnings' },
74
+ { path: 'latest.earnings.6_yrs_after_entry.male_students.median_earnings', description: 'Median earnings for male students at 6 years', type: 'integer', sortable: false, category: 'earnings' },
75
+ // Demographics
76
+ { path: 'latest.student.demographics.race_ethnicity.white', description: 'Share of students identifying as white', type: 'float', sortable: false, category: 'demographics' },
77
+ { path: 'latest.student.demographics.race_ethnicity.black', description: 'Share of students identifying as Black', type: 'float', sortable: false, category: 'demographics' },
78
+ { path: 'latest.student.demographics.race_ethnicity.hispanic', description: 'Share of students identifying as Hispanic', type: 'float', sortable: false, category: 'demographics' },
79
+ { path: 'latest.student.demographics.race_ethnicity.asian', description: 'Share of students identifying as Asian', type: 'float', sortable: false, category: 'demographics' },
80
+ { path: 'latest.student.demographics.first_generation', description: 'Share of first-generation college students', type: 'float', sortable: false, category: 'demographics' },
81
+ { path: 'latest.student.demographics.age_entry', description: 'Average age at entry', type: 'float', sortable: false, category: 'demographics' },
82
+ { path: 'latest.student.demographics.female_share', description: 'Share of undergraduate students who are female', type: 'float', sortable: false, category: 'demographics' },
83
+ { path: 'latest.student.part_time_share', description: 'Share of undergrads enrolled part-time', type: 'float', sortable: false, category: 'demographics' },
84
+ // Programs — Field of Study
85
+ { path: 'latest.programs.cip_4_digit.code', description: 'CIP 4-digit program code (e.g. "11.07")', type: 'string', sortable: false, category: 'programs' },
86
+ { path: 'latest.programs.cip_4_digit.title', description: 'Program title', type: 'string', sortable: false, category: 'programs' },
87
+ { path: 'latest.programs.cip_4_digit.earnings.highest.1_yr.overall_median_earnings', description: 'Median earnings 1 year after graduation by program', type: 'integer', sortable: false, category: 'programs' },
88
+ { path: 'latest.programs.cip_4_digit.earnings.highest.1_yr.overall_count_titleiv', description: 'Number of Title IV students used for program earnings', type: 'integer', sortable: false, category: 'programs' },
89
+ { path: 'latest.programs.cip_4_digit.debt.median_debt', description: 'Median debt at graduation by program', type: 'integer', sortable: false, category: 'programs' },
90
+ { path: 'latest.programs.cip_4_digit.counts.ipeds_enrollment', description: 'IPEDS enrollment count by program', type: 'integer', sortable: false, category: 'programs' },
91
+ { path: 'latest.programs.cip_4_digit.credential_level', description: 'Credential level: 1=certificate, 2=associate, 3=bachelor, 6=post-bac cert, 7=master, 8=doctoral, 17=professional', type: 'integer', sortable: false, category: 'programs' },
92
+ ];
93
+ /**
94
+ * Search the field catalog by keyword — matches path, description, or category.
95
+ * Returns up to `limit` results (default 30).
96
+ */
97
+ export function searchFieldCatalog(query, limit = 30) {
98
+ const terms = query.toLowerCase().split(/\s+/).filter(Boolean);
99
+ if (terms.length === 0)
100
+ return FIELD_CATALOG.slice(0, limit);
101
+ const scored = [];
102
+ for (const entry of FIELD_CATALOG) {
103
+ const haystack = `${entry.path} ${entry.description} ${entry.category}`.toLowerCase();
104
+ let score = 0;
105
+ for (const term of terms) {
106
+ if (haystack.includes(term)) {
107
+ score++;
108
+ if (entry.path.includes(term))
109
+ score++;
110
+ if (entry.category === term)
111
+ score += 2;
112
+ }
113
+ }
114
+ if (score > 0)
115
+ scored.push({ entry, score });
116
+ }
117
+ return scored
118
+ .sort((a, b) => b.score - a.score)
119
+ .slice(0, limit)
120
+ .map((s) => s.entry);
121
+ }
122
+ //# sourceMappingURL=field-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-catalog.js","sourceRoot":"","sources":["../../src/data/field-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @fileoverview college-scorecard-mcp-server MCP server entry point.
4
+ * @module index
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG"}
package/dist/index.js ADDED
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @fileoverview college-scorecard-mcp-server MCP server entry point.
4
+ * @module index
5
+ */
6
+ import { createApp } from '@cyanheads/mcp-ts-core';
7
+ // Prompts
8
+ import { comparePrompt } from './mcp-server/prompts/definitions/compare.prompt.js';
9
+ import { programsResource } from './mcp-server/resources/definitions/programs.resource.js';
10
+ // Resources
11
+ import { schoolResource } from './mcp-server/resources/definitions/school.resource.js';
12
+ import { compareSchoolsTool } from './mcp-server/tools/definitions/compare-schools.tool.js';
13
+ import { getEarningsTool } from './mcp-server/tools/definitions/get-earnings.tool.js';
14
+ import { getProgramsTool } from './mcp-server/tools/definitions/get-programs.tool.js';
15
+ import { getSchoolTool } from './mcp-server/tools/definitions/get-school.tool.js';
16
+ import { listFieldsTool } from './mcp-server/tools/definitions/list-fields.tool.js';
17
+ // Tools
18
+ import { lookupCipTool } from './mcp-server/tools/definitions/lookup-cip.tool.js';
19
+ import { searchProgramsTool } from './mcp-server/tools/definitions/search-programs.tool.js';
20
+ import { searchSchoolsTool } from './mcp-server/tools/definitions/search-schools.tool.js';
21
+ import { valueAnalysisTool } from './mcp-server/tools/definitions/value-analysis.tool.js';
22
+ import { initScorecardService } from './services/scorecard/scorecard-service.js';
23
+ await createApp({
24
+ tools: [
25
+ lookupCipTool,
26
+ listFieldsTool,
27
+ searchSchoolsTool,
28
+ getSchoolTool,
29
+ getProgramsTool,
30
+ getEarningsTool,
31
+ searchProgramsTool,
32
+ compareSchoolsTool,
33
+ valueAnalysisTool,
34
+ ],
35
+ resources: [schoolResource, programsResource],
36
+ prompts: [comparePrompt],
37
+ instructions: 'College Scorecard MCP Server — U.S. higher education data from the Department of Education.\n' +
38
+ '- Start with scorecard_search_schools to find institutions by name, state, or type\n' +
39
+ '- Use scorecard_lookup_cip to convert program names to CIP codes before filtering by program\n' +
40
+ '- scorecard_get_programs returns program-level 1-year earnings (not institution-level)\n' +
41
+ '- scorecard_value_analysis computes debt-to-earnings and ROI metrics in one call\n' +
42
+ '- scorecard_list_fields and scorecard_lookup_cip make zero API calls — safe to use freely',
43
+ setup(core) {
44
+ initScorecardService(core.config, core.storage);
45
+ },
46
+ });
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yDAAyD,CAAC;AAC3F,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AACpF,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wDAAwD,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uDAAuD,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,MAAM,SAAS,CAAC;IACd,KAAK,EAAE;QACL,aAAa;QACb,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB;KAClB;IACD,SAAS,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAC7C,OAAO,EAAE,CAAC,aAAa,CAAC;IACxB,YAAY,EACV,+FAA+F;QAC/F,sFAAsF;QACtF,gGAAgG;QAChG,0FAA0F;QAC1F,oFAAoF;QACpF,2FAA2F;IAC7F,KAAK,CAAC,IAAI;QACR,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC"}