Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MESS_AUTH_KEYYesYour auth key from mess.iiit.ac.in (Settings > Auth Keys) or a session cookie

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
mess_cas_login_infoA

Get instructions for IIIT student CAS login (browser-only, cannot be called via API/AJAX).

Returns: Step-by-step instructions for obtaining a session cookie

mess_login_msitA

Login as an MSIT student or intern using email + password.

Args: params: user (email address), password

Returns: JSON User object. 'session_hint' contains the session cookie value to pass as 'session' in subsequent tool calls.

mess_get_meB

Get the currently logged-in user's profile.

Args: params: auth_key or session

Returns: JSON User object (id, name, email, roll_number, token, attributes, tags)

mess_get_auth_keysA

Get all auth keys for the current user (including expired ones).

Args: params: auth_key or session

Returns: JSON array of AuthKey objects (name, user_id, created_at, expires_at)

mess_create_auth_keyA

Create a new API auth key. Key names must be unique.

Args: params: auth_key/session, name (unique friendly name), expiry (YYYY-MM-DD)

Returns: JSON AuthKey including the key value — save this, it won't be shown again. Returns 409 if a key with the same name already exists.

mess_get_auth_key_infoB

Get info about the auth key currently in use (passed in Authorization header).

Args: params: auth_key (the key to inspect)

Returns: JSON AuthKey details. Returns 401/403 if the key is expired.

mess_delete_auth_keyA

Delete an auth key by its name (not its value). Identified by name in the URL path.

Args: params: auth_key/session for auth, name = the friendly name of the key to delete

Returns: JSON status 204 on success

mess_reset_qr_tokenB

Reset the user's QR code token (shown at the mess counter).

Args: params: auth_key or session

Returns: JSON { token: string } — new URL-safe base64 token

mess_generate_reset_password_otpA

Send a password reset OTP to the given email. Only for MSIT/intern accounts.

Rate limited to once per minute. Returns 204 even if email is invalid.

Args: params: email address

Returns: JSON status 204 on success

mess_complete_password_resetA

Complete password reset with OTP + new password.

Args: params: email, otp (6-digit string e.g. '123456'), password (new password)

Returns: JSON status 204 on success

mess_get_infoA

Get info about all messes (name, short_name, color, tags, rating, billing_id). No auth required.

Returns: JSON array of MessInfo objects

mess_get_menusA

Get the food menu for all messes on a date. No auth required.

Use to answer "what's for lunch today?", "what's on the menu this week?", "what is [mess] serving for dinner?". Menu structure per mess: { day_name: { meal: [{ category, name }] } } Menus are stored week-wise (Sunday-anchored). effective_from always falls on a Sunday.

Args: params: on (YYYY-MM-DD, optional, defaults to today)

Returns: JSON array of { mess, updated_at, effective_from, days }

mess_get_ratesA

Get mess rates (in paise) for a meal on a date, grouped by category.

Categories: registered, unregistered, guest, extra.

Args: params: meal (required), on (YYYY-MM-DD, optional)

Returns: JSON { category: [{ mess, day, rate }] } — rate in paise

mess_get_capacitiesA

Get mess capacities for a meal on a date, grouped by category.

Args: params: meal (required), on (YYYY-MM-DD, optional)

Returns: JSON { category: [{ mess, available, capacity }] }

mess_get_registrationsA

Look up what meals the user is registered for over a date range.

Use this to answer: "what am I eating today/tomorrow/this week?", "show my registrations", "which meals do I have booked?". Max range: 2 months. Both dates are inclusive.

Args: params: auth_key/session, from (YYYY-MM-DD), to (YYYY-MM-DD)

Returns: JSON array of MealRegistration objects (meal_date, meal_type, meal_mess, category, user_id, registered_at, cancelled_at, availed_at, availed_price, monthly_reg)

mess_create_registrationA

Register the user for a meal at a specific mess on a date.

