Skip to main content
Glama
shrey715

Mess MCP Server

README.md
# Mess MCP Server

A Model Context Protocol (MCP) server for the IIIT-H Mess portal. This server provides robust, real-time integration enabling AI assistants to securely interact with the institution's mess dining and marketplace systems over standard STDIO transports.

## Architecture & Features

The server interfaces via the official Anthropic `mcp` SDK, abstracting the `mess.iiit.ac.in/api` into easily digestible Resources, Tools, and Prompts.

- **Resources**: Exposes static read-only constraints such as system capacities, current multi-week menus, available extras, operating hours, and standard meal rates.
- **Tools**: Authorizes state mutations including modifying registrations (cancel, skip, un-cancel, register), applying for extras, and seamlessly filing formal qualitative feedback.
- **Prompts**: Provides pre-programmed reasoning flows, assisting agents with weekly meal planning and historic billing analysis, mitigating overspending on non-essential items.

## Prerequisites

- **Python 3.10+**
- **uv** (recommended for seamless environments) or **pip**

## Installation

1. Clone the repository to your local environment:
   ```bash
   git clone https://github.com/shrey715/mess-mcp.git
   cd mess-mcp
   ```

2. Sync the dependencies and build the virtual environment:
   ```bash
   uv sync
   # Or using standard pip
   pip install .
   ```

## Configuration

The server operations are authenticated. You must set the correct environment variables before launch, preventing API tokens from passing unnecessarily through the language model context window.

```bash
export MESS_API_KEY="your-api-token"
```

## Usage Integration

The server operates exclusively via standard `stdio`, assuring strong compatibility with high-performance desktop clients. 

### Claude Desktop Integration

Locate your Claude Desktop JSON configuration and append the following:

```json
{
  "mcpServers": {
    "mess-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mess-mcp", "mess-mcp"],
      "env": {
        "MESS_API_KEY": "your-api-key"
      }
    }
  }
}
```

### Cursor or VS Code Integration

Use standard integration settings inside Cursor or VS Code Copilot to register local MCPs. Provide the exact executable invocation:

**Command Path**: `uv run --directory /path/to/mess-mcp mess-mcp`

## Documentation

Full architectural insights are encoded directly into the MCP introspection system (`mcp list`). Endpoints trace the official OpenAPI 3.0 specification available from the institution portal.

## License

This software is released under the GNU General Public License v3.0 (GPLv3). Review the `LICENSE` file for strict distribution and modification stipulations.

TDQS

A3.7/5.0

Scored across 27 tools

Disambiguation4/5

Most tools target distinct resource-action pairs (capacities, meal registration, extras, bills, auth, preferences), and descriptions clarify the scope. A few read operations overlap in name and intent, such as check_registrations vs get_registration and list_registered_extras vs list_extras_in_range, but the descriptions are sufficient to disambiguate.

Naming Consistency4/5

The server consistently uses snake_case and mostly follows a verb_noun pattern. However, verb selection is inconsistent: check_registrations vs get_registration, register_meal vs create_monthly_registration, cancel_meal vs delete_extra, and manage_skipping as a gerund all break the pattern slightly.

Tool Count2/5

27 tools exceeds the 25+ threshold and will feel heavy for an agent to navigate, even though the broad mess-management scope justifies some of the count. The number is high enough that an agent may struggle to choose efficiently among overlapping read operations.

Completeness5/5

The tool surface provides thorough lifecycle coverage: capacity checks, meal timings, meal and monthly registration CRUD, cancellation/skip workflows, extras booking, feedback, bills, config windows, auth key management, and preferences. No critical dead-end operations are missing.

Maintenance

ActivityInactive
ResponsivenessNo issues