Skip to main content
Glama

Juno 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_university rewrites 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.

Related MCP server: MUSTer MCP Server

🛠️ Setup

  1. Install Dependencies:

    npm install
  2. Configure Environment: copy .env.example to .env and fill it in.

    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.

  3. Build:

    npm run build

🏃 Running the Server

npm run dev            # live development
# or
npm run build && npm start

The 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 down

This 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

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danish-mar/juno-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server