Skip to main content
Glama
shrey715

Mess MCP Server

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.

Related MCP server: mit-dining-mcp

Prerequisites

  • Python 3.10+

  • uv (recommended for seamless environments) or pip

Installation

  1. Clone the repository to your local environment:

    git clone https://github.com/shrey715/mess-mcp.git
    cd mess-mcp
  2. Sync the dependencies and build the virtual environment:

    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.

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:

{
  "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.

Available Tools

27 tools
cancel_mealA

Cancel a meal registration.

Monthly cancellation limits may apply. Check get_cancellation_count first.

Args: meal_date: Target date (YYYY-MM-DD). meal_type: One of 'breakfast', 'lunch', 'snacks', 'dinner'. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
meal_dateYes
meal_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavior. It clearly implies a mutating action and adds useful constraints (monthly limits, API key fallback), but it does not explain whether the cancellation is reversible, what side effects occur, or how failures are signaled. It is adequate but not deeply transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the action, and scannable with a clear Args block. Every sentence adds useful information, and there is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter cancellation tool, the description covers the operation, the limit-related prerequisite, authentication, and all parameter semantics; an output schema also exists. It is slightly incomplete in not addressing reversibility or when a cancellation cannot be made, but overall an agent has enough to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no descriptions or enums, but the description fully compensates: it gives the exact date format, lists the allowed meal_type values, and explains the api_key fallback behavior. This is strong parameter-level guidance beyond the structured schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Cancel') and a precise resource ('a meal registration'), making the operation unmistakable. It is clearly distinct from siblings like uncancel_meal and register_meal, and the action is obvious without needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit context: monthly cancellation limits may apply and the agent should check get_cancellation_count first. It does not explicitly state when not to use the tool or point to alternatives like uncancel_meal for undoing a cancellation, but the prerequisite guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_registrationsA

List all meal registrations (past and upcoming) within a date range (max 2 months).

Args: from_date: Range start date (YYYY-MM-DD), inclusive. to_date: Range end date (YYYY-MM-DD), inclusive. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
to_dateYes
from_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral disclosure burden. It discloses the 2-month range cap, inclusive date handling, and the API key fallback behavior. For a read-oriented listing tool, this is solid; minor gaps like pagination or error behavior are less critical.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the primary action and scope, and then lists arguments in a clear labeled block. Every sentence adds useful information, with no repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with an output schema, the description covers the essential operational details: scope, date range, parameters, and auth fallback. Nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates by explaining all three parameters: from_date and to_date with YYYY-MM-DD format and inclusive semantics, plus api_key with its environment-variable fallback. This is exactly the value the description should add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb-resource pair: 'List all meal registrations (past and upcoming) within a date range.' This clearly distinguishes the tool from single-registration siblings like get_registration and monthly variants by emphasizing the range and 'all registrations' scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the use case clear: querying all registrations across a date range, with an explicit 2-month maximum. It does not explicitly contrast with alternative tools such as get_registration or get_monthly_registration, so it stops short of a full when-to-use/when-not-to-use guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_auth_keyA

Create a new named API key.

The returned key value is only shown once — store it securely.

Args: name: A unique human-readable name for the key. expiry: Expiry date in YYYY-MM-DD format. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
expiryYes
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full transparency burden. It discloses a critical behavioral trait: the returned key value is only shown once and must be stored securely. It does not mention permissions or persistence effects, but this security caveat is material and goes beyond a generic 'creates a key' statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: one sentence for the core action, one important security warning, then a clean Args list. Every sentence earns its place with no repetition or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a simple 3-parameter create operation and an output schema present, the description provides enough to invoke the tool correctly: required parameters, format constraints, the optional API key fallback, and the one-time visibility warning. Minor missing context like permissions or when to prefer list/delete siblings keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so fully: 'name' is described as a unique human-readable label, 'expiry' has an explicit YYYY-MM-DD format, and 'api_key' has its environment variable fallback documented. This adds meaning well beyond the bare schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create a new named API key.' This clearly distinguishes the tool from sibling tools like list_auth_keys and delete_auth_key without needing to inspect their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives. It does not mention related auth key operations, prerequisites, or situations where a different tool should be used. The intended use is only implied by the name and verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_monthly_registrationA

Enrol in a mess for an entire calendar month.

Args: month: Month number (1-12). year: Year (YYYY). mess_id: Mess identifier, e.g. 'yuktahar'. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
monthYes
api_keyNo
mess_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the api_key fallback to MESS_API_KEY, but it does not mention side effects such as billing commitment, idempotency, whether an existing registration is overwritten or rejected, or any destructive implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in a single clear sentence, followed by a compact args list with no fluff. Every line earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete enough for basic invocation since all parameters are documented and an output schema exists. However, with no annotations and a mutating action, it lacks operational context such as behavior on duplicate registration, whether enrollment depends on capacity windows, and whether it can be undone via a sibling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must document the parameters itself. It does so thoroughly for all four: month range (1-12), year format (YYYY), mess_id example ('yuktahar'), and api_key fallback behavior. This is exactly the added meaning an agent needs beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line states a specific action and resource: enrol in a mess for an entire calendar month. The explicit monthly scope distinguishes it from per-meal siblings like register_meal and read-only siblings like get_monthly_registration or delete_monthly_registration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given about when to choose this tool over alternatives, nor any exclusions or prerequisites. The purpose is implied, but an agent is not told to check for an existing monthly registration first or to use a sibling for daily meal registration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_auth_keyA

Delete an API key by name.

The key is identified by its human-readable name, not its token value.

Args: name: The name of the key to delete. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It discloses that deletion targets the key's human-readable name rather than the token value, and it explains the api_key parameter's fallback to the MESS_API_KEY environment variable. It does not detail error behavior or irreversibility, but the delete operation is explicit and the added context is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action. The Args block is compact and directly maps to the schema parameters without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter destructive tool with an output schema present, the description is mostly complete. It explains the critical identification semantics and auth fallback. A minor gap is not pointing users to list_auth_keys to obtain the key name, but that is not essential for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does: 'name' is explained as the human-readable key name, and 'api_key' is described with its environment variable fallback. Both parameters receive meaningful semantic context beyond their bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Delete') and resource ('API key'), and adds a key distinguishing detail: the key is identified by its human-readable name, not its token value. This clearly sets it apart from sibling tools like create_auth_key and list_auth_keys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is for deleting an API key by name and provides the identification caveat, but it does not explicitly contrast with alternatives or state when to prefer this over list_auth_keys or create_auth_key. Usage context is present, but not the when-to-use/when-not-to-use guidance that would merit a higher score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_extraA

Cancel an extra item booking.

Extra registrations cannot be modified — delete and recreate if needed.

Args: registration_id: ID of the extra registration (from list_registered_extras). api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
registration_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It does add the useful constraint that extra registrations cannot be modified and must be deleted/recreated. However, it does not explicitly state whether deletion is permanent, whether it affects billing, or what permissions are required beyond the api_key parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the main action, and each sentence earns its place. The Args section is clearly separated and provides direct parameter guidance without unnecessary prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema is present and the tool has only two simple parameters, the description covers the necessary invocation details well: purpose, the no-modify rule, where to get the ID, and api_key fallback. It could be slightly more complete by explicitly warning that deletion is irreversible/has billing implications, but the 'delete and recreate' phrasing largely conveys this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully. registration_id is explained as the ID from list_registered_extras, which gives the agent a reliable source, and api_key's fallback to MESS_API_KEY is valuable operational detail not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Cancel an extra item booking,' a specific verb and resource. It clearly separates this from meal-related tools and from register_extra, while the tool name delete_extra aligns with the described behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'Extra registrations cannot be modified — delete and recreate if needed.' This gives a clear rule of use, though it does not name the exact alternative tool for recreation, only implies it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_monthly_registrationA

Remove the monthly registration for a given month.

Args: month: Month number (1-12). year: Year (YYYY). api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes
monthYes
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It does add some useful auth context by noting the API key falls back to MESS_API_KEY, but it does not disclose whether deletion is permanent, what happens if no registration exists, or any side effects. For a destructive mutation tool, this leaves important behavior under-specified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the action. The Args block is brief, every line adds meaning, and there is no repetition of schema titles or wasted phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a thre-parameter, no-nested-object tool with an output schema, the descrition covers the core purpose and all parameter semantics. Missing caveats like irreversibility or error behavior slightly reduce completeness, but the operation is simple enough that an agent can likely invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must supply parameter meaning. It does: month is a number 1-12, year is YYYY, and api_key has an environment-variable fallback. This fully compensates for the schema's lack of descriptive text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Remove the monthly registration for a given month.' This clearly distinguishes the tool from siblings like create_monthly_registration, get_monthly_registration, and cancel_meal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the usage context reasonably clear: this is the tool to call when removing a monthly registration. It does not explicitly name alternatives or provide when-not-to-use conditions, but the target operation is unambiguous enough that an agent can select it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_billsA

Return a full historical breakdown of mess bills across all recorded months.

Bills are returned in paise (1 INR = 100 paise) and include food, extras, and infrastructure costs.

Args: api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It explicitly states that amounts are in paise, lists the cost components (food, extras, infrastructure), and notes the api_key fallback to MESS_API_KEY. It does not mention pagination/ordering, but 'Return' indicates a non-mutating read and the output schema can cover structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact, front-loaded sentences cover capability, output units, and argument behavior with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only retrieval with a single optional parameter and an output schema, the description is nearly complete. A minor gap is not clarifying whether this returns all users' bills or only the authenticated user's bills, which could affect selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description fully documents the only parameter: api_key, including its environment-variable fallback. This adds practical semantics beyond the schema's bare type/default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Return') and a concrete object ('full historical breakdown of mess bills across all recorded months'). It clearly distinguishes this from sibling get_monthly_bill by emphasizing all months rather than a single monthly bill.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'across all recorded months' and 'full historical breakdown' imply this is the correct tool for broad historical/bulk bill retrieval. It does not explicitly name alternatives or exclusion conditions (e.g., 'use get_monthly_bill for a single month'), so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cancellation_countA

