Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@UAAR University MCP ServerCheck the latest merit list for the Computer Science department"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
UAAR University MCP Server
Model Context Protocol (MCP) Server for PMAS Arid Agriculture University Rawalpindi
A comprehensive MCP server that provides AI agents with structured access to university academic resources, admissions, student services, and administrative functions through 53 specialized tools.
⨠Features
š Academic & Admissions
Course Management: Search courses by name or code across all departments
Department Information: List all academic departments with faculty details
Merit Lists: Access latest department-specific merit rankings for admissions
Admission System: Multi-step admission form with progress tracking
Program Availability: Check available academic programs and requirements
Class Schedules: Get timetables filtered by course or day
š Student Services
Library System: Search books by title, author, ISBN; check availability and borrowing status
Hostel Management: Check room availability, view mess menus, fee structures
Transport Services: Bus routes, stops, and transport card information
Scholarship Portal: Browse scholarships, check eligibility criteria, view details
Academic Results: Semester results, CGPA calculation, transcript request info
šļø Administrative Functions
Faculty Directory: Search faculty by name or research interests
Department Contacts: Emergency contacts and departmental information
Event Management: University events, workshops, and announcements
News System: Latest university news categorized by relevance
Financial Aid: Financial aid office information and fee structures
š§ Administrative Tools (Admin Only)
Data Management: Add departments, courses, faculty members
Content Management: Add library books, scholarships, events, news
System Administration: Full CRUD operations for university data
ā” Technical Features
Multi-Transport Support: Stdio (Claude Code CLI) and HTTP/SSE modes
JWT Authentication: Secure token-based authentication system
SQLite Database: Lightweight database with auto-initialization and seeding
Async Architecture: All tools implemented as async functions
Type Safety: Full Pydantic validation with comprehensive type hints
Paginated Responses: Efficient handling of large datasets
š Quick Start
Prerequisites
Python 3.10 or higher
Git (for development)
Claude Desktop or Claude Code CLI
Installation Methods
Method 1: PyPI Installation (Recommended)
Method 2: Using uv (Modern Python Package Manager)
Method 3: Local Development Setup
š„ļø Usage
Running the MCP Server
Stdio Mode (Claude Code CLI Integration)
This mode is optimized for integration with Claude Code CLI and other MCP clients using stdio transport.
HTTP/SSE Mode (Alternative Transport)
Use this mode for HTTP-based clients or testing via REST API.
Integration with Claude
Claude Desktop Configuration
Add to your claude_desktop_config.json:
Claude Code Configuration
Option A: PyPI Installation (Recommended)
Use the included claude-code-config-pypi.json:
Option B: Local Development
Option C: Universal Configuration
Use the included claude-code-config-universal.json for general-purpose setup.
Environment Configuration
Create your
.envfile:
Configure environment variables:
š ļø Available Tools
The server provides 53 tools organized into 17 categories:
š Complete Tool Reference
Category | Tools | Description |
Academic Tools | 6 tools | Course search, department info, merit lists, schedules |
Admission System | 11 tools | Admission status, multi-step forms, program info |
Student Results | 4 tools | Semester results, GPA calculation, transcripts |
Library Services | 4 tools | Book search, availability, borrowing status |
Hostel Management | 4 tools | Room availability, mess menu, fees, rules |
Scholarship Portal | 4 tools | Scholarship listing, eligibility checking |
Transport Services | 4 tools | Bus routes, stops, transport info |
Faculty Directory | 2 tools | Faculty search and profile information |
Event Management | 1 tool | University events and workshops |
News System | 1 tool | Latest announcements and news |
Contact Information | 5 tools | Department contacts, emergency numbers |
Administrative Tools | 7 tools | [Admin] Data management operations |
Financial Information | 1 tool | Fee structures and financial aid |
Support System | 1 tool | Help ticket submission |
University Info | 4 tools | General university information and links |
Audit Logging | 1 tool | Agent interaction tracking |
User Management | 1 tool | User profile operations |
š Key Tools
Academic Operations
search_courses(query)- Search courses by name or codelist_departments()- Get all university departmentsget_merit_list(dept_id)- Get department merit rankingsget_class_schedule()- Get class timetablesget_exam_schedule()- Get exam schedulesget_today_classes()- Get all classes scheduled for today
Admission System
check_admission_status(cnic)- Check admission status by CNICstart_admission_form()- Begin new admission applicationfill_admission_field()- Step-by-step form fillingfill_multiple_admission_fields()- Bulk field fillingget_admission_form_status()- Check form completion statuspreview_admission_form()- Review form before submissionconfirm_and_submit_admission_form()- Final submissionget_available_programs()- List available academic programsget_admission_requirements()- Get admission eligibility criteria
Student Services
get_semester_result(student_id)- Get semester academic resultsget_cgpa(student_id)- Calculate cumulative GPAcalculate_gpa(grades)- Manual GPA calculatorget_transcript_request_info()- Information for transcript requestssearch_library_books(query)- Search library catalogcheck_book_availability(book_id)- Check book availabilitycheck_hostel_availability()- Check hostel room availabilityget_mess_menu(day)- Get daily mess menulist_scholarships()- Browse available scholarshipscheck_scholarship_eligibility()- Check scholarship eligibilityget_bus_routes()- Get university bus routesfind_bus_stop(location)- Find nearest bus stops
Administrative Functions
search_faculty(query)- Search faculty membersget_department_contact()- Get department contact informationget_emergency_contacts()- Emergency contact numberslist_upcoming_events()- Upcoming university eventsget_latest_news()- Latest news and announcementssubmit_help_ticket()- Submit IT/administrative help requestget_university_info()- General university informationget_important_links()- Important website linksget_fee_structure()- Program fee structureslog_interaction()- Log AI agent interactions (audit)
Admin Tools (Requires Admin Privileges)
admin_add_department()- Add new academic departmentadmin_add_course()- Add new course to catalogadmin_add_faculty()- Add new faculty memberadmin_add_event()- Add university eventadmin_add_news()- Add news announcementadmin_add_book()- Add library bookadmin_add_scholarship()- Add scholarship program
šļø Architecture & Development
Project Structure
Database Schema
The SQLite database (university.db) contains 25 tables covering:
Academic Data: Departments, courses, faculty, merit lists, schedules
Student Records: Users, results, grade points, admission forms
Student Services: Library books, hostel rooms, mess menu, bus routes
Administrative: Events, news, scholarships, help tickets
System Tables: Audit logs, contacts, university info, emergency contacts
Technical Architecture
Framework: FastMCP (MCP Python SDK) with FastAPI backend
Database: SQLite with auto-initialization and seeding
Authentication: JWT tokens with bcrypt password hashing
Transport: Dual-mode (stdio for CLI, HTTP/SSE for web)
Async Pattern: All tools implemented as async functions
Validation: Pydantic models for all request/response schemas
Error Handling: Structured error responses with context
Adding New Tools
Create or modify tool module in
server/tools/Define async function with proper type hints and docstring
Register with decorator:
@mcp.tool( name="tool_name", annotations={ "readOnlyHint": True, # Safe read operations "destructiveHint": False, # No destructive side effects "idempotentHint": True, # Safe to retry "openWorldHint": False # Deterministic results } ) async def tool_name(param: str) -> Dict: """Tool description for AI agents."""Add registration to module's
register_*_tools()functionImport and register in
tools/__init__.py
Database Operations
Use helper functions from database.py:
query_db(sql, params=None)- For SELECT queries (returns list)execute_db(sql, params=None)- For INSERT/UPDATE/DELETE (returns lastrowid)init_db()- Creates all tables (called automatically)seed_db()- Populates with demo data (if tables are empty)
š§ Development Guide
Setting Up Development Environment
Running in Development Mode
Testing Tool Execution
š§Ŗ Testing
Tool Testing Checklist
ā Input Validation - Test with invalid/missing parameters
ā Edge Cases - Empty results, pagination boundaries
ā Error Handling - Database errors, authentication failures
ā Performance - Response times for large datasets
ā Integration - Test with Claude Desktop/Code
Database Testing
āļø Configuration Reference
Environment Variables
Variable | Default | Description |
|
| Database connection string |
|
| JWT signing secret |
|
| JWT algorithm |
|
| Token expiration time |
|
| Server host binding |
|
| Server port |
|
| Debug mode flag |
MCP Configuration Files
claude-desktop-config.json: Claude Desktop integrationclaude-code-config-pypi.json: PyPI installation for Claude Codeclaude-code-config-universal.json: Universal configurationuaar-university-mcp.json: MCP server definition for uv launcher
š Performance & Security
Performance Optimization
Pagination: All list endpoints support pagination (
limit,offset)Database Indexing: Critical fields indexed for fast queries
Connection Management: Lightweight connection per query (MVP approach)
Async Operations: Non-blocking tool execution
Security Considerations
JWT Tokens: 30-minute expiration prevents token reuse
Password Hashing: bcrypt with salt for secure storage
SQL Injection Prevention: Parameterized queries throughout
Input Validation: Pydantic models validate all inputs
Admin Protection: Admin tools marked with
destructiveHint=TrueAudit Logging: All agent interactions logged via
log_interaction()
Production Deployment
For production deployment, consider:
Use PostgreSQL instead of SQLite for scalability
Environment Variables for all secrets
Connection Pooling for database connections
Rate Limiting on API endpoints
CORS Configuration for web clients
Logging & Monitoring setup
Docker Containerization for consistency
š¤ Contributing
We welcome contributions! Here's how you can help:
Reporting Issues
Check existing issues before creating new ones
Include detailed reproduction steps
Provide relevant error messages and logs
Submitting Pull Requests
Fork the repository
Create a branch for your feature/fix
Write tests for your changes
Ensure code style matches existing patterns
Update documentation as needed
Submit PR with clear description
Code Standards
Type Hints: All functions must have complete type annotations
Docstrings: Include descriptive docstrings for all tools
Async Patterns: Use async/await consistently
Error Handling: Return structured error dictionaries
Testing: Include tests for new functionality
š Resources & References
Documentation
MCP Specification: Official MCP protocol documentation
FastMCP Documentation: Python SDK documentation
Claude Code Guide: Comprehensive project documentation for Claude AI
API Documentation: Interactive API docs when running in HTTP mode
Related Projects
Model Context Protocol: Official MCP organization
Claude Code: Anthropic's CLI tool for Claude
FastAPI: Modern web framework for APIs
University Resources
UAAR University: Official university website
PMAS Arid Agriculture University: Parent institution
š License
This project is licensed under the MIT License - see the LICENSE file for complete details.
Permissions
ā Commercial use
ā Modification
ā Distribution
ā Private use
Conditions
ā Include original copyright notice
ā Include license copy
Limitations
ā ļø No warranty
ā ļø No liability
š Acknowledgments
Core Technologies
Model Context Protocol: For enabling AI agent integration
FastMCP: Python SDK for MCP development
FastAPI: Modern, fast web framework for APIs
Pydantic: Data validation and settings management
SQLite: Lightweight, serverless database
Inspiration
UAAR University Digital Transformation: Inspired by the university's commitment to educational technology
Open Source Education Tools: Building on the tradition of open educational resources
AI-Assisted Learning: Advancing the integration of AI in educational administration
Contributors
The UAAR University IT Department for their vision and support
Open source contributors who help improve the project
The MCP community for developing this revolutionary protocol
Special Thanks
To the students, faculty, and staff of PMAS Arid Agriculture University Rawalpindi for inspiring this project and for their dedication to educational excellence.
Made with ā¤ļø for the UAAR University community