Skip to main content
Glama
goyalayus

IIT Roorkee Academics MCP

by goyalayus

IIT Roorkee Academics MCP

A local, role-aware Model Context Protocol server for the official IIT Roorkee Academics/AIS portal at https://academics.iitr.ac.in.

The server was built from a production-bundle audit rather than a short student-only menu scrape. Its checked-in catalog contains:

  • 577 backend operations across 23 API domains

  • 192 dashboard screens across student, faculty, advisor, DAPC, AAO, DoSW, department, HOD, library, and shared roles

  • Login, email/SMS OTP, in-memory session setup, forgot-password, reset-token verification, and password-reset support

  • Explicit fee, profile, semester-record, gradesheet, and transcript helpers

  • A safe generic caller covering every recovered endpoint, including operations added to the portal later

  • Catalog, route, coverage, and session resources plus reusable workflow prompts

Portal authorization is not bypassed. The signed-in IITR account can only use the roles and operations allowed by the portal backend.

Install and build

Requirements: Node.js 20 or newer.

npm install
npm run build

The stdio server entry point is:

node /absolute/path/to/iitr-academics-mcp/dist/index.js

For Codex CLI, register that command:

codex mcp add iitr-academics -- node /absolute/path/to/iitr-academics-mcp/dist/index.js

The server is also compatible with MCP hosts that accept a stdio command. Use node as the command and the absolute dist/index.js path as its argument.

Related MCP server: Nettskjema MCP Server

Authentication

The safest setup is to inject an existing portal session through the launch environment:

export IITR_AIS_USERNAME='your-enrollment-or-employee-id'
export IITR_AIS_ACCESS_TOKEN='your-current-AIS-AccessToken'
node dist/index.js

Do not commit these values or place them in a shared MCP configuration. They are intentionally absent from this repository.

Alternatively, call ais_auth_login, then ais_auth_verify_otp when the portal requires the 5-digit email/SMS OTP. The password and OTP are used only for their individual requests; the resulting token is held only in process memory.

Use ais_auth_status to check the session. It returns authentication source and token-expiry metadata, but never returns the token or decoded account claims.

MCP surface

Tool

Purpose

ais_auth_status

Show redacted session status

ais_auth_set_session

Set username and AccessToken in memory

ais_auth_login

Login with username/password

ais_auth_verify_otp

Finish email/SMS OTP login

ais_auth_send_sms_otp

Request the login OTP by SMS with confirmation

ais_auth_logout

Clear the in-memory session

ais_password_reset_request

Send reset email, behind a feature flag and confirmation

ais_password_reset_verify

Verify a reset token

ais_password_reset_complete

Complete reset, behind a feature flag and confirmation

ais_password_change

Change the authenticated account password using the portal cipher

ais_crypto_transform

Encrypt/decrypt AES, DES, TripleDES, or Rabbit portal payloads

ais_list_features

Search endpoints/screens by query, domain, role, or risk

ais_get_feature

Inspect one endpoint or route

ais_get_portal_route

Return a shareable dashboard screen URL

ais_list_external_portals

Return the academic services linked by AIS

ais_call

Invoke any cataloged or API-relative operation

ais_batch_read

Execute up to 20 non-mutating operations

ais_upload

Multipart upload with confirmation, path boundary, and size limit

ais_student_profile

Read and decrypt student profile data

ais_student_fee_status

Read current-semester fee status

ais_student_fee_details

Read and decrypt fee details and total

ais_student_semester_records

Read and decrypt semester history

ais_student_gradesheet

Prepare the portal request and decrypt gradesheet data

ais_student_transcript

Read and decrypt the authenticated student's transcript

Resources:

  • iitr://catalog/endpoints

  • iitr://catalog/routes

  • iitr://catalog/coverage

  • iitr://session/status

  • iitr://catalog/external-portals

Prompts:

  • ais-safe-operation

  • ais-fee-workflow

Calling an operation safely

  1. Call ais_list_features with a focused query.

  2. Inspect the selected operation with ais_get_feature.

  3. For a read, call ais_call with the required query or JSON body.

  4. For a mutation, review the exact endpoint and payload, obtain user confirmation, then set confirmWrite: true.

AIS often uses POST even for reads. The catalog records methods observed in the production client and separately classifies whether an operation mutates state. Seven unused environment constants have an explicit assumed-post method-evidence marker instead of being presented as observed calls.

Example read:

{
  "identifier": "DIRECT_FEE_BASE_URL_GETSTUDENTCURRENTSEMFEES",
  "body": {
    "EnrollmentNo": "YOUR_ENROLLMENT",
    "StSession": "2026-27",
    "Semester": "Autumn"
  }
}