Return how many cancellations the user has used for a meal in a given month.

Compares this against the system maximum (from get_config_windows) to determine remaining budget before penalties apply.

Args: meal: One of 'breakfast', 'lunch', 'snacks', 'dinner'. month: Month (1-12). Defaults to current month. year: Year (YYYY). Defaults to current year. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
mealYes
yearNo
monthNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full transparency burden and handles it well. It discloses that the tool is a read operation ('Return'), that month and year default to current values, and that api_key falls back to an environment variable. It also exposes the budgeting/comparison logic (against get_config_windows). Minor gaps include not clarifying whether the count is scoped to the current authenticated user or what occurs when no data exists for the month.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently front-loaded: the first sentence states the entire purpose, the second adds high-value behavioral context about budget comparison, and the Args block is a minimal, scannable list. No sentence is redundant; each earns its place. It is appropriately sized for a four-parameter tool with zero schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only count tool, the description is largely complete: it explains the purpose, parameter semantics, defaults, and how the result relates to get_config_windows. The presence of an output schema means the return format need not be spelled out in prose. It could add explicit confirmation of read-only behavior and user scoping, but nothing critical is missing for an agent to call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does comprehensively. The Args section documents all four parameters with meaning the schema lacks: meal gets an explicit allowed-value list ('breakfast', 'lunch', 'snacks', 'dinner'), month gets a range (1-12), year gets a format hint (YYYY), and api_key gets fallback behavior. Every parameter is semantically enriched beyond the raw schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Return how many cancellations the user has used for a meal in a given month.' This precisely identifies the operation as a counting/read action, clearly distinguishing it from sibling tools like cancel_meal and uncancel_meal, which perform mutations. The additional budget-comparison sentence reinforces the tool's specific role in the cancellation-penalty flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by stating the tool 'determines remaining budget before penalties apply,' which tells an agent when this lookup is relevant. It also names get_config_windows as the source of the system maximum, implicitly identifying a related tool. However, it does not explicitly state when NOT to use this tool or name alternatives like get_meal_scan_count, so it stops short of full exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_capacitiesA

