Juno MCP Server
A modular Model Context Protocol (MCP) server for interacting with MGMU Juno ERP, exposing student data tools for LLMs.
This grade comes from an automated MCPSafe scan of the server's JavaScript, TypeScript and Python source on 2026-10-02. It read the whole repository (9 files). It checks for leaked credentials, shell or code injection from function inputs, unsafe deserialization, malware signatures, install-time scripts, and weak password handling. It does not check for path traversal, server-side request forgery, prompt injection in tool descriptions, network exposure, SQL injection, cross-site scripting, or vulnerable dependencies. It has not been manually reviewed, and the code may have changed since the scan.
Excellent Security
Trust Score 69
Trust is stricter than security: it combines reviewed security, MCP capability risk, supply-chain metadata, quality, popularity, freshness, and penalties for unknowns.
- • No reviewed severe vulnerabilities published
- • Good documentation surface
- • Solid supply-chain metadata
- • Recently scanned
- • Missing/unclear license
- • MCP risk traits: Runs shell commands, Network/API access, Requires secrets
Security ScoreA+
Vulnerabilities Found
Quality ScoreC
Maintenance58
Popularity3
Documentation88
Available Documentation
Compatibility72
Features
Supported Transports
Vulnerabilities(0)
This grade comes from an automated scan. Individual findings from automated scans are not published.
READMEJuno MCP Server
View sourceJuno ERP MCP Client
A modular Model Context Protocol (MCP) server for interacting with MGMU Juno ERP. It exposes both student (own data) and employee (university-wide management) capabilities as tools for use with LLMs (like Claude).
🚀 Features
- Student tools: profile, academic info, attendance (+ graph), fees, admission, exam results, schedule, courses, search.
- Employee tools: university-wide search and the full student-management dashboard (personal info, academics, fees, attendance/marks graphs, exams, transfers, hostel, library, placement, grievances, leave, and more) — looked up by
studentId. - Profile-image proxy:
search_universityrewrites profile-picture URLs to this server, which streams the authenticated image back so the AI panel can render it directly. - Optional proxy: route ERP traffic through an HTTP/HTTPS/SOCKS proxy, or auto-pick a free one.
🛠️ Setup
- Install Dependencies:
```bash
npm install
```
- Configure Environment: copy
.env.exampleto.envand fill it in.
```bash
cp .env.example .env
```
- Student account: STUDENT_EMAIL / STUDENT_PASSWORD (legacy email / password still work).
- Employee account: EMPLOYEE_EMAIL / EMPLOYEE_PASSWORD — required for the employee tools and the image proxy.
- **PUBLIC_URL**: the externally reachable base URL of this server (used to build image links). Defaults to http://localhost:<PORT>.
- Proxy (optional): set PROXY_URL, or PROXY_USE_RANDOM=true to auto-pick a free one. No proxy is used unless configured.
- Build:
```bash
npm run build
```
🏃 Running the Server
npm run dev # live development
# or
npm run build && npm startThe MCP endpoint is http://localhost:8987/mcp. Health check at /health.
🖼️ Profile-image proxy
search_university returns each hit with its imageUrl rewritten to:
<PUBLIC_URL>/img/getStudentProfileImageById.json?id=<id>
<PUBLIC_URL>/img/getEmployeeProfileImageById.json?id=<id>Requesting that URL makes the server fetch the image from the ERP using the
logged-in employee session and stream it back, so the AI can display it
without its own credentials. Only the two known profile-image endpoints are
proxied (it is not an open proxy).
🐳 Docker Support
The image is published to GHCR: ghcr.io/danish-mar/juno-mcp:master.
docker-compose up -d --build
docker logs -f juno-mcp
docker-compose downThis depends on juno-erp-client@^1.1.0 from npm, so the Docker build's
npm install resolves it from the registry with no extra setup.
🧰 Available Tools
Student (logged-in student's own data)
get_profile, get_academic_info, get_admission_details, get_remaining_fees,
get_fees_structure, get_attendance_details, get_attendance_graph,
get_exam_details, get_student_results, get_today_schedule,
get_courses_for_term, search_student
Employee (staff account)
search_university— search all students/staff; profile images are proxied.- Per-student lookups (take a
studentId):get_student_personal_information,
get_student_academic_info, get_student_admission_details,
get_student_fees_details, get_student_fee_structure, get_student_receivable,
get_student_attendance_details, get_student_attendance_graph,
get_student_marks_graph, get_student_clinical_attendance_analysis,
get_student_exam_details, get_student_transfer_details,
get_student_transfer_history, get_student_event_details,
get_student_grievances, get_student_library_details,
get_student_placement_details, get_student_hostel_details,
get_student_course_file_details, get_student_leave_history
🔒 Security
- Credentials are loaded from
.env(gitignored), never hardcoded. - Sessions are kept in memory per role and refreshed automatically on expiry.
- The image proxy is restricted to the two ERP profile-image endpoints.
📄 License
ISC
Embed Security Badge
Add this badge to your README or documentation
[](https://mcpsafe.org/registry/juno-mcp-server)Server Information
- Source
- GITHUB
- Language
- other
- Transport
- STDIO
- Added
- Aug 11, 2026
- Updated
- Oct 1, 2026