Example route lookup:

{
  "route": "student-acad-fees-page"
}

Security controls

  • Requests are restricted to the configured Academics API origin and /api/ prefix by default.

  • Authentication follows the portal client exactly: username plus authorization: Bearer <AccessToken>.

  • Passwords, OTPs, tokens, cookies, authorization headers, and JWT-looking strings are recursively redacted from tool output.

  • Token storage is memory-only.

  • Mutating and uncataloged non-GET calls require confirmWrite: true.

  • Password mutation tools are disabled unless IITR_AIS_ENABLE_PASSWORD_TOOLS=1.

  • Response size and timeout limits are enforced.

  • Multipart files must stay under IITR_AIS_UPLOAD_ROOT and the total size limit.

  • Multipart symlinks are resolved before the upload-root check.

  • Authenticated requests and uploads reject redirects so credentials and files cannot be forwarded to another origin.

  • Custom headers are allowlisted; callers cannot replace authorization or cookie headers.

See SECURITY.md for the trust model and configuration controls.

Configuration

Copy .env.example only as a reference; this project does not automatically read .env files.

Variable

Default

Meaning

IITR_AIS_USERNAME

unset

Enrollment/employee/portal username

IITR_AIS_ACCESS_TOKEN

unset

Existing AIS AccessToken

IITR_AIS_API_BASE_URL

official /api/ URL

API base

IITR_AIS_PORTAL_URL

official portal URL

Dashboard URL base

IITR_AIS_TIMEOUT_MS

30000

Request timeout

IITR_AIS_MAX_RESPONSE_BYTES

10485760

Maximum response size

IITR_AIS_UPLOAD_ROOT

process working directory

Only local tree allowed for multipart files

IITR_AIS_MAX_UPLOAD_BYTES

26214400

Maximum total bytes per multipart call

IITR_AIS_ALLOW_UNSAFE_URLS

0

Permit calls outside the official API boundary

IITR_AIS_ENABLE_PASSWORD_TOOLS

0

Enable password-reset mutations

IITR_AIS_DEBUG

0

Write startup diagnostics to stderr

Verification

npm run typecheck
npm test
npm run build
npm audit

The completion audit asserts that every recovered endpoint resolves through ais_call, every recovered screen resolves through ais_get_portal_route, all URLs remain under the official API origin, method evidence is explicit (observed or assumed-post), and all catalog identifiers are unique.

For the domain-by-domain breakdown, see COVERAGE.md.

Scope and portal changes

The catalog is a snapshot of the production Angular client audited on 10 July 2026. ais_call accepts a safe API-relative path as an escape hatch for new backend operations before the catalog is refreshed. The production portal remains the source of truth for accepted payload fields and account permissions.

Available Tools

24 tools
ais_auth_loginLog In to IITR AISA

Submit enrollment/employee username and password to AIS. If OTP is required, finish with ais_auth_verify_otp. Credentials are retained only for the request.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYes
usernameYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate mutability (readOnlyHint=false). Description adds that credentials are retained only for the request, but does not disclose session behavior or success/failure responses.

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 sentences, zero wasted words. Front-loaded with action and resource.

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?

Adequate for a simple login tool, but missing response format and error handling details. With siblings and no output schema, more completeness would be beneficial.

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

Parameters2/5

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

With 0% schema description coverage, description must explain parameters. It adds differentiation between student username and employee username but lacks details on format or edge cases.

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?

Clearly states verb 'submit' and resource 'AIS' (enrollment/employee credentials). Distinguishes from sibling tools like ais_auth_verify_otp by mentioning OTP 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?

Explicitly says to use ais_auth_verify_otp if OTP required. Lacks explicit exclusions or prerequisites but provides clear context.

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

ais_auth_logoutClear AIS SessionA
Idempotent

Forget the in-memory AIS session. The current portal has no remote logout endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

The description transparently discloses the tool's in-memory behavior and the limitation of no remote logout, aligning with the idempotentHint annotation.

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 concise sentences effectively convey the tool's purpose and limitation without unnecessary words.

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 logout tool with no output schema and clear annotations, the description is fully complete, covering the essential behavior and context.

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?

With zero parameters, the schema covers all details. The description adds no extra parameter info, which is acceptable as per baseline for zero parameters.

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 clearly states the tool's purpose: 'Forget the in-memory AIS session.', making it distinct from sibling tools like login or session management.

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 context on when to use this tool, noting that there is no remote logout endpoint. However, it does not explicitly list alternatives or 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.

ais_auth_send_sms_otpSend AIS Login OTP by SMSA