Return available seat counts and maximum capacity for every mess for a meal.

Call this before registering to verify a mess is not full.

Args: meal: One of 'breakfast', 'lunch', 'snacks', 'dinner'. date: Target date (YYYY-MM-DD). Defaults to today. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
mealYes
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses read-only behavior by saying 'Return', documents the date default ('Defaults to today'), and explains API key fallback. It does not mention rate limits or error behavior, but for a simple read-only capacity lookup this is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short functional sentences plus a compact argument list. Every sentence adds information, and the most important capability and usage are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple capacity-checking tool with an output schema and only three parameters, the description covers purpose, timing of use, parameter semantics, and authentication. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully explain the parameters. It does: meal lists the valid values, date gives format and default behavior, api_key explains environment-variable fallback. This fully compensates for the absent schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource: 'Return available seat counts and maximum capacity for every mess for a meal.' This clearly distinguishes the tool from sibling tools like get_meal_timings or check_registrations, which focus on timings and registration state rather than capacity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to call: 'Call this before registering to verify a mess is not full.' This gives a clear trigger condition, though it does not name alternative tools or explicit when-not-to-use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_config_windowsA

Return all system operational windows in seconds.

Includes registration, cancellation, feedback, extras, and skip windows, as well as the registration maximum date.

Args: api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the burden of behavioral disclosure. It states the return unit ('in seconds'), enumerates the full scope (registration, cancellation, feedback, extras, skip windows, max date), and discloses the api_key fallback behavior to MESS_API_KEY. This is meaningful context beyond the schema, though it does not discuss rate limits or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main purpose is front-loaded in the opening sentence, followed by a compact list of included windows and one focused Args line. Every sentence adds useful information and there is no redundant restatement of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity getter with one optional parameter and an output schema, the description covers the essential calling context: what is returned, units, and authentication fallback. It leaves only minor gaps such as explicit read-only confirmation and behavior on missing/invalid credentials, which the simple read-only nature of the tool makes non-critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates for the single parameter by explaining that api_key is an API key and falls back to the MESS_API_KEY environment variable. This adds semantics the schema does not contain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Return all system operational windows in seconds,' and enumerates exactly which windows are included. It is unambiguous about what this tool returns, though it does not explicitly differentiate from sibling getter tools such as get_meal_timings or get_capacities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is provided, and no alternatives are named among the many sibling tools. Usage is only implied: call this when you need config windows. There are no exclusions, prerequisites, or decision rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_meal_scan_countA

