npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

msstate-policies-mcp

v1.2.8

Published

MCP server exposing Mississippi State University Operating Policies and academic dates (registrar, exams, holidays, grad school, financial aid, housing). Unofficial.

Readme

msstate-policies-mcp

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.

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.

This is the publishable npm package and the Claude Code plugin source. See the repository root README for the user-facing walkthrough, install paths, and what to expect from a response.

Install (plain MCP)

npx -y msstate-policies-mcp

…or from a local checkout:

node /path/to/msstate-mcp/msstate-policies/dist/index.js

Tools (33)

Policies (4): search_policies, get_policy, chain_find_relevant_policies, cite_policy Calendars (2, v0.4.0+, synonyms-aware in v0.5.0): find_msu_date, get_msu_calendar 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 Emergency (4, v0.7.0): get_msu_emergency_guideline, list_msu_emergency_types, find_msu_severe_weather_refuge, get_msu_emergency_contacts Tuition (4, v0.8.0): get_msu_tuition_rate, get_msu_enrollment_fees, find_msu_tuition_faq, list_msu_tuition_campuses 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 Dining (2, v1.1.0): list_msu_dining_locations, get_msu_dining_hours HR (4, v1.2.6): find_msu_hr_info, find_msu_hr_form, get_msu_hr_benefit, list_msu_hr_contacts Citation (1, v1.2.3): citation_card Diagnostics (1): health_check

See the root README for tool descriptions and example responses.

Environment variables

Runtime (consumer-facing)

| Variable | Effect | |---|---| | MSSTATE_POLICIES_RETRIEVAL | bm25 (default) / embed / hybrid. Policy search only. See root README for the comparative-eval rationale. | | OPENAI_API_KEY | Required at runtime when MSSTATE_POLICIES_RETRIEVAL is embed or hybrid (for query embedding). Otherwise unused. | | MSSTATE_POLICIES_CACHE | Set to disk to enable cross-platform on-disk cache for policy PDFs (24h TTL) via env-paths. Default in-memory only. Calendar rows use in-memory TTL only (24h stable sources, 6h housing). |

Calendar retrieval is always BM25-with-synonyms at runtime — no API key, no env var, no cost. Synonyms ship inside the package's dist/calendar-synonyms.json sidecar.

Build-time (rebuilders only)

| Variable | Required when | Effect | |---|---|---| | ANTHROPIC_API_KEY | Running node scripts/build-worker-corpus.mjs | Generates v0.5.0 synonyms. Never read at runtime — mechanically enforced by SYN4 in tools/security-checklist.sh. |

All logging goes to stderr only — stdout is reserved for MCP JSON-RPC framing.

Scripts

npm run build         # bundle src/ → dist/index.js (CJS)
npm run typecheck     # tsc --noEmit
npm test              # tsx --test tests/*.test.ts
npm run audit:pdfs    # download + parse all current PDFs (live; writes eval/audit-*.csv)
npm run embeddings    # build dist/embeddings.json for POLICY search (needs OPENAI_API_KEY)
npm run eval          # run the policy eval harness against the live MCP (--suite=<name> to target a specific module suite)
npm run eval:synonyms # v0.5.0 calendar synonyms eval — pure BM25, zero API cost
                      # Deterministic suites (CI-gated): courses, emergency, tuition, dining, adversarial
                      # Manual suites (live-scrape MSU): dates, policies (--suite=policies needs ANTHROPIC_API_KEY)
npm run bundle        # build the Claude Project starter zip (released as dist-bundle/)

Full corpus rebuild (Worker + sidecar) — runs scrape + v0.5.0 paraphrase pass:

export ANTHROPIC_API_KEY=sk-ant-...
node ../scripts/build-worker-corpus.mjs

Cached by content hash — incremental rebuilds re-paraphrase only changed rows (typically <$0.05). Full rebuild: ~$0.50, ~25 minutes (concurrency 2, tuned for Anthropic tier-1 rate limits).

Maintainers: see ../docs/BUILD.md for architecture, decision history, eval methodology, and open issues.

License

MIT.