Ask AIS to send the current login OTP by SMS. This transmits the username and requires explicit confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
usernameNo

TDQS

A3.8/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, etc.), the description adds that it transmits the username and requires explicit confirmation. This helps the agent understand side effects and preconditions.

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 efficient sentences with no wasted words, front-loading the core action.

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 OTP sending tool, the description covers the basic action but lacks prerequisites (e.g., pending OTP request) and does not explain what happens after (user receives SMS). It is adequate but not fully self-contained.

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

Parameters2/5

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

Schema coverage is 0% and the description only vaguely references 'transmits the username' and 'requires explicit confirmation' without detailing the specific parameters (confirm must be true, username optional).

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 clearly states the action (send), the resource (login OTP), and the method (SMS). This distinguishes it from sibling tools like verify_otp.

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 (when needing to send OTP) but does not explicitly address when not to use or compare to alternatives like verify_otp. It provides minimal guidance.

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

ais_auth_set_sessionSet Existing AIS SessionA
Idempotent

Set an existing portal username and AccessToken in process memory. Prefer environment variables because MCP tool arguments may be logged by clients.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes
accessTokenYes

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate the tool is mutable (readOnlyHint=false) and idempotent (idempotentHint=true). The description adds only that it modifies 'process memory', which provides some context but does not disclose potential side effects or prerequisites beyond what annotations imply.

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 extremely concise: two sentences, zero wasted words. The first sentence delivers the core purpose, the second provides a critical security note. Perfectly 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?

Given the tool's simplicity (2 parameters, no nested objects, no output schema), the description covers the essential action and a usage warning. It could be more complete by noting what happens if the session token is invalid or expired, but for a basic setter it is adequate.

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

Parameters2/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 names the two parameters ('username' and 'accessToken') and implies they are for an existing portal session, but does not explain what constitutes a valid accessToken, how to obtain it, or any format constraints beyond the schema's minLength.

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 clearly states the verb 'set', the resource ('existing portal username and AccessToken'), and the scope ('in process memory'). It distinguishes from sibling tools like login or logout by specifying it sets an existing session rather than creating a new one.

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 advises preferring environment variables for security, which provides clear usage guidance regarding when to avoid this tool. However, it does not explicitly differentiate when to use this tool over siblings like ais_auth_login or ais_auth_status.

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

ais_auth_statusAIS Authentication StatusA
Read-only

Show whether this MCP process has an IITR AIS session. Tokens are never returned.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Description adds useful behavioral info beyond annotations: 'Tokens are never returned.' This clarifies what the tool does not expose. Annotations already signal read-only.

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?

Single sentence, no redundant information. Front-loaded with purpose.

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 status check with no parameters, output schema, or complex behavior, the description is fully adequate. No 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?

No parameters exist, so schema coverage is 100%. Baseline for 0 params is 4; description adds no param info but none needed.

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 clearly states the tool shows IITR AIS session status and explicitly notes tokens are never returned. It distinguishes from sibling authentication tools like ais_auth_login or ais_auth_logout.

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?

While no explicit when-not is given, the purpose is clear. In context of many authentication siblings, it's obvious this is for checking session status only.

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

ais_auth_verify_otpVerify AIS Login OTPA

Verify the 5-digit IITR email/SMS OTP and establish an in-memory AIS session.

ParametersJSON Schema
NameRequiredDescriptionDefault
otpYes
usernameNo

TDQS

A4/5.0
Behavior3/5

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

Annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false) already indicate mutation and side effects. Description adds value by specifying 'establish an in-memory AIS session,' but does not detail error cases or required prerequisites.

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?

Single sentence with 14 words, front-loaded with purpose and key detail. No superfluous content.

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 verification tool with 2 parameters and no output schema, the description covers core purpose, parameter detail, and outcome. It could mention error handling or success/failure indication.

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

Parameters3/5

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

Description explains the 'otp' parameter (5-digit OTP from IITR email/SMS), matching the pattern. However, the 'username' parameter is not mentioned, and schema coverage is 0%, so description only partially compensates.

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 clearly specifies the action (verify OTP) and resource (5-digit IITR email/SMS OTP) and outcome (establish in-memory session). It distinguishes from siblings like ais_auth_send_sms_otp (sends OTP) and ais_auth_login (initiates login).

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 implies usage after receiving an OTP ('Verify the 5-digit IITR email/SMS OTP'). It provides clear context but lacks explicit when-not-to-use or alternative references.

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

ais_batch_readBatch Read IITR AISA
Read-only

Run up to 20 cataloged non-mutating operations sequentially. POST-based reads are supported.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestsYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true; description adds that operations are 'non-mutating' and 'POST-based', which are behavioral traits beyond annotations. No contradiction.

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 short sentences, front-loaded with the main purpose. Every word is informative with no redundancy.

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?