Return aggregated meal scan/availment counts for a mess on a given day.

This is public data — no authentication is required, but an api_key can be provided for consistency.

Args: meal: One of 'breakfast', 'lunch', 'snacks', 'dinner'. mess: Mess identifier, e.g. 'yuktahar'. date: Target date (YYYY-MM-DD). Defaults to today. api_key: API key. Optional.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
mealYes
messYes
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full behavioral disclosure burden. It usefully discloses that the data is public, that no authentication is required, and that api_key is optional for consistency. However, it does not discuss behaviors like aggregation semantics, date-time boundary handling, or what happens when no scans exist, relying instead on the output schema for return details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with a clear first-sentence summary followed by a brief Args block. Every line adds useful information, and there is no fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema is provided, so return-value details do not need to be repeated. The description covers all parameters, defaults, and the auth behavior. It could be slightly more complete by noting how aggregation treats no-scan or partial days, but the combination of parameter docs and output schema is adequate for a simple data-fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully document parameters. It does: meal is given an explicit enum-like list, mess has an example, date has a format and default, and api_key is flagged optional. This adds substantial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Return') and resource ('aggregated meal scan/availment counts for a mess on a given day'), making the tool's purpose clear. It does not explicitly contrast with sibling tools such as get_cancellation_count or get_capacities, so it falls just short of perfect differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by naming the required inputs and noting that this is public data, but it does not provide explicit when-to-use/when-not-to-use guidance or alternatives. A user can infer the tool is for daily meal scan totals, but there is no direct routing to or away from sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_meal_timingsA

Return official meal serving timings for each mess.

Args: date: Target date (YYYY-MM-DD). Defaults to today. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It does add useful traits — the date defaults to today and the api_key falls back to the MESS_API_KEY envion variable. However, it does not state whether the operation is read-only, whether it performs a network calls, or what happens on an invalid date or missing key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One purpose sentence plus a two-line Args block. The summary is front-loaded and every sentence earns its place — no fillers, no repetition of schema titles, no redundant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not document return values. Both parameters are documented with format, defaultValue, and fallback behavior. What is missing is error-condition behavior and explicit sibling routing, which are minor for a simple getter with two optional params.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates: 'date' gains format (YYYY-MM-DD) and default behavior, while 'api_key' gains purpose and env-var fallback. Every parameter receives meaning that the raw schema does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Return'), a specific resource ('official meal serving timings'), and a scope ('for each mess'). None of the 27 sibling tools cover meal timings — they address capacities, registrations, bills, scans, extras, auth keys, and config windows — so this tool is clearly differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The only usage signal is the purpose sentence itself, which implies the tool is for retrieving timings but does not help an agent route between siblings or know when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_monthly_billA

Return the projected and confirmed mess bill for a calendar month.

Bills are returned in paise (1 INR = 100 paise).

Args: month: Month (1-12). Defaults to current month. year: Year (YYYY). Defaults to current year. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
monthNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses non-obvious behavior: the paise unit, projected versus confirmed values, defaulting to the current month/year, and api_key falling back to MESS_API_KEY. It does not explicitly state error behavior or read-only status, but the 'Return' framing and these details are strong for a getter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, leading with the core purpose, then adding the unit, defaults, and parameter meanings. Every sentence contributes useful information without restating the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For three optional parameters and an output schema, the description covers defaults, unit, and auth fallback, which is largely sufficient. The main gap is the lack of explicit contrast with sibling tools like get_all_bills and get_monthly_registration, though this is not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates fully by documenting all three args: month range and default, year format and default, and api_key role with environment fallback. This gives an agent actionable constraints beyond the nullable type declarations in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Return') and resource ('projected and confirmed mess bill for a calendar month'), making the tool's scope immediately clear. It distinguishes itself from siblings like get_all_bills by focusing on a single calendar month rather than all bills.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied through the monthly scope and defaults for month/year, but there is no explicit guidance on when to choose this tool over alternatives such as get_all_bills. An agent must infer the boundary between monthly and range-based bill queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_monthly_registrationA

Return the current monthly registration status.

