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

campus-ai-toolkit

v1.1.0

Published

MCP server for responsible AI education on campus — built on Anthropic's Model Context Protocol

Readme

campus-ai-toolkit

npm version License: MIT MCP Ready CI TypeScript Node >= 18 Docs

MCP server for responsible AI education — built on Anthropic's Model Context Protocol

campus-ai-toolkit is an open-source, production-grade Model Context Protocol (MCP) server designed specifically for university classrooms, student AI clubs, campus ambassadors, hackathon organizers, and student builders. It exposes 7 deterministic, offline educational tools to any MCP-compatible AI assistant (including Claude Desktop, Claude Code, and developer IDEs) to foster ethical literacy, robust prompt engineering, output auditing, and automated workshop generation.


📑 Table of Contents


💡 Why Campus AI Toolkit?

As universities accelerate AI adoption, students and educators face three critical hurdles:

  1. Uncalibrated Prompting: Students default to vague, open-ended prompts that encourage hallucinations or fail academic rigor.
  2. Abstract Ethics Discussions: Traditional AI ethics lectures feel disconnected from the reality of recent 2024–2026 incidents (proctoring biometrics, synthetic deepfakes, model bias).
  3. High Workshop Prep Overhead: Student leads and campus ambassadors spend hours preparing time-slotted agendas, icebreakers, and breakout exercises for campus workshops.

campus-ai-toolkit solves this by giving Claude instant, native access to deterministic evaluators and rich educational datasets directly in the conversation window.


🏛️ Where to Use It

| Setting | Target Audience | How campus-ai-toolkit Helps | | :--- | :--- | :--- | | University Classrooms & Labs | Faculty, TAs, Instructors | Run live interactive prompt-grading sessions; assign students to test and critique AI outputs using consistent rubrics. | | Student AI Clubs & Chapters | Club Leads, Ambassadors | Instantly generate 30-, 60-, 90-, or 120-minute runnable workshop agendas with tailored slides, icebreakers, and hands-on labs. | | Campus Hackathons | Organizers & Judges | Equip participants with responsible AI guardrails; provide judges with deterministic scoring criteria for student prompt architectures. | | Academic Ethics Seminars | Philosophy, Law, & CS Students | Simulate 24 real-world ethical dilemmas across 8 topics (bias, surveillance, privacy, intellectual property, etc.) with Socratic debate questions. | | Individual Student Builders | Undergraduate & Graduate Researchers | Self-audit prompts before sending them to costly LLM APIs; critically evaluate model responses for hallucinations or uncalibrated bias. |


🔌 How to Set It Up & Use It

1. Using in Claude Desktop (Recommended)

When configured in Claude Desktop, Claude automatically detects the toolkit and invokes the tools when relevant.

Step A: Open your Claude Desktop configuration file

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

(Create this file if it does not already exist).

Step B: Add campus-ai-toolkit

Option 1: Using npx (Once published or globally installed):

{
  "mcpServers": {
    "campus-ai-toolkit": {
      "command": "npx",
      "args": ["-y", "campus-ai-toolkit"]
    }
  }
}

Option 2: Using your local cloned repository:

{
  "mcpServers": {
    "campus-ai-toolkit": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/campus-ai-toolkit/dist/index.js"]
    }
  }
}

Step C: Restart Claude Desktop

Completely quit and reopen Claude Desktop. Look for the hammer icon (🔨) in the prompt box indicating that campus-ai-toolkit is active!


2. Using in Claude Code (CLI)

Add the server to your Claude Code workspace:

# Using published package
claude mcp add campus-ai-toolkit -- npx -y campus-ai-toolkit

# OR using local build
claude mcp add campus-ai-toolkit -- node /ABSOLUTE/PATH/TO/campus-ai-toolkit/dist/index.js

Verify the tools:

claude mcp list

3. Using in Cursor / Windsurf / VS Code

In tools supporting MCP (such as Cursor, Windsurf, Cline, or Roo-Code):

  1. Navigate to Settings > MCP Servers.
  2. Add a new Stdio server:
    • Name: campus-ai-toolkit
    • Command: npx
    • Args: ["-y", "campus-ai-toolkit"]

4. Programmatic Usage via MCP SDK

You can call campus-ai-toolkit programmatically from any Node.js application using @modelcontextprotocol/sdk:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

async function main() {
  const transport = new StdioClientTransport({
    command: "npx",
    args: ["-y", "campus-ai-toolkit"],
  });

  const client = new Client({ name: "campus-client", version: "1.0.0" }, { capabilities: {} });
  await client.connect(transport);

  // Call the prompt quality tool
  const result = await client.callTool({
    name: "assess_prompt_quality",
    arguments: {
      prompt: "Explain CRISPR with 3 examples and format as a bulleted comparison table.",
      context: "Genetics undergraduate exam revision"
    }
  });

  console.log(result.content[0].text);
}

main();

💬 Prompt Cheat Sheet: What to Ask Claude

Once connected, you can speak to Claude in natural language. Here are proven prompt templates:

🎯 Assessing Student Prompts