Lacks explanation of 'cataloged', how to construct requests, error handling, or return format. For a batch tool with a complex nested parameter, this is insufficient.

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

Parameters1/5

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

Schema description coverage is 0%. The description provides no explanation for any of the parameters (identifier, body, query, responseFormat), failing to add meaning beyond 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 clearly states the verb 'Run', the resource 'cataloged non-mutating operations', and specifies a limit of 20. It distinguishes from sibling read tools by emphasizing batching and non-mutating nature.

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 for batch reads but does not mention when not to use it or alternatives among siblings. No guidance on exclusion criteria.

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

ais_callCall Any IITR AIS OperationA
Destructive

Call a cataloged endpoint by symbol/alias/URL, or an API-relative path. Cataloged mutations and uncataloged non-GET calls require confirmWrite=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
queryNo
methodNo
headersNo
identifierYes
confirmWriteNo
responseFormatNoauto

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, but the description adds a key behavioral constraint: cataloged mutations and uncataloged non-GET calls require confirmWrite=true. This is valuable beyond what annotations provide, though it lacks detail on return formats or side effects.

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 a single sentence that front-loads the core purpose and adds a critical usage note. Every word carries weight, with no redundancy.

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?

Given the complexity (7 parameters, no output schema, openWorldHint=true), the description is minimal. It explains how to address endpoints and confirmWrite, but omits details about return formats, error handling, or the full scope of what 'cataloged' means, which limits completeness for an agent.

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

Parameters3/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 explains 'identifier' as symbol/alias/URL or API-relative path, and 'confirmWrite' with its condition. However, it does not cover 'body', 'query', 'method', 'headers', or 'responseFormat', so compensation is partial.

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 clearly states the tool calls a cataloged endpoint by symbol/alias/URL or API-relative path. It uses a specific verb and resource, and implicitly distinguishes itself from sibling tools that are specific operations, making it a general-purpose caller.

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 does not explicitly state when to use this tool versus siblings. It implies that any cataloged endpoint not covered by other tools can be called, but offers no when-not-to guidance or alternatives. The note about confirmWrite is a usage detail, not a guideline for selection.

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

ais_crypto_transformTransform AIS Encrypted PayloadC
Read-only

Encrypt or decrypt an AIS payload with CryptoJS-compatible AES, DES, TripleDES, or Rabbit. Session-key mode derives the portal key from the active AccessToken.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyNo
valueYes
algorithmNoAES
keySourceNosession
operationYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations provide readOnlyHint=true, suggesting no side effects. The description mentions session-key mode but adds little beyond what's in the schema (keySource enum). No disclosure of error behavior or other traits.

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?

Two sentences with clear front-loading of the primary action and algorithms. No redundant information, but could be slightly improved by ordering key details first.

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?

With 5 parameters, 3 enums, and no output schema, the description is too brief. It lacks explanation of return values, parameter relationships, error handling, and behavior when keySource is not session.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain individual parameters like key, value, algorithm, keySource, or operation. For example, it omits that key is only needed when keySource=custom, or that value can be complex 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 clearly states the action (encrypt/decrypt) and resource (AIS payload) with supported algorithms (AES, DES, TripleDES, Rabbit). It is distinct from sibling tools which are primarily auth and student operations.

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 through session-key mode derivation, but does not explicitly state when to use encrypt vs decrypt, when to choose algorithms, or prerequisites like an active session. No alternatives are mentioned.

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

ais_get_featureGet IITR AIS FeatureA
Read-only

Resolve one endpoint symbol/alias/URL or one dashboard route.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a read operation. The description adds that it resolves a single item, which is consistent and slightly extends behavioral understanding. However, it omits any mention of error behavior (e.g., unresolved identifier), return format, or side effects beyond the read-only nature.

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 a single, front-loaded sentence with no wasted words. It efficiently conveys the tool's core action and scope, making it easy for an agent to parse quickly.

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 the tool's simplicity (one parameter, read-only, no nested objects) and the presence of annotations covering safety, the description is largely complete. However, the absence of an output schema means the agent must infer return data from the description alone; mentioning that the output provides details about the resolved feature would improve completeness.

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?

The input schema provides no description for the 'identifier' parameter (0% coverage). The description compensates by explaining that the identifier can be an endpoint symbol, alias, URL, or dashboard route, giving meaningful semantic context to the parameter that 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 verb 'resolve' and the resource specification 'one endpoint symbol/alias/URL or one dashboard route' clearly indicate the function. It distinguishes from siblings like ais_list_features (which lists all features) and ais_get_portal_route (which likely resolves a different type). However, the term 'feature' remains slightly ambiguous without broader context.

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 on when to use this tool versus alternatives such as ais_list_features or ais_get_portal_route. The description lacks conditions, prerequisites, or exclusions, leaving the agent to infer appropriateness solely from the name and minimal description.

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

