msstate-policies-mcp 1.2.0 → 1.2.8

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.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  MCP server exposing seven Mississippi State University content domains: Operating Policies (<https://www.policies.msstate.edu/current>), six academic-date sources (registrar academic + exam calendars, university holidays, graduate school PDFs, financial aid, housing), the course catalog with prereq DAG, emergency guidance, tuition & fees, online programs, and dining venues with per-day hours. **Unofficial — not affiliated with MSU. Always verify against the official source.**
4
4
 
5
- Current version: **v1.1.1** (2026-05-16). Adds the dining module (2 tools, daily-refreshed corpus, status_now in America/Chicago). v1.0.0 added the online module (4 tools). Calendar retrieval uses BM25 over a 4-field weighted index where the `synonyms` field is populated at **build time** by Anthropic Claude Haiku — runtime stays pure BM25 with **zero third-party API calls**.
5
+ Current version: **v1.2.8** (2026-05-22). Trust-surface follow-up #2: closes 5 live-investigation defects (synonyms wire leak, `citation_card` hard-coded `"high"` confidence, `plan_semester` Worker CPU crash, online deadline parser accepting garbage text, HR leave returning empty accruals with no forwarding path) + a side-finding (`msstate-policies/package.json` `test` script omitted `tests/hr/*.test.ts` — 50 tests were silently absent since v1.2.6). No new tools. Security score 330 → 335 via SYN7. Prior release: v1.2.7 (2026-05-21). Trust-surface follow-up to v1.2.6: extends `citation_card` to know about the HR domain (silently returned `confidence: "none"` for every HR claim despite the corpus being loaded — bug introduced in v1.2.6 when HR was added without extending citation_card); fixes a stale HR slug-map drift in the Worker (5 of 10 HR benefit categories returned `page: null` on the hosted Worker); tightens the `relatedForms` keyword extractor. No new tools, no security-score change. v1.2.6 (2026-05-20). Adds 4 new HR tools over a new baked `hr_services` corpus block from hrm.msstate.edu: `find_msu_hr_info`, `find_msu_hr_form`, `get_msu_hr_benefit`, `list_msu_hr_contacts`. Security score 315 → 330 via HR1-HR6. v1.2.5 (2026-05-19). Adds the catalog-only `plan_semester` tool: department + completed courses → up to 3 candidate course bundles within a credit-hour window. v1.2.4 (2026-05-19) adds two derived tools over the existing online corpus: `match_online_program` (profile → ranked shortlist) and `estimate_program_cost` (slug + credits → total-cost rollup). v1.2.3 (2026-05-19) adds the `citation_card` meta-tool — splits an answer into sentence-level claims and returns one citation card per claim across all 7 corpora with source_url + last_updated + confidence. v1.2.0 (2026-05-18) adds anonymous-aggregate Worker telemetry (Cloudflare Analytics Engine; k-anonymity enforced at query time). v1.1.1 fixed the fuzzy program resolver and added `list_programs_by_staff`. v1.1.0 added the dining module (2 tools, daily-refreshed corpus, status_now in America/Chicago). v1.0.0 added the online module (4 tools). Calendar retrieval uses BM25 over a 4-field weighted index where the `synonyms` field is populated at **build time** by Anthropic Claude Haiku — runtime stays pure BM25 with **zero third-party API calls**.
6
6
 
7
7
  This is the publishable npm package and the Claude Code plugin source. See the [repository root README](../README.md) for the user-facing walkthrough, install paths, and what to expect from a response.
8
8
 
@@ -18,18 +18,20 @@ npx -y msstate-policies-mcp
18
18
  node /path/to/msstate-mcp/msstate-policies/dist/index.js
19
19
  ```
20
20
 
21
- ## Tools (25)
21
+ ## Tools (33)
22
22
 
23
23
  **Policies (4):** `search_policies`, `get_policy`, `chain_find_relevant_policies`, `cite_policy`
24
24
  **Calendars (2, v0.4.0+, synonyms-aware in v0.5.0):** `find_msu_date`, `get_msu_calendar`
25
- **Courses (3, v0.6.0+, prereq diagnostics in v0.9.0):** `search_msu_courses`, `get_msu_course`, `get_msu_course_graph`
25
+ **Courses (4, v0.6.0+, prereq diagnostics in v0.9.0, semester planner in v1.2.5):** `search_msu_courses`, `get_msu_course`, `get_msu_course_graph`, `plan_semester`
26
26
  **Emergency (4, v0.7.0):** `get_msu_emergency_guideline`, `list_msu_emergency_types`, `find_msu_severe_weather_refuge`, `get_msu_emergency_contacts`
27
27
  **Tuition (4, v0.8.0):** `get_msu_tuition_rate`, `get_msu_enrollment_fees`, `find_msu_tuition_faq`, `list_msu_tuition_campuses`
28
- **Online (5, v1.0.0 + v1.1.1):** `list_online_programs`, `get_online_program`, `get_online_admissions_process`, `find_online_info`, `list_programs_by_staff`
28
+ **Online (7, v1.0.0 + v1.1.1 + v1.2.4):** `list_online_programs`, `get_online_program`, `get_online_admissions_process`, `find_online_info`, `list_programs_by_staff`, `match_online_program`, `estimate_program_cost`
29
29
  **Dining (2, v1.1.0):** `list_msu_dining_locations`, `get_msu_dining_hours`
30
+ **HR (4, v1.2.6):** `find_msu_hr_info`, `find_msu_hr_form`, `get_msu_hr_benefit`, `list_msu_hr_contacts`
31
+ **Citation (1, v1.2.3):** `citation_card`
30
32
  **Diagnostics (1):** `health_check`
31
33
 
32
- See the [root README](../README.md#the-25-tools) for tool descriptions and example responses.
34
+ See the [root README](../README.md#the-33-tools) for tool descriptions and example responses.
33
35
 
34
36
  ## Environment variables
35
37
 
@@ -59,8 +61,10 @@ npm run typecheck # tsc --noEmit
59
61
  npm test # tsx --test tests/*.test.ts
60
62
  npm run audit:pdfs # download + parse all current PDFs (live; writes eval/audit-*.csv)
61
63
  npm run embeddings # build dist/embeddings.json for POLICY search (needs OPENAI_API_KEY)
62
- npm run eval # run the policy eval harness against the live MCP
64
+ npm run eval # run the policy eval harness against the live MCP (--suite=<name> to target a specific module suite)
63
65
  npm run eval:synonyms # v0.5.0 calendar synonyms eval — pure BM25, zero API cost
66
+ # Deterministic suites (CI-gated): courses, emergency, tuition, dining, adversarial
67
+ # Manual suites (live-scrape MSU): dates, policies (--suite=policies needs ANTHROPIC_API_KEY)
64
68
  npm run bundle # build the Claude Project starter zip (released as dist-bundle/)
65
69
  ```
66
70
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "model": "claude-haiku-4-5",
3
- "built_at": "2026-05-18T14:35:45.465Z",
3
+ "built_at": "2026-05-22T18:54:37.385Z",
4
4
  "synonyms": {
5
5
  "5e6863473c094260d15d2d5077d4ef7f346987c087933bb6f634750bfca6aaab": [
6
6
  "Payment deadline for class enrollment",