IIT Roorkee Academics MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IIT Roorkee Academics MCPCheck my current semester fee status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 buildThe stdio server entry point is:
node /absolute/path/to/iitr-academics-mcp/dist/index.jsFor Codex CLI, register that command:
codex mcp add iitr-academics -- node /absolute/path/to/iitr-academics-mcp/dist/index.jsThe 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.jsDo 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 |
| Show redacted session status |
| Set username and AccessToken in memory |
| Login with username/password |
| Finish email/SMS OTP login |
| Request the login OTP by SMS with confirmation |
| Clear the in-memory session |
| Send reset email, behind a feature flag and confirmation |
| Verify a reset token |
| Complete reset, behind a feature flag and confirmation |
| Change the authenticated account password using the portal cipher |
| Encrypt/decrypt AES, DES, TripleDES, or Rabbit portal payloads |
| Search endpoints/screens by query, domain, role, or risk |
| Inspect one endpoint or route |
| Return a shareable dashboard screen URL |
| Return the academic services linked by AIS |
| Invoke any cataloged or API-relative operation |
| Execute up to 20 non-mutating operations |
| Multipart upload with confirmation, path boundary, and size limit |
| Read and decrypt student profile data |
| Read current-semester fee status |
| Read and decrypt fee details and total |
| Read and decrypt semester history |
| Prepare the portal request and decrypt gradesheet data |
| Read and decrypt the authenticated student's transcript |
Resources:
iitr://catalog/endpointsiitr://catalog/routesiitr://catalog/coverageiitr://session/statusiitr://catalog/external-portals
Prompts:
ais-safe-operationais-fee-workflow
Calling an operation safely
Call
ais_list_featureswith a focused query.Inspect the selected operation with
ais_get_feature.For a read, call
ais_callwith the required query or JSON body.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:
usernameplusauthorization: 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_ROOTand 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 |
| unset | Enrollment/employee/portal username |
| unset | Existing AIS AccessToken |
| official | API base |
| official portal URL | Dashboard URL base |
|
| Request timeout |
|
| Maximum response size |
| process working directory | Only local tree allowed for multipart files |
|
| Maximum total bytes per multipart call |
|
| Permit calls outside the official API boundary |
|
| Enable password-reset mutations |
|
| Write startup diagnostics to stderr |
Verification
npm run typecheck
npm test
npm run build
npm auditThe 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 toolsais_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.
| Name | Required | Description | Default |
|---|---|---|---|
| password | Yes | ||
| username | Yes |
TDQS
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.
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.
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.
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.
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.
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 SessionAIdempotent
Forget the in-memory AIS session. The current portal has no remote logout endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | ||
| username | No |
TDQS
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.
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.
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.
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.
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.
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 SessionAIdempotent
Set an existing portal username and AccessToken in process memory. Prefer environment variables because MCP tool arguments may be logged by clients.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | ||
| accessToken | Yes |
TDQS
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.
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.
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.
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.
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.
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 StatusARead-only
Show whether this MCP process has an IITR AIS session. Tokens are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| otp | Yes | ||
| username | No |
TDQS
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.
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.
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.
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.
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.
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 AISARead-only
Run up to 20 cataloged non-mutating operations sequentially. POST-based reads are supported.
| Name | Required | Description | Default |
|---|---|---|---|
| requests | Yes |
TDQS
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.
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.
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.
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.
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.
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 OperationADestructive
Call a cataloged endpoint by symbol/alias/URL, or an API-relative path. Cataloged mutations and uncataloged non-GET calls require confirmWrite=true.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| query | No | ||
| method | No | ||
| headers | No | ||
| identifier | Yes | ||
| confirmWrite | No | ||
| responseFormat | No | auto |
TDQS
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.
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.
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.
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.
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.
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 PayloadCRead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| value | Yes | ||
| algorithm | No | AES | |
| keySource | No | session | |
| operation | Yes |
TDQS
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.
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.
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.
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.
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.
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 FeatureARead-only
Resolve one endpoint symbol/alias/URL or one dashboard route.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
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.
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.
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.
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.
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.
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 URLARead-only
Return the shareable dashboard URL for a cataloged AIS screen. The recipient must log in with their own permissions.
| Name | Required | Description | Default |
|---|---|---|---|
| route | Yes |
TDQS
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.
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.
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.
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.
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.
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 PortalsARead-only
Return the external academic services linked by the production AIS login/dashboard.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 FeaturesBRead-only
Search the production-derived endpoint and screen catalog by text, API domain, portal role, or mutation status.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | all | |
| role | No | ||
| limit | No | ||
| query | No | ||
| domain | No | ||
| offset | No | ||
| mutating | No |
TDQS
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.
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.
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.
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.
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.
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 PasswordCDestructive
Change the current account password using the portal's encrypted changeAuthPass protocol.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | ||
| newPassword | Yes | ||
| currentPassword | Yes |
TDQS
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.
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.
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.
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.
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.
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 ResetADestructive
Submit the reset token and new-password payload to AIS. Requires explicit confirmation and the password-tools feature flag.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | ||
| payload | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| confirm | Yes |
TDQS
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.
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.
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.
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.
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.
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 TokenARead-only
Verify a password-reset token without changing the password.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes |
TDQS
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.
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.
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.
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.
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.
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 DetailsCRead-only
Read and decrypt current-semester fee details and the total returned by AIS.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | No |
TDQS
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.
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.
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.
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.
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.
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 StatusBRead-only
Read the current-semester fee status from the official AIS fees service.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | No |
TDQS
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.
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.
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.
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.
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.
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 GradesheetBRead-only
Read and decrypt semester gradesheet data. Pass EnrollmentNo, semRecrdid, SemesterID, StSession, and Semester from a semester record.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | No |
TDQS
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.
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.
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.
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.
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.
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 ProfileARead-only
Read and decrypt student personal/profile information; pass the fields required by the portal, usually Enrollment.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | No |
TDQS
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.
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.
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.
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.
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.
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 RecordsCRead-only
Read and decrypt a student's semester records from the endpoint used by the student screens.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | No |
TDQS
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.
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.
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.
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.
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.
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 TranscriptCRead-only
Read and decrypt the authenticated student's transcript data from the endpoint used by the student transcript screen.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | ||
| query | No | ||
| fields | No | ||
| method | No | POST | |
| identifier | Yes | ||
| confirmWrite | Yes | ||
| responseFormat | No | auto |
TDQS
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.
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.
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.
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.
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.
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.
24 tool updates
v1.0.0- First observed
ais_auth_login - First observed
ais_auth_logout - First observed
ais_auth_send_sms_otp - First observed
ais_auth_set_session - First observed
ais_auth_status - First observed
ais_auth_verify_otp - First observed
ais_batch_read - First observed
ais_call - First observed
ais_crypto_transform - First observed
ais_get_feature - First observed
ais_get_portal_route - First observed
ais_list_external_portals - First observed
ais_list_features - First observed
ais_password_change - First observed
ais_password_reset_complete - First observed
ais_password_reset_request - First observed
ais_password_reset_verify - First observed
ais_student_fee_details - First observed
ais_student_fee_status - First observed
ais_student_gradesheet - First observed
ais_student_profile - First observed
ais_student_semester_records - First observed
ais_student_transcript - First observed
ais_upload
TDQS
Scored across 24 tools
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.
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.
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.
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
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
MCP adapter for the Paxaver school community platform. Streamable HTTP, OAuth 2.1, capability auth.
Authenticated MCP server for ClearPolicy policy and compliance workflows.
- OneOAuthai.withone
Search, document and execute authenticated API calls across 700+ apps via one MCP server
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables interaction with D2L Brightspace through the MCP protocol, supporting multi-strategy authentication and opt-in write operations.50 npm11MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Nettskjema forms, submissions, invitations, and data export through the MCP protocol.MIT
- FlicenseNot gradedqualityDmaintenanceSimple MCP server that exposes a tool to fetch student result/CGPA data from MANIT ERP APIs.-
- AlicenseNot gradedqualityDmaintenanceMCP server for Canvas LMS with automatic OAuth authentication. Enables interaction with courses, assignments, grades, modules, discussions, quizzes, files, calendar, messaging, and more without manual API token management.43 npmMIT