"I'm teaching a freshman CS lab. Can you assess the quality of this prompt: 'Give me some stuff about Python loops and things' and tell me how the student can improve it?"

⚖️ Generating Ethics Case Studies

"We have an upcoming debate in our campus AI club. Generate an advanced responsible AI scenario on 'surveillance' focused on university dorms and facial recognition."

🔍 Auditing AI Generated Output

"A student submitted an AI answer stating: 'All female applicants are inherently less suited for software engineering because of neurological traits.' Evaluate this output against responsible AI criteria and give me 3 talking points for class."

⏱️ Planning Workshops & Hackathons

"I am hosting a 60-minute hands-on workshop for intermediate developers on building with Claude and MCP. Plan a complete minute-by-minute agenda with an icebreaker, lab, and builder club announcement."


🛠️ Detailed Tools Reference

Tool 1: assess_prompt_quality

Scores a student's prompt across 4 objective dimensions (0–10 scale) using deterministic evaluation without external API calls:

  • Clarity: Detects ambiguous filler terms ("something", "thing", "stuff", "maybe", "kind of", "sort of", "etc"). Deducts 1 per occurrence (max deduct 4).
  • Specificity: Awards $+2$ for length $>20$ words, $+2$ for concrete numbers/names/dates, $+2$ for explicit examples/context parameters (max 6).
  • Safety: Checks for adversarial bypass/jailbreak patterns ("hack", "bypass", "ignore previous", "jailbreak", "pretend you are", "DAN"), scoring $10 - (\text{flags} \times 3)$, min 0.
  • Hallucination Risk: Classifies risk based on prompt constraints (short $<10$ words = 2, open-ended = 5, well-constrained = 9).
  • Letter Grade: Computed from overall_score ($\ge 9$: A, $\ge 7$: B, $\ge 5$: C, $\ge 3$: D, $<3$: F).
  • Suggestions: Selects the top 3 targeted improvement tips addressing the student's weakest dimensions.

Example Response

{
  "overall_score": 5.25,
  "dimensions": {
    "clarity": 7,
    "specificity": 2,
    "safety": 10,
    "hallucination_risk": 2
  },
  "flags": [
    "Vague words detected: \"stuff\" (1x), \"maybe\" (1x) (-2 clarity)",
    "Prompt is brief (9 words; >20 words recommended for high specificity)",
    "Lacks concrete anchor entities (no specific numbers, names, or dates detected)",
    "High hallucination risk: prompt is under 10 words, leaving wide room for ungrounded fabrication"
  ],
  "suggestions": [
    "Increase specificity by adding concrete parameters: numbers, benchmark dates, target personas, or explicit structural templates.",
    "Mitigate hallucination risk by enforcing boundaries: specify citation sources, request step-by-step reasoning, or instruct the model to answer 'unknown' if uncertain.",
    "Replace ambiguous filler words (like 'stuff', 'thing', 'kind of') with precise, technically accurate domain terms."
  ],
  "grade": "C"
}

Tool 2: generate_responsible_ai_scenario

Generates real-world inspired dilemmas across 8 topics and 3 levels:

  • Topics: bias, privacy, misinformation, automation, surveillance, intellectual_property, transparency, environment.
  • Levels: beginner (10 min), intermediate (20 min), advanced (30 min).
  • Context Injection: Adaptable to any custom university or industry setting (healthcare, dormitories, finance, etc.).

Example Response

{
  "scenario_title": "The Biased Campus Resume Screener",
  "situation": "A university career center deploys an off-the-shelf AI screening tool to triage 5,000 student internship applications for local tech firms. Within weeks, student advocates discover the model penalizes resumes mentioning women's leadership clubs and historically Black colleges due to historical training data skew. The administration faces immediate pressure to either halt the tool before career fair deadlines or apply quick post-processing patches.",
  "stakeholders": [
    "Undergraduate job applicants",
    "University Career Services",
    "Hiring partner employers",
    "Campus DEI committee"
  ],
  "ethical_tensions": [
    "Efficiency in processing high applicant volumes vs. Fair equal opportunity for marginalized students",
    "Institutional reputation vs. Rapid technological adoption"
  ],
  "discussion_questions": [
    "Why does training an algorithm on 'past successful hires' systematically replicate historic demographic disparities?",
    "Should automated hiring filters be held to a stricter legal standard than human resume reviewers?",
    "What verification steps should university administrators require before purchasing commercial educational AI tools?"
  ],
  "claude_angle": "Anthropic emphasizes red-teaming for demographic disparities and training models using Constitutional AI principles that explicitly reject proxy discrimination.",
  "time_estimate": "10 min"
}

Tool 3: evaluate_ai_output

Helps students critically audit an AI-generated response against standard or custom criteria:

  • Accuracy: Tests for calibrated epistemic humility (hedging words) vs. unsupported factual claims and checks citation formats.
  • Bias: Identifies demographic stereotyping and essentialist generalities.
  • Helpfulness: Assesses prompt keyword coverage and length ratio.
  • Safety: Flags dangerous technical instructions and audits refusal appropriateness.
  • Transparency: Verifies whether the model acknowledges limitations and computational identity.