Args: month: Month (1-12). Defaults to current month. year: Year (YYYY). Defaults to current year. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
monthNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It communicates that the operation returns data, and it transparently documents default month/year behavior and API key fallback. However, it does not mention whether there are side effects, required permissions, or what the status values mean, which leaves meaningful gaps for a tool with zero annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the purpose, followed by a neat argument list. Every sentence adds useful information and no filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose and all parameters, and an output schema exists so return-value details do not need to be repeated. It is mostly complete for a simple read tool, though a brief usage note distinguishing it from get_registration would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description compensates fully by explaining all three parameters: month ranges 1-12, year is a four-digit year, both default to current values, and api_key falls back to an environment variable. This adds significant meaning beyond the bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Return the current monthly registration status.' It is specific enough to indicate a read operation on monthly registration data. However, it does not explicitly differentiate itself from the sibling get_registration or explain what 'status' includes, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool over alternatives such as get_registration, check_registrations, or create_monthly_registration. It only documents default behavior for the month/year arguments, not the intended selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_preferencesA

Fetch all saved user preferences from the Mess portal.

Args: api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the transparency burden. 'Fetch' communicates a non-mutating read, and the api_key fallback adds useful auth context. However, it does not explicitly state that no data is modified or describe what happens if the API key is missing, though the fetch semantics largely cover the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler: the core operation is front-loaded, and the parameter detail is compactly presented in an Args block. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and a single optional parameter, the description covers the essential invocation details. The only notable gap is not explicitly distinguishing this tool from update_preferences, but the verb 'Fetch' largely covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the bare api_key schema. It does by explaining the API key's purpose and the MESS_API_KEY environment-variable fallback, which the schema alone does not convey. This adds real semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and a clear resource ('all saved user preferences from the Mess portal'), so an agent can tell what the tool does. It does not explicitly differentiate itself from sibling update_preferences, but 'fetch' versus 'update' is a strong enough contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the read path for preferences, but it does not explicitly state when to use it versus update_preferences or other siblings. There is no 'when not to use' guidance. For a simple getter this is adequate but not exemplary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_registrationA

Look up the registration for a single meal.

If meal is omitted, returns registrations for all meals on that date. If date is omitted, today is assumed.

Args: meal: One of 'breakfast', 'lunch', 'snacks', 'dinner'. Optional. date: Target date (YYYY-MM-DD). Optional. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
mealNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and handles it well by disclosing default-date behavior, all-meal behavior when meal is omitted, and the api_key fallback to MESS_API_KEY. It does not go into error cases or edge behavior, but it adds meaningful behavioral detail beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose, and uses a clear Args section for parameters. Every sentence adds value, with no repetition of schema defaults or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-style lookup tool with an output schema present, the description covers invocation semantics, parameter behavior, and default values sufficiently. It does not need to explain return values because the output schema exists, and no required inputs or complex edge cases are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description fully compensates by documenting each parameter: valid meal values ('breakfast', 'lunch', 'snacks', 'dinner'), date format (YYYY-MM-DD), optionality, and api_key fallback to an environment variable. This is exactly the kind of semantic enrichment the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Look up') and a precise resource ('the registration for a single meal'), and further clarifies scope by describing behavior when meal or date is omitted. This makes the tool's purpose immediately understandable and distinct enough from siblings like get_monthly_registration or check_registrations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly explains the optionality semantics: omitting meal returns all meals for the date, and omitting date defaults to today. It does not explicitly name alternative tools or exclusion conditions, so it stops short of a 5, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_auth_keysA

List all API keys belonging to the authenticated user, including expired ones.

Args: api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral disclosure burden. It adds meaningful traits: the result includes expired keys, the scope is limited to the authenticated user, and the api_key parameter falls back to the MESS_API_KEY environment variable. It does not discuss output format, but an output schema is present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two brief sentences, with the primary purpose front-loaded and the parameter explanation following. No filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity listing tool with one optional parameter and an output schema, the description provides everything an agent needs to select and invoke it: scope, expired-key inclusion, and authentication fallback behavior. No critical gap is apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain the parameter. It does: 'api_key: API key. Falls back to MESS_API_KEY environment variable.' This adds the important optionality and fallback semantics that the schema (a nullable field with default null) does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List all API keys belonging to the authenticated user, including expired ones.' This clearly states the operation and scope, and distinguishes list_auth_keys from siblings like create_auth_key and delete_auth_key.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this tool when you need to enumerate the authenticated user's API keys, with the explicit note that expired keys are included. It does not explicitly contrast this with alternative tools or state when not to use it, but the usage context is apparent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_extrasA

List extra items (e.g. omelettes, special dishes) available to book for a meal.