ais_get_portal_routeGet AIS Screen URLA
Read-only

Return the shareable dashboard URL for a cataloged AIS screen. The recipient must log in with their own permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
routeYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the tool is safely read-only. The description adds that the URL is not pre-authenticated, which is useful behavioral context. However, it does not disclose other potential behaviors like time-limitations or error conditions.

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 concise sentences clearly separated by purpose and constraint. No fluff, front-loaded with the core action.

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 tool with one parameter and no output schema, the description is adequate but minimal. It explains the result and a key constraint, but could better describe the input parameter and output format.

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

Parameters2/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 only loosely mentions 'cataloged AIS screen' but does not clarify what the 'route' parameter represents (e.g., an ID, a path) or its expected format.

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 clearly states the tool returns a shareable dashboard URL for a cataloged AIS screen, using specific verbs and resource. It distinguishes from sibling tools like ais_list_external_portals by focusing on cataloged AIS screens.

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 provides some guidance by noting that the recipient must log in with their own permissions, but does not specify when to use this tool versus alternatives (e.g., ais_list_external_portals) or 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.

ais_list_external_portalsList IITR Academic PortalsA
Read-only

Return the external academic services linked by the production AIS login/dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already provide readOnlyHint=true, so the description adds no additional behavioral context beyond restating 'Return'. No disclosure of potential side effects or limitations.

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?

Single, clear sentence with no wasted words. Efficiently communicates the tool's purpose.

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 zero-parameter list tool, the description sufficiently states the return value. However, no output schema exists, and the description could mention format or scope limitations.

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?

No parameters exist, and schema coverage is 100%. The description explains what the tool returns, which adds meaning beyond the empty 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 clearly states the verb 'Return' and the specific resource 'external academic services linked by the production AIS login/dashboard', which distinguishes it from sibling tools like ais_list_features.

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 on when to use this tool versus alternatives (e.g., ais_list_features). The description does not provide any context for usage.

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

ais_list_featuresList IITR AIS FeaturesB
Read-only

Search the production-derived endpoint and screen catalog by text, API domain, portal role, or mutation status.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoall
roleNo
limitNo
queryNo
domainNo
offsetNo
mutatingNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's mention of 'Search' aligns. However, it adds minimal behavioral context beyond that, such as pagination behavior or data source specifics. The description does not contradict annotations, but does not significantly enrich transparency.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It front-loads the purpose but omits important details that could be broken into multiple sentences for clarity.

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 the tool has 7 parameters, no output schema, and many siblings, the description is insufficient. It does not describe return format, pagination behavior (limit/offset), or how to combine filters, leaving significant gaps for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description only covers 4 of 7 parameters (query, domain, role, mutating) but omits kind, limit, offset. It does not explain default values, allowed values, or parameter relationships, leaving agents to infer from parameter names alone.

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 clearly states the verb 'Search' and identifies the resource as 'production-derived endpoint and screen catalog'. It lists specific filter criteria (text, API domain, portal role, mutation status), making the tool's purpose unambiguous and distinct from sibling tools like ais_get_feature or ais_get_portal_route.

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 for searching/filtering features but does not provide explicit guidance on when to choose this tool over siblings, nor does it mention exclusions or prerequisites. With many siblings, more context would help.

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

ais_password_changeChange Authenticated AIS PasswordC
Destructive

Change the current account password using the portal's encrypted changeAuthPass protocol.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
newPasswordYes
currentPasswordYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false, but the description adds little beyond mentioning an encrypted protocol. It does not disclose error behavior (e.g., wrong current password) or side effects like session invalidation.

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

Conciseness3/5

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

The description is a single sentence with no extraneous words, but it omits critical information. Conciseness is achieved at the expense of clarity for parameter usage.

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

Completeness1/5

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

With no output schema and no parameter descriptions, the description fails to provide enough context for safe invocation. The agent cannot know the meaning of 'confirm' or the consequences of invalid input.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no explanation for any of the three parameters (currentPassword, newPassword, confirm). The agent does not learn that 'confirm' must be true or that newPassword must be different from current.

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 clearly states the verb 'Change' and the resource 'current account password', and mentions the specific protocol. It is distinct from sibling tools like ais_password_reset_* which handle forgotten password flows.

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 does not provide any guidance on when to use this tool vs. alternatives like password reset tools. It does not mention prerequisites (e.g., user must be logged in, know current password) or exclusions.

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