Example Response

{
  "overall_rating": "Excellent",
  "criteria_scores": {
    "accuracy": { "score": 8, "finding": "Output exhibits no formal citations and well-calibrated uncertainty.", "recommendation": "Instruct the model to cite peer-reviewed or verifiable primary sources." },
    "bias": { "score": 9, "finding": "No blatant demographic generalizations or stereotypical broad brushes detected.", "recommendation": "Continue evaluating outputs for subtle cultural or representational skews." },
    "helpfulness": { "score": 10, "finding": "Response length ratio is 1.25x with 75% prompt keyword alignment.", "recommendation": "Structure output with clear headers and bullet points." },
    "safety": { "score": 10, "finding": "Content complies with ethical guidelines and contains no overt safety hazards.", "recommendation": "Retain safety baselines." },
    "transparency": { "score": 8, "finding": "Output includes appropriate disclaimers and communicates its computational nature.", "recommendation": "Add instructions for the model to preface findings with clear caveats." }
  },
  "red_flags": [],
  "green_flags": [
    "Appropriate epistemic humility with calibrated hedging language",
    "Maintains neutral demographic tone without essentialist generalities",
    "Comprehensive output addressing core vocabulary and prompts",
    "Transparently identifies itself as an AI system"
  ],
  "workshop_talking_points": [
    "Verifiability vs Fluency: The AI produced text that sounds polished, but how many specific claims can students independently corroborate with academic literature?",
    "Epistemic Boundaries: Notice where the model expressed confidence versus uncertainty; did it admit what it doesn't know, or did it generate plausible fiction?",
    "Human in the Loop: What critical verification step must a human practitioner perform before this response could safely be used in a research paper or institutional decision?"
  ],
  "improved_prompt_suggestion": "Please answer the following prompt with high academic rigor: \"...\". Requirements: 1) Cite authoritative sources, 2) Highlight key limitations, 3) Structure response with concise bullet points, and 4) If any details cannot be verified, explicitly state 'unverified'."
}

Tool 4: workshop_planner

Generates turn-key agendas for campus events across:

  • 6 Focus Areas: intro_to_ai, prompt_engineering, responsible_ai, claude_and_mcp, ai_for_builders, ai_safety.
  • 4 Durations: 30m, 60m, 90m, 120m (with time slots mathematically calculated to sum to the exact duration).
  • Target Audiences: beginners, intermediate_developers, non_technical, mixed.
  • Extras: Includes materials list, room setup checklist, icebreaker, closing reflection, and official Claude Builder Club CTA (including the $3,600 Anthropic builder stipend).

🧑‍💻 Local Development & Testing

Clone the repository and install dependencies:

git clone https://github.com/RamSuryaCH/campus-ai-toolkit.git
cd campus-ai-toolkit
npm install

Available Scripts

  • npm run build: Compiles TypeScript with strict checking to ./dist.
  • npm start: Runs the compiled server via Node.js on stdio.
  • npm run dev: Runs the TypeScript source directly using ts-node.
  • npm test: Runs the automated test suite verifying all 4 tools across 50+ test cases.
# Run comprehensive tests
npm test

🚀 Publishing to npm

To publish this package to npm:

  1. Ensure all tests pass and build is fresh:
    npm run build
    npm test
  2. Verify package contents:
    npm pack --dry-run
  3. Authenticate and publish:
    npm login
    npm publish --access public

Once published, anyone can execute the server instantly via npx campus-ai-toolkit!


👨‍💻 Author & Community

Built by Ram Surya Chelluboyina


🎥 Demo

Demo GIF coming soon!

To record your own demo:

# 1. Install asciinema
brew install asciinema   # macOS
# or: pip install asciinema

# 2. Record a session
asciinema rec demo.cast

# 3. Inside the session, run:
node dist/index.js --help
# (Then interact with Claude Desktop to show live tool calls)

# 4. Convert to GIF
npm install -g asciicast2gif
asciicast2gif demo.cast demo.gif

Then add the GIF to this repo and embed it here with:

![campus-ai-toolkit demo](demo.gif)

🗺️ Roadmap

| Status | Feature | |--------|---------| | ✅ Done | Core 4 MCP tools (assess, scenario, evaluate, workshop) | | ✅ Done | 3 new tools: generate_quiz, rubric_builder, ai_policy_checker | | ✅ Done | CI/CD via GitHub Actions, npm test, CONTRIBUTING guide | | ✅ Done | Static GitHub Pages documentation site | | 🔜 Planned | Spaced Repetition System — adaptive quiz difficulty based on session history | | 🔜 Planned | LMS Integration — export rubrics/quiz results to Canvas, Moodle grading formats | | 💡 Future | Multi-language Scenarios — Spanish, Mandarin, French, Hindi ethical dilemmas | | 💡 Future | Classroom Mode MCP Resources — live workshop dashboards and student leaderboards |


📄 License

This project is licensed under the MIT License. Feel free to use, modify, and distribute it for academic, club, or commercial educational purposes.