Args: meal_type: One of 'breakfast', 'lunch', 'snacks', 'dinner'. date: Target date (YYYY-MM-DD). Defaults to today. mess: Filter results to a specific mess. Optional. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
messNo
api_keyNo
meal_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral transparency burden. It discloses useful details beyond the schema: date defaults to today, mess is an optional filter, and api_key falls back to the MESS_API_KEY environment variable. It does not explicitly state read-only behavior, but 'List' strongly implies it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a front-loaded purpose sentence followed by a tight Args block. Every line adds information, and there is no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description does not need to explain return values. It covers all parameters, defaults, and auth fallback, which is enough for an agent to invoke the tool correctly. The only minor gap is not mentioning empty-result or error behavior, which is acceptable for a simple list query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description fully compensates by explaining every parameter: meal_type gets enumerated options, date gets format and default, mess gets its filtering purpose, and api_key gets its fallback behavior. This is exactly the semantic value the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific operation ('List') and resource ('extra items ... available to book for a meal'), with concrete examples. It clearly conveys what the tool does, though it does not explicitly differentiate it from siblings like list_extras_in_range.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the phrase 'available to book for a meal' and the meal_type/date arguments, but the description never states when to prefer this tool over alternatives such as list_registered_extras or list_extras_in_range. It also provides no explicit when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_extras_in_rangeA

List all extra registrations within a date range (max 2 months).

Args: from_date: Range start date (YYYY-MM-DD), inclusive. to_date: Range end date (YYYY-MM-DD), inclusive. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
to_dateYes
from_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It discloses auth behavior via the API key fallback to MESS_API_KEY, inclusive date handling, and the 2-month maximum range. The verb 'List' clearly implies a read-only operation, and no hidden mutation or side-effect is suggested.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one sentence, and the Args block adds exactly the format, inclusivity, and fallback details an agent needs. There is no filler, repetition, or redundant restating of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple filtered-list tool with an output schema already available, the description covers the invocation contract completely: high-level return scope, range limit, all parameter formats, and authentication fallback. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only meaningful source of parameter semantics. It fully documents all three parameters: YYYY-MM-DD format, inclusive behavior for both dates, and the api_key default/fallback. This goes well beyond the schema's type-only definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb ('List'), a specific resource ('extra registrations'), and a clear scope ('within a date range ... max 2 months'). It is distinguishable from siblings like list_available_extras and list_registered_extras because it targets registrations over a time interval, though it does not explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context: call this when you need extra registrations for a date range, capped at 2 months. However, it gives no explicit when-not-to-use guidance or alternative tool names, so an agent must infer how it differs from the other extras listing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_registered_extrasA

List extra items the user has already booked for a meal.

Args: meal_type: One of 'breakfast', 'lunch', 'snacks', 'dinner'. date: Target date (YYYY-MM-DD). Defaults to today. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
api_keyNo
meal_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full responsibility. It adds behavioral details such as date defaulting to today and API key env fallback, and the verb 'List' implies a read-only operation. However, it does not explicitly state that no changes are made, nor cover error or empty-result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two-line purpose followed by a compact Args list with no filler. All sentences earn their place and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with an output schema present, it covers all parameters, defaults, and auth. The main gap is not naming sibling tools or likely edge cases such as invalid meal_type/date or empty results, so it is strong but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 00, and the description fully compensates: meal_type gets explicit allowed values, date gets format and default behavior, and api_key gets the env fallback. This adds meaning far beyond the bare string/null schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence uses a specific verb ('List') and resource ('extra items the user has already booked for a meal'), which clearly identifies the operation and distinguishes it from sibling tools like list_available_extras or list_extras_in_range.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description conveys the context (already-booked extras for a meal/date), which implies the use case, but it never names alternatives or explicitly states when not to use it. Sibling differentiation is left to the reader.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manage_skippingA

Mark a registered meal as skipped (or un-skipped).

Notifying the kitchen reduces food waste. Must be submitted before the skip window closes (typically 3 hours before the meal).

Args: meal_date: Target date (YYYY-MM-DD). meal_type: One of 'breakfast', 'lunch', 'snacks', 'dinner'. meal_mess: The mess at which the user is registered. skipping: True to mark as skipping, False to undo. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
skippingNo
meal_dateYes
meal_messYes
meal_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It discloses several non-obvious traits: it can un-skip, it notifies the kitchen, it has a time window, and api_key has an environment-variable fallback. It does not dwell on permission requirements or exact failure behavior, but for a small mutation tool this is reasonable coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action before the rationale and constraints. Every sentence contributes something: the purpose, the why, the deadline, and parameter semantics. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all required parameters, the optional parameters, the timing constraint, and the auth behavior. Since an output schema exists, return values do not need elaboration. It could be slightly stronger by explicitly addressing sibling-tool selection, but nothing essential for calling the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so thoroughly: meal_date gets a YYYY-MM-DD format, meal_type lists all valid values, meal_mess explains the mess context, skipping explains true/false semantics, and api_key documents the environment fallback. This is exactly the kind of value-add the description should provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Mark a registered meal as skipped (or un-skipped).' This identifies the specific verb and resource. It is not a tautology and provides a concrete distinction from generic meal tools, though it does not explicitly differentiate from sibling tools like cancel_meal or uncancel_meal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives contextual constraints: the meal must be registered, notification reduces waste, and the action must occur before the skip window. It does not explicitly compare this tool to alternatives or state when to choose manage_skipping over cancel_meal/uncancel_meal, which are likely overlapping sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_extraA