ais_password_reset_completeComplete AIS Password ResetA
Destructive

Submit the reset token and new-password payload to AIS. Requires explicit confirmation and the password-tools feature flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
payloadYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate destructive and not read-only. Description adds context of required confirmation and feature flag. Does not explain full behavior like token invalidation or response.

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 concise sentences, front-loaded with main action. No unnecessary words.

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?

Short description for a complex destructive tool with nested parameter. Missing payload specification, error conditions, response format. Agent needs more to use correctly.

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

Parameters2/5

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

Schema coverage 0%, description only hints at 'new-password payload' and 'confirm'. No details on payload structure (fields like token, new password). Insufficient for agent to construct correct payload.

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?

Specific verb 'submit' and resource 'AIS password reset completion'. Distinguishes from sibling tools like request and verify by being the final step.

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?

Implied but not explicit. Mentions prerequisites (confirmation, feature flag) but does not state when to use vs alternatives or when not to use.

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

ais_password_reset_requestRequest AIS Password ResetA

Send an AIS password-reset email. Requires explicit confirmation and the password-tools feature flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes
confirmYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false). The description adds behavioral context (sends an email, requires feature flag) beyond annotations, without contradiction.

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 concise sentences with no wasted words; the key action is front-loaded.

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?

The description omits important context about the multi-step password reset flow (e.g., subsequent steps like verify or complete), leaving the agent without a full picture.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description does not explain either parameter (email format, confirm must be true), failing to compensate for the lack of 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?

The description clearly states the action ('Send an AIS password-reset email') and distinguishes it from sibling tools like ais_password_change and ais_password_reset_verify by focusing on the request step.

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 mentions requirements (confirmation, feature flag) but does not explicitly guide when to use this tool versus other password reset tools, missing contrast with verify or complete siblings.

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

ais_password_reset_verifyVerify AIS Password Reset TokenA
Read-only

Verify a password-reset token without changing the password.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds confirmation that no password change occurs, reinforcing the read-only nature. No additional behavioral traits (e.g., authentication needs, rate limits) are disclosed.

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 a single concise sentence that conveys the essential purpose without extraneous words. It is front-loaded and every word adds value.

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 no output schema, the description should explain what the tool returns (e.g., success/failure, validated token). It does not. Also, it omits context like prerequisites or expected payload structure, leaving the agent under-informed for a tool with a complex input schema.

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

Parameters2/5

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

Schema description coverage is 0%, requiring the description to compensate. However, the description does not explain the 'payload' parameter at all, leaving the agent unsure what to include (e.g., token value, format). This is insufficient for a required parameter with a complex 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 clearly states the action (verify), the resource (password-reset token), and a key constraint (without changing password). It distinguishes from sibling tools like 'ais_password_reset_complete' which likely changes the password.

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 after password reset request and before password reset complete, but does not explicitly state when to use it vs alternatives, nor does it provide exclusion criteria.

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

ais_student_fee_detailsGet Student Fee DetailsC
Read-only

Read and decrypt current-semester fee details and the total returned by AIS.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint and openWorldHint. The description adds 'decrypt' and 'current-semester' constraints, but does not disclose other behaviors (e.g., authentication needs, error handling). It provides some additional context beyond annotations.

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 a single sentence, efficient and front-loaded. However, it sacrifices clarity for brevity, leaving important parameter details missing.

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 the single parameter with no documentation and no output schema, the description is insufficient. It fails to explain input semantics or return value structure, making it incomplete for an agent to use correctly.

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

Parameters1/5

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

With 0% schema description coverage, the description must explain the 'payload' parameter. Instead, it only describes the output (fee details, total) and leaves the input completely undocumented. An agent cannot determine how to construct the payload.

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 specifies 'Read and decrypt current-semester fee details and the total', clearly indicating the verb and resource. It distinguishes from the sibling 'ais_student_fee_status' by mentioning decryption and total, but does not explicitly differentiate usage.

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 on when to use this tool versus alternatives like 'ais_student_fee_status'. The description does not address prerequisites or context, leaving the agent to infer usage.

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

ais_student_fee_statusGet Student Fee StatusB
Read-only

Read the current-semester fee status from the official AIS fees service.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already indicate read-only and open-world behavior. The description adds useful context: the tool reads from the 'official AIS fees service' and is limited to the 'current-semester', providing behavioral specificity beyond the annotations alone. No contradictions.

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 a single clear sentence with no redundant words. It is front-loaded with the essential information and earns its place without waste.

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

Completeness1/5

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