Use this when the user wants to book/register for breakfast, lunch, or dinner. Fails with 403 if the registration window is closed or the mess is full.

Args: params: auth_key/session, meal_date, meal_type, meal_mess, optional guests (int)

Returns: JSON MealRegistration on success, or 204 if already registered

mess_get_registrationA

Look up the user's registration for a single date (defaults to today).

Use this to answer "am I registered for lunch today?", "what mess am I going to tonight?". Only returns active (non-cancelled) registrations. If meal is omitted, returns all meals for the date as { meal_type: MealRegistration }. If date is omitted, defaults to today.

Args: params: auth_key/session, optional meal, optional date (YYYY-MM-DD)

Returns: JSON MealRegistration or object keyed by meal name

mess_skip_mealA

Mark a registration as skipped or unskipped.

Skipping = user likely won't attend but is still charged. Use when out of free cancellations.

Args: params: auth_key/session, meal_date, meal_type, meal_mess, skipping (bool)

Returns: JSON updated MealRegistration

mess_cancel_registrationA

Cancel a meal registration so the user is not charged for it.

Use when the user wants to cancel/drop a booked meal. Returns 403 if the cancellation window is closed, 424 if no registration exists.

Args: params: auth_key/session, meal_date, meal_type

Returns: JSON status 204 on success

mess_uncancel_registrationA

Restore a previously cancelled meal registration.

Returns 424 if the registration was not cancelled.

Args: params: auth_key/session, meal_date, meal_type

Returns: JSON status 204 on success

mess_provide_feedbackA

Submit anonymous feedback for a meal. User must have availed the meal.

Returns 409 if feedback already submitted, 424 if meal not availed.

Args: params: auth_key/session, meal_date, meal_type, rating (1-5), optional remarks

Returns: JSON status 204 on success

mess_get_meal_ratingA

Get the average rating for a meal at a mess on a date.

If mess is omitted, returns ratings keyed by mess ID. Ratings are only visible after the feedback window closes (403 otherwise).

Args: params: auth_key/session, meal (required), optional mess, optional date

Returns: JSON { rating: float, count: int } or { mess_id: { rating, count } }

mess_get_monthly_registrationA

Get the monthly mess registration for the current user.

Also returns snack availments for the month.

Args: params: auth_key/session, optional month (1-12), optional year

Returns: JSON { registration: MonthlyRegistration, snack_availments: [...] }

mess_create_monthly_registrationA

Register at a mess for an entire month.

Returns 409 if already registered, 403 if window closed or mess full.

Args: params: auth_key/session, month (1-12), year, mess (mess ID)

Returns: JSON MonthlyRegistration object

mess_delete_monthly_registrationA

Delete a monthly mess registration (individual meal registrations are kept).

Returns 403 if window closed.

Args: params: auth_key/session, month (1-12), year

Returns: JSON status 204 on success

mess_get_cancellations_countB

Get count of cancelled registrations for a meal in a month.

Args: params: auth_key/session, meal (required), optional month, optional year

Returns: JSON integer count

mess_get_billA

Get the user's mess bill for a month. Use to answer "how much do I owe?", "what's my bill?".

Amounts are in paise — divide by 100 for rupees. May include projected future meals.

Returns 404 if registrations haven't opened for that month.

Args: params: auth_key/session, optional month, optional year

Returns: JSON { non_projected: int, projected: int } — in paise (divide by 100 for rupees)

mess_get_scans_countA

Get meal availment (scan) count for a mess on a date. No authentication required.

Args: params: meal (required), mess (required), optional date (YYYY-MM-DD)

Returns: JSON { meal, mess, date, total: int, recent: int (last 10 min) }

mess_get_registered_extrasB

Get extra item registrations for the current user for a meal on a date.

Args: params: auth_key/session, meal (required), optional date (YYYY-MM-DD)

Returns: JSON array of ExtraRegistration objects

mess_create_extra_registrationA

Register for an extra item on a meal.

User must have a regular registration at that mess for that meal. Cannot be modified — delete and recreate if needed.