Book an extra item for a meal.

The user must have an existing regular registration at the same mess for that meal before booking extras.

Args: extra_id: Identifier of the extra item (from list_available_extras). meal_date: Target date (YYYY-MM-DD). meal_type: One of 'breakfast', 'lunch', 'snacks', 'dinner'. meal_mess: Mess where the extra will be served. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
extra_idYes
meal_dateYes
meal_messYes
meal_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses that this is a booking/mutation action, states the prerequisite, and documents API-key fallback. However, it does not mention what happens on duplicate bookings, whether the action is reversible, or what errors/side effects to expect. The core behavior is visible, but post-condition and failure behavior are under-specified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: a one-line purpose, a single prerequisite, and a clean Args list. Important constraints are front-loaded or clearly grouped. Nothing extraneous is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter tool with no annotations, the description covers all inputs and the one critical prerequisite, and an output schema exists so return values need not be documented. It does not address availability/duplicate edge cases or explicit success/failure behavior, but those are largely inferable from 'book' and list_available_extras. Overall it is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the Args list documents every parameter with concrete semantics: extra_id's source, date format, enumerated meal_type values, mess purpose, and api_key fallback. This fully compensates for the bare schema and adds normative value. No parameter is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line, 'Book an extra item for a meal,' states a specific verb and resource. It clearly distinguishes this tool from register_meal and the other extra-management siblings, and the prerequisite sentence further clarifies its role. The name alone is vague, but the description removes that ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states that a regular registration for the same mess and meal must exist before booking extras, which is the key usage condition. It also points to list_available_extras as the source for valid extra_id values. It does not explicitly name when to prefer other siblings, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_mealA

Create or update a meal registration.

If the registration already exists it will be updated. Use check_registrations to confirm the registration or cancellation window is open before calling this.

Args: meal_date: Target date (YYYY-MM-DD). meal_type: One of 'breakfast', 'lunch', 'snacks', 'dinner'. meal_mess: Mess identifier, e.g. 'yuktahar', 'kadamba-nonveg', 'north'. guests: Number of external guests (0–5, billed additionally). api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
guestsNo
api_keyNo
meal_dateYes
meal_messYes
meal_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses that existing registrations are updated, that guests are billed additionally, and that api_key falls back to an environment variable. These are meaningful behavioral details beyond a simple create/update statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and key behavioral nuance are front-loaded, followed by a clean Args block. Every line adds information, and there is no filler or repetition of schema fields. The length is appropriate for the five parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, combined with the input and output schemas, gives an agent everything needed to invoke the tool correctly: required fields, parameter constraints, prerequisite check, and update semantics. The mention of check_registrations also covers a key workflow dependency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully explain parameters. It does: date format is specified, meal_type values are listed, meal_mess includes concrete examples, guests has a range and billing note, and api_key has fallback behavior. This is comprehensive parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Create or update a meal registration,' which names a specific verb and resource. The explicit upsert behavior distinguishes it from related tools like cancel_meal and get_registration, so an agent can immediately understand what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear guidance to use check_registrations first to confirm the registration or cancellation window is open. It does not explicitly contrast with monthly registration tools or other alternatives, but the precondition is stated directly and usefully.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_feedbackA

Submit quality feedback for a consumed meal.

Args: meal_date: Date the meal was consumed (YYYY-MM-DD). meal_type: One of 'breakfast', 'lunch', 'snacks', 'dinner'. rating: Star rating out of 5 (1 = poor, 5 = excellent). remarks: Optional free-text comment on taste, hygiene, temperature, etc. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
ratingYes
api_keyNo
remarksNo
meal_dateYes
meal_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of behavioral disclosure. It discloses the API key fallback and implies a side-effectful submission, but it does not describe result handling, validation behavior, idempotency, or failures. This is a moderate partial disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The Args block is compact and scannable; each parameter receives exactly one line of meaningful documentation. There is no filler or redundant restating of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and an output schema already available, the description covers all input semantics needed to call the tool correctly. It provides enum-like meal_type guidance, date formatting, rating semantics, optional fields, and auth fallback—complete for a straightforward submission tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must supply meaning for all five parameters. It fully does: date format, allowed meal_type values, rating scale semantics, optional remarks, and API key fallback.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the explicit verb 'Submit', names the object 'quality feedback', and scopes it to a 'consumed meal'. Among all sibling tools, none handles feedback, so the purpose is unambiguously distinguished from the rest.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for a consumed meal' gives clear context for when the tool should be used—after a meal has been consumed. It doesn't explicitly name alternatives or state when not to use it, but the context is clear enough relative to the sibling meal-management tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