Despite the tool being simple in purpose, the agent has no information about the input parameter (payload) or the output format. With no output schema and a non-obvious parameter, the description fails to equip the agent to use the tool correctly. It is insufficiently complete.

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

Parameters1/5

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

The input schema has 0% coverage for the single 'payload' parameter, which is a free-form object. The description does not explain the purpose, structure, or required fields of the payload, leaving the agent with no guidance on how to parameterize the call.

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 clearly states it reads the current-semester fee status from a specific official service, using a specific verb and resource. It distinguishes from sibling 'ais_student_fee_details' by focusing on 'status' versus 'details', and the scope is well-defined.

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 explicit guidance on when to use this tool versus alternatives like 'ais_student_fee_details'. It only implies it is for the current semester, but does not explain when to choose this over other fee-related tools.

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

ais_student_gradesheetGet Student GradesheetB
Read-only

Read and decrypt semester gradesheet data. Pass EnrollmentNo, semRecrdid, SemesterID, StSession, and Semester from a semester record.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds the behavioral detail of 'decrypt', which provides some transparency beyond annotations. No contradiction with 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?

Two concise, informative sentences with no wasted words. Clear and front-loaded.

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 the complex input schema (generic 'payload') and no output schema, the description should provide more details on expected input structure, output format, or behavior on error. It only hints at fields but lacks completeness for a data retrieval tool.

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

Parameters2/5

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

Schema coverage is 0% and the schema only defines a generic 'payload' object without specific fields. The description lists five required fields but does not explain their types, formats, or constraints, leaving ambiguity.

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 tool reads and decrypts semester gradesheet data, which is a specific verb+resource. However, it does not differentiate from sibling tools like ais_student_semester_records or ais_student_transcript, which also involve reading student data.

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 lists required fields (EnrollmentNo, semRecrdid, etc.) and states they come from a semester record, implying usage context. However, it does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives.

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

ais_student_profileGet Student ProfileA
Read-only

Read and decrypt student personal/profile information; pass the fields required by the portal, usually Enrollment.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true. The description adds behavioral insight by mentioning 'decrypt' (sensitive data handling) and the portal requirement, going beyond the annotations without contradicting them.

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 long, front-loads the purpose, and contains no wasted words. It is appropriately sized for the tool's complexity.

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?

Given the nested parameter schema and lack of output schema, the description offers some context about the portal and Enrollment, but leaves ambiguity about expected payload fields and return values. It is moderately complete but could be more specific.

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

Parameters2/5

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

Schema coverage is 0% and the only parameter 'payload' is an arbitrary object. The description says to 'pass the fields required by the portal, usually Enrollment,' but does not specify key names or structure. This provides only minimal added meaning beyond 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 clearly states the tool reads and decrypts student personal/profile information, specifying the resource and context ("pass the fields required by the portal, usually Enrollment"). This distinguishes it from sibling tools like ais_student_fee_details or ais_student_gradesheet.

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 when the portal requires student profile info, but lacks explicit when-not-to-use or alternatives. It provides some context but no exclusion criteria or guidance on prerequisites.

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

ais_student_semester_recordsGet Semester RecordsC
Read-only

Read and decrypt a student's semester records from the endpoint used by the student screens.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and openWorldHint=true. The description adds 'decrypt', which is a behavioral trait, but does not elaborate on authentication, rate limits, or return format. With annotations, the bar is lower; description adds some value.

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

Conciseness3/5

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

Single sentence, front-loaded, but lacks necessary details. Efficient but incomplete. Every sentence should earn its place; this one does but needs more.

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

Completeness1/5

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

Given the complex schema (nested object, no output schema) and many siblings, the description is severely incomplete. Omits payload semantics, response structure, and authentication context.

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

Parameters1/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 fails to explain the payload parameter structure or expected keys (e.g., student ID, semester). The agent cannot determine what to pass.

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 clearly states it reads and decrypts semester records from a specific endpoint. It distinguishes itself from sibling tools like ais_student_gradesheet and ais_student_transcript by specifying 'semester records' and mentioning decryption.

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 on when to use this tool versus alternatives. Does not specify prerequisites, required state, or scenarios where other tools are more appropriate. The agent has to infer from context.

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

ais_student_transcriptGet Student TranscriptC
Read-only

Read and decrypt the authenticated student's transcript data from the endpoint used by the student transcript screen.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the read-only nature is covered. The description adds the 'decrypt' behavior, which is a useful disclosure beyond annotations. However, it does not specify what happens if the user is not authenticated or if the payload contains invalid data, and lacks details on potential side effects.

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 a single sentence that is straightforward and front-loaded with key actions (read and decrypt). It could be slightly more concise by omitting 'from the endpoint used by the student transcript screen,' but overall it is not verbose.

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 the tool's complexity (one optional parameter, no output schema), the description should provide information about return data, typical usage context, or behavior on failure. It lacks any detail about what the transcript data contains, how to interpret the output, or error handling, making it incomplete for an agent to invoke correctly without additional knowledge.

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