Args: params: auth_key/session, extra (item ID), meal_date, meal_type, meal_mess

Returns: JSON array of ExtraRegistrationInserted objects

mess_delete_extra_registrationB

Delete an extra registration by its ID (passed as query param).

Args: params: auth_key/session, id (extra registration ID)

Returns: JSON array of remaining ExtraRegistration objects

mess_get_extras_in_rangeA

Get all extra registrations in a date range (max 2 months, both inclusive).

Args: params: auth_key/session, from (YYYY-MM-DD), to (YYYY-MM-DD)

Returns: JSON array of ExtraRegistration objects

mess_list_extrasA

List available extra items for a meal on a date.

Some extras (same ID) may be available across multiple meals.

Args: params: meal (required), optional date (YYYY-MM-DD), optional mess ID

Returns: JSON array of ExtraItem objects (id, name, description, rate in paise, mess, food_tags)

mess_get_all_billsA

Get bill breakdown for all months with a non-zero bill.

Includes food_bill, extras_bill, and infra_bill (all in paise). Divide by 100 to get rupees.

Args: params: auth_key or session

Returns: JSON array of { month, year, food_bill, extras_bill, infra_bill } — all in paise

mess_get_all_windowsA

Get all window times in seconds: cancellation, registration, feedback, extras, skip.

Args: params: auth_key or session

Returns: JSON { cancellation_window, registration_window, feedback_window, extras_window, skip_window }

mess_get_registration_windowB

Get the registration window time in seconds.

Args: params: auth_key or session

Returns: JSON integer (seconds)

mess_get_cancellation_windowB

Get the cancellation window time in seconds.

Args: params: auth_key or session

Returns: JSON integer (seconds)

mess_get_feedback_windowB

Get the feedback window time in seconds (time after a meal to submit feedback).

Args: params: auth_key or session

Returns: JSON integer (seconds)

mess_get_extras_windowA

Get the extra registration window time in seconds.

Args: params: auth_key or session

Returns: JSON integer (seconds)

mess_get_skip_windowB

Get the skip window time in seconds.

Args: params: auth_key or session

Returns: JSON integer (seconds)

mess_get_registration_max_dateB

Get the maximum future date allowed for meal registration.

Args: params: auth_key or session

Returns: JSON date string (YYYY-MM-DD)

mess_get_max_cancellationsB

Get the maximum free cancellations allowed per month for a meal.

Args: params: auth_key/session, meal (required)

Returns: JSON integer

mess_get_meal_timingsA

Get meal timings (start/end times) for each mess on a date.

Args: params: optional on (YYYY-MM-DD), defaults to today

Returns: JSON { mess_id: [{ meal, start_time, end_time }] }

mess_get_preferencesB

Get all user preferences.

Args: params: auth_key or session

Returns: JSON UserPreferences: notify_not_registered, notify_malloc_happened, auto_reset_token_daily, enable_unregistered, nag_for_feedback, skip_malloced

mess_update_preferencesA

Update all user preferences (full replacement — all 5 fields required).

Args: params: auth_key/session plus all 5 booleans: - notify_not_registered: remind before registration deadline - notify_malloc_happened: email on random meal allocation - auto_reset_token_daily: reset QR at 02:00 daily - enable_unregistered: allow on-spot availing at unregistered rates - nag_for_feedback: prompt after every availed meal - skip_malloced: auto-skip randomly allocated meals

Returns: JSON status 204 on success

Prompts

Interactive templates invoked by user choice

NameDescription
nutritionEstimate nutrition breakdown for a mess meal using the menu
check-my-mealsShow meal registrations for a given date (today, tomorrow, or YYYY-MM-DD)
register-mealRegister for a meal on a specific date
cancel-mealCancel a meal registration
my-billShow the current month's mess bill in rupees
whats-for-lunchShow the mess menu for a meal on a date

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/Kallind/IIITH-Mess-MCP'

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