uncancel_mealB

Reverse a meal cancellation.

Args: meal_date: Target date (YYYY-MM-DD). meal_type: One of 'breakfast', 'lunch', 'snacks', 'dinner'. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
meal_dateYes
meal_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description bears the full burden. It does convey meaningful behavioral traits: this is a state-mutating reversal operation, and the api_key argument documents the auth mechanism with its env-var fallback. However, it does not disclose side effects, what happens if no cancellation exists (or failure behavior), or reversibility/idempotency, which leaves clear gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Highly efficient: a one-sentence purpose statement is front-loaded first, followed by a compact Args block. Every line earns its place — the parameter documentation is essential given the 0% schema coverage, and there is no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter tool with an output schema, the description is mostly sufficient for invocation: all parameters are documented and the core action is stated. However, it omits usage routing relative to cancel_meal and key behavioral context (prerequisites, error states), and there are no annotations to fill those gaps. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate — and it does well. It adds a format for meal_date ('YYYY-MM-DD'), enumerates the exact allowed values for meal_type ('breakfast', 'lunch', 'snacks', 'dinner') which the schema lacks via enums, and documents api_key's fallback to MESS_API_KEY. All three parameters receive meaningful semantics beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Reverse a meal cancellation.' This clearly identifies the tool as the inverse of the sibling cancel_meal and distinguishes it from other siblings like register_meal. It falls short of a 5 because it never specifies the resulting state (e.g., does it restore the registration, affect capacity, or reinstate extras?).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description implies 'use when you need to undo a cancellation,' but it never names alternatives, states when not to use the tool, or gives preconditions (e.g., the meal must currently be in a cancelled state). With 26 siblings including cancel_meal and register_meal, the agent gets zero routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_preferencesB

Update all user preferences in the Mess portal.

Args: preferences: A dictionary of preference keys and their new values. api_key: API key. Falls back to MESS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNo
preferencesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosing behavioral traits. It indicates mutation and mentions api_key fallback, but does not disclose whether the provided preferences replace the entire user preference set or are merged, whether unspecified preferences are cleared, or what side effects occur. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a one-sentence purpose followed by an Args section. No fluff, but it could earn a 5 with a clearer behavior note or example.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that output schema exists, return values are covered, but the description misses crucial behavioral context: whether the update is additive or destructive, what happens to existing preferences not in the dictionary, and what counts as a valid preference. An agent could easily call this incorrectly and unknowingly wipe preferences. The api_key fallback is useful, but the missing overwrite semantics make this incomplete for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does: 'preferences' is explained as a dictionary of preference keys and new values, and 'api_key' is explained with its environment-variable fallback. This adds meaningful semantics for both parameters, though it lacks detail about valid preference keys or value types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (update) and resource (user preferences) in a Mess portal, clearly distinguishing it from read-oriented sibling tools like get_preferences. The phrase 'all user preferences' is slightly ambiguous as to whether it means a full replacement or a blanket update, but the core purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives, such as when a partial update is appropriate or whether to prefer get_preferences first. The description only states what the tool does, not the conditions under which it should be chosen or avoided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 27 tool updatesv0.2.0
    • First observedcancel_meal
    • First observedcheck_registrations
    • First observedcreate_auth_key
    • First observedcreate_monthly_registration
    • First observeddelete_auth_key
    • First observeddelete_extra
    • First observeddelete_monthly_registration
    • First observedget_all_bills
    • First observedget_cancellation_count
    • First observedget_capacities
    • First observedget_config_windows
    • First observedget_meal_scan_count
    • First observedget_meal_timings
    • First observedget_monthly_bill
    • First observedget_monthly_registration
    • First observedget_preferences
    • First observedget_registration
    • First observedlist_auth_keys
    • First observedlist_available_extras
    • First observedlist_extras_in_range
    • First observedlist_registered_extras
    • First observedmanage_skipping
    • First observedregister_extra
    • First observedregister_meal
    • First observedsubmit_feedback
    • First observeduncancel_meal
    • First observedupdate_preferences

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to interact with the IIIT Hyderabad Mess Management System through natural language, allowing students to view menus, manage meal registrations, check bills, submit feedback, and configure preferences.
    29
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time access to menus from all six MIT Bon Appétit dining halls. It enables users to query daily or weekly schedules and filter options by specific dietary requirements such as vegan, halal, or gluten-free.
    35 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables LLMs to interact with the IIIT Hyderabad Mess System to manage meal registrations, view menus, and track billing. It supports conversational commands for tasks like cancelling meals, estimating nutrition, and checking account balances.
    45
    5
    AGPL 3.0