Parameters1/5

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

The input schema has one optional parameter 'payload' with 0% description coverage and no defined properties. The description does not explain what the payload should contain, how to structure it, or its purpose. This leaves the agent with no additional meaning beyond the schema, which itself is generic.

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 tool reads and decrypts the student's transcript data, with a specific reference to the endpoint used by the transcript screen. While the verb and resource are clear, it does not explicitly differentiate from sibling tools such as ais_student_gradesheet or ais_student_fee_details, but the name itself distinguishes it.

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 its siblings (e.g., aisle_student_gradesheet for grades). It does not mention prerequisites, authentication requirements, or when not to use it, leaving the agent to infer from the name alone.

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

ais_uploadUpload a File to IITR AISC

Call a cataloged multipart upload operation. Every file must be inside IITR_AIS_UPLOAD_ROOT and the total must fit IITR_AIS_MAX_UPLOAD_BYTES.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesYes
queryNo
fieldsNo
methodNoPOST
identifierYes
confirmWriteYes
responseFormatNoauto

TDQS

C2.6/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false (mutation) and openWorldHint=true, but the description adds minimal behavioral context. It does not disclose whether the upload overwrites existing files, what happens on failure, or any authentication/authorization requirements. The description adds little beyond the annotation information.

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 extremely concise at two sentences, with no redundant wording. However, it could be more structured by explaining the parameter roles or return values without increasing length significantly. It earns points for efficiency but loses some for lack of informative structure.

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 the tool has 7 parameters (3 required), nested objects, and no output schema, the description is incomplete. It does not explain what the tool returns, how errors are reported, or how parameters like 'identifier' and 'confirmWrite' are used. The constraints on file root and size are helpful but insufficient for a complex multipart upload operation.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description provides zero explanation of any parameter meaning. The required 'identifier', 'files', and 'confirmWrite' parameters are not described. Nested properties like 'path', 'field', 'filename', and 'contentType' are entirely unaddressed. The description fails to add semantic value beyond the raw 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 'Call a cataloged multipart upload operation' which clearly identifies the verb (upload) and resource (file to IITR AIS). It distinguishes from sibling tools like ais_auth_login and ais_student_profile, which are read or auth tools. However, the term 'cataloged' is ambiguous and could benefit from clarification.

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 constraints (file must be inside IITR_AIS_UPLOAD_ROOT and total size under IITR_AIS_MAX_UPLOAD_BYTES) but offers no guidance on when to use this tool versus alternatives. No alternative tools are mentioned, and there is no discussion of prerequisites or conditions for use.

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. 24 tool updatesv1.0.0
    • First observedais_auth_login
    • First observedais_auth_logout
    • First observedais_auth_send_sms_otp
    • First observedais_auth_set_session
    • First observedais_auth_status
    • First observedais_auth_verify_otp
    • First observedais_batch_read
    • First observedais_call
    • First observedais_crypto_transform
    • First observedais_get_feature
    • First observedais_get_portal_route
    • First observedais_list_external_portals
    • First observedais_list_features
    • First observedais_password_change
    • First observedais_password_reset_complete
    • First observedais_password_reset_request
    • First observedais_password_reset_verify
    • First observedais_student_fee_details
    • First observedais_student_fee_status
    • First observedais_student_gradesheet
    • First observedais_student_profile
    • First observedais_student_semester_records
    • First observedais_student_transcript
    • First observedais_upload

TDQS

A3.5/5.0

Scored across 24 tools

Disambiguation5/5

Each tool has a clearly distinct purpose, covering authentication steps, batch operations, cataloged calls, crypto, feature retrieval, password management, and various student data endpoints. No overlapping tool functions; descriptions are precise.

Naming Consistency5/5

All tools follow a consistent 'ais_verb_noun' pattern in snake_case, making it easy to predict functionality from the name. No mixing of conventions or odd abbreviations.

Tool Count4/5

With 24 tools, the count is slightly high but still reasonable for a comprehensive academic portal. Each tool serves a specific function, and the scope justifies the number.

Completeness4/5

The tool surface covers core workflows: authentication, password management, student data retrieval (fees, grades, transcript, profile, semester records), feature catalog browsing, and file upload. Minor gaps exist (e.g., no course registration or direct profile update), but the essential operations are present.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers