Skip to main content
Glama

N Lobby CLI

Note: The developer assumes no responsibility for any damages that may occur from using this tool. This software was developed for educational purposes and its operation is not guaranteed.

A dual-mode CLI and Model Context Protocol (MCP) server for accessing N Lobby school portal data. Use it interactively from the terminal with nlobby, or connect it to an AI assistant as an MCP server with nlobby serve.

Features

  • CLI Mode: Access N Lobby data directly from the terminal — news, schedule, courses, profile, and more

  • MCP Mode: Full MCP server compatible with Claude, Cursor, and other MCP-enabled AI assistants

  • Browser-based Authentication: Interactive login via automated Puppeteer browser window

  • Session Persistence: CLI mode saves cookies to ~/.nlobby/session for seamless subsequent use

  • School Information Access: Retrieve announcements, schedules, and learning resources

  • Required Courses Management: Access required course information and academic data

  • Multiple Calendar Types: Support for both personal and school calendars

  • User Role Support: Different access levels for students, parents, and staff

Related MCP server: Remote MCP Server with GitHub OAuth

Installation

npm install -g nlobby-cli

Option 2: Development Installation

  1. Clone the repository:

git clone https://github.com/minagishl/nlobby-cli.git
cd nlobby-cli
  1. Install dependencies:

pnpm install
  1. Build the project:

pnpm run build

Configuration

Create a .env file if you need to override defaults (optional):

NLOBBY_BASE_URL=https://nlobby.nnn.ed.jp
MCP_SERVER_NAME=nlobby-cli
MCP_SERVER_VERSION=1.0.0

CLI Usage

Authentication

# Interactive browser login (recommended)
nlobby login

# Set cookies manually
nlobby cookies set "__Secure-next-auth.session-token=ey...;"

# Check current authentication status
nlobby cookies check

News

# List latest news (default: 10, newest first)
nlobby news

# Filter and sort
nlobby news --limit 20 --category お知らせ --sort oldest --unread

# Show full article
nlobby news show 980

# Download the first attachment to /tmp
nlobby news download 980 --index 1 --output-dir /tmp

# Mark as read
nlobby news read 980

Schedule & Calendar

# Today's schedule
nlobby schedule

# Specific date
nlobby schedule 2026-04-01

# This week's personal calendar
nlobby calendar

# School calendar for a date range
nlobby calendar --type school --from 2026-04-01 --to 2026-04-07

Courses

# All required courses
nlobby courses

# Filter by grade / semester
nlobby courses --grade 2 --semester 2025

Profile & Health

nlobby profile
nlobby health

MCP Server

# Start MCP server (stdio transport)
nlobby serve
# or
nlobby mcp

All commands support --json to output raw JSON instead of formatted text.


MCP Usage

Cursor IDE Setup

Install MCP Server

Add the following to your Cursor settings (~/.cursor/config.json):

{
  "mcpServers": {
    "nlobby": {
      "command": "npx",
      "args": ["-y", "nlobby-cli", "serve"],
      "env": {
        "NLOBBY_BASE_URL": "https://nlobby.nnn.ed.jp"
      }
    }
  }
}

Claude Desktop Setup

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "nlobby": {
      "command": "npx",
      "args": ["-y", "nlobby-cli", "serve"],
      "env": {
        "NLOBBY_BASE_URL": "https://nlobby.nnn.ed.jp"
      }
    }
  }
}

Other MCP Clients

For any MCP-compatible client, use:

  • Command: nlobby serve (if installed globally) or node /path/to/dist/index.js serve

  • Protocol: stdio

  • Environment: Optional environment variables as listed in the Configuration section

MCP Resources

URI

Description

nlobby://news

School news and notices

nlobby://schedule

Daily class schedule and events

nlobby://required-courses

Required courses and academic information

nlobby://user-profile

Current user information

MCP Tools

Authentication

Tool

Description

interactive_login

Open browser for manual login (recommended)

login_help

Personalized login help and troubleshooting

set_cookies

Manually set authentication cookies

check_cookies

Check authentication cookie status

verify_authentication

Verify authentication status across all clients

News

Tool

Key Parameters

Description

get_news

category? limit? sort?

Retrieve school news with filtering

get_news_detail

newsId markAsRead?

Full detail for a specific article

mark_news_as_read

ids (array)

Mark articles as read

get_unread_news_info

Unread count and important-news flags

Schedule & Calendar

Tool

Key Parameters

Description

get_schedule

date?

Schedule for a date (YYYY-MM-DD)

get_calendar_events

calendar_type? from_date? to_date? period?

Calendar events (personal/school)

test_calendar_endpoints

from_date? to_date?

Test both calendar endpoints

get_calendar_filters

Lobby calendar filter definitions

Courses & Exams

Tool

Key Parameters

Description

get_required_courses

grade? semester? category?

Required courses with progress tracking

check_exam_day

date?

Check if a date is an exam day

finish_exam_day_mode

End exam day mode

get_exam_otp

Get one-time password for exam

Account & Navigation

Tool

Description

get_account_info

Extract account info from Next.js page

get_student_card_screenshot

Capture student ID card screenshot

update_last_access

Update last access timestamp

get_navigation_menus

Main navigation menu list

get_notifications

Notification messages

get_user_interests

User interest tags (with optional icon data)

get_interest_weights

Interest weight scale definitions

Debugging

Tool

Key Parameters

Description

health_check

Test N Lobby API connection

debug_connection

endpoint?

Detailed connection debugging

test_page_content

endpoint? length?

Page content retrieval testing

test_trpc_endpoint

method params?

Test a specific tRPC endpoint


Authentication Flow

CLI:

nlobby login

MCP tool: interactive_login

A browser window opens automatically. Complete the N Lobby login, and cookies are extracted and saved.

  1. Log in to N Lobby in your web browser

  2. Open DevTools → Application / Storage → Cookies

  3. Copy all cookies as a string

CLI:

nlobby cookies set "__Secure-next-auth.session-token=ey...;"

MCP tool: set_cookies cookies="__Secure-next-auth.session-token=ey...;"


User Types

The server supports three user types based on email domain:

Type

Email Domain

Students

@nnn.ed.jp

Staff

@nnn.ac.jp

Parents

Any other registered email


Project Structure

src/
├── index.ts              # Entry point — CLI vs MCP mode detection
├── config.ts             # Configuration management
├── logger.ts             # Logging utilities
├── trpc-client.ts        # tRPC client for API calls
├── types.ts              # TypeScript type definitions
├── api/
│   ├── index.ts          # NLobbyApi facade + session persistence
│   ├── context.ts        # ApiContext interface
│   ├── shared.ts         # Shared utilities (fetchRenderedHtml, …)
│   ├── news.ts           # News functions
│   ├── schedule.ts       # Schedule / calendar functions
│   ├── courses.ts        # Course / exam functions
│   ├── account.ts        # Account info / student card functions
│   ├── navigation.ts     # Navigation / notification / interest functions
│   └── health.ts         # Health check / debug functions
├── auth/
│   ├── browser.ts        # Puppeteer browser authentication
│   ├── nextauth.ts       # NextAuth.js session handling
│   └── credentials.ts    # Credential validation and guidance
├── cli/
│   ├── index.ts          # Commander program wiring
│   ├── commands/         # login, news, schedule, courses, profile, health, serve
│   └── formatters/       # Human-readable output formatters
└── mcp/
    └── server.ts         # MCP server (28 tools, 4 resources)

Development

Scripts

pnpm run build   # Build (esbuild bundle + tsc type declarations)
pnpm run dev     # Watch mode
pnpm run start   # Start MCP server
pnpm run lint    # Lint
pnpm run format  # Format

Security Notes

  • CLI cookies are stored in ~/.nlobby/session (plain text — protect accordingly)

  • MCP mode keeps all authentication tokens in memory only

  • Browser automation is used only for authentication, not data scraping

  • No sensitive data is logged


License

This project is licensed under the MIT License — see the LICENSE file for details.

Available Tools

33 tools
check_cookiesB

Check if authentication cookies are set

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. While 'check' implies a read-only operation, it doesn't disclose important behavioral traits: whether this is a simple status check or a validation against the server, what the output format might be, or any error conditions. For an authentication tool with zero annotation coverage, this is insufficient.

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, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple tool and front-loads the essential information.

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?

For an authentication-related tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'set' means (locally stored? server-validated?), what the expected return value would be, or how this differs from other authentication tools. Given the complexity of authentication systems, more context is needed.

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 tool has zero parameters with 100% schema description coverage. The description appropriately doesn't discuss parameters since none exist. This meets the baseline expectation for parameterless tools.

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's purpose: checking if authentication cookies are set. It uses a specific verb ('check') and identifies the resource ('authentication cookies'), but doesn't differentiate from sibling tools like 'verify_authentication' or 'set_cookies' that also deal with authentication state.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'verify_authentication' and 'set_cookies' available, there's no indication of when this specific cookie check is appropriate versus other authentication-related tools.

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

check_exam_dayA

Check if the specified date (or today if omitted) is an exam day

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate in YYYY-MM-DD format (optional, defaults to today)

TDQS

A3.5/5.0
Behavior3/5

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

The description implies this is a read-only check, but since no annotations are present, more detail would help (e.g., whether it queries a database or makes a network call). It is adequate for a simple boolean check but lacks side-effect disclosure.

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

Conciseness5/5

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

The description is a single sentence with no redundant words. Every part is necessary and 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 boolean check with one optional parameter, the description covers the main purpose. However, it does not specify the return type (e.g., true/false) or handle edge cases like invalid dates. Adequate but not complete.

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?

The schema already documents the single parameter with its format and default behavior. The description adds no additional semantics beyond what the schema provides, so baseline 3 is appropriate.

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 checks if a date is an exam day, with a specific verb ('check') and resource ('exam day'). It distinguishes from sibling 'finish_exam_day_mode' by focusing on checking rather than ending a mode.

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 'get_calendar_events' or 'finish_exam_day_mode'. The description does not mention prerequisites or exclusion criteria.

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

debug_connectionC

Debug N Lobby connection with detailed information

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointNoEndpoint to test (default: /news)/news

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'detailed information' but does not specify what that includes (e.g., error logs, response times, status codes), nor does it cover permissions, rate limits, or side effects. This leaves significant gaps in understanding the tool's behavior.

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, efficient sentence that directly states the tool's purpose without unnecessary words. However, it could be more front-loaded with key details, but overall, it is appropriately sized for its content.

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 (debugging a connection), lack of annotations, and no output schema, the description is incomplete. It does not explain what 'detailed information' includes, how results are returned, or error handling, making it inadequate for an agent to fully understand the tool's context and usage.

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?

The input schema has 100% description coverage, with the parameter 'endpoint' documented as 'Endpoint to test (default: /news)'. The description does not add any meaning beyond this, such as explaining why '/news' is the default or how other endpoints might behave. Baseline 3 is appropriate as the schema handles the parameter documentation adequately.

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

Purpose3/5

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

The description states the tool 'Debug[s] N Lobby connection with detailed information', which provides a clear verb ('Debug') and resource ('N Lobby connection'), but it lacks specificity about what 'debug' entails (e.g., testing connectivity, logging errors) and does not differentiate from siblings like 'health_check' or 'test_calendar_endpoints'. This makes the purpose somewhat vague.

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. It does not mention scenarios for debugging connections, prerequisites, or exclusions, leaving the agent without context for selection among siblings such as 'health_check' or 'test_trpc_endpoint'.

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

download_news_attachmentC

Download a news article attachment using the authenticated session

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoAttachment index to download (0-based, default: 0)
newsIdYesThe ID of the news article
outputDirNoDirectory to save the file (default: .).

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. It states 'using the authenticated session' implying authentication is required, but fails to disclose side effects like file creation, overwrite behavior, or what happens on error. The download action and file system side effects are insufficiently described.

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 very concise with one short sentence, but it omits crucial details. While it has no wasted words, it is under-informative for the complexity of the tool. A slightly longer description would be more helpful.

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 3 parameters and no output schema, the description is incomplete. It does not explain the return value (e.g., saved file path or success message), error handling, or common use cases. The schema covers parameters, but the tool's overall behavior and results are under-described.

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?

The input schema covers 100% of parameters with descriptions. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate. The parameters (newsId, index, outputDir) are clear from the 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 uses a clear verb 'download' and specifies the resource 'news article attachment'. It is distinct from sibling tools like 'get_news' and 'get_news_detail' which are read-only. However, it lacks detail about which attachment (index) and the fact that it saves to a directory.

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. There is no mention of prerequisites (e.g., needing the newsId from another tool) or context about the authenticated session. The description is too minimal to assist an agent in deciding tool usage.

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

finish_exam_day_modeC

Finish exam day mode

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the action without explaining effects, side effects, reversibility, or any required permissions.

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

Conciseness2/5

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

The description is extremely concise (4 words) but at the cost of being under-specified. It does not earn its place by providing value beyond the tool name.

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 lack of annotations, output schema, and param details, the description is severely incomplete. It fails to explain what 'finish exam day mode' entails, what return values to expect, or any side effects.

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?

The input schema has 0 parameters with 100% coverage, so the baseline is 3. The description does not add parameter information, but none is needed due to the empty schema.

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

Purpose2/5

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

The description 'Finish exam day mode' is a tautology of the tool name, just replacing underscores with spaces. It does not add any specific verb or resource clarification, and fails to distinguish it from sibling tools like 'check_exam_day'.

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, when not to use it, or any alternatives. There is no context about prerequisites or intended use cases.

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

get_account_infoB

Extract account information by parsing Next.js flight data from a rendered page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions parsing from a rendered page, implying a read operation, but doesn't disclose behavioral traits like whether it requires authentication, potential rate limits, error conditions, or what format the extracted information is in. This is a significant gap for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action ('Extract account information') and provides necessary context ('parsing Next.js flight data from a rendered page') without 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?

Given the complexity (parsing flight data from a rendered page), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what account information is extracted, the return format, or error handling, leaving critical gaps for an AI agent to use it effectively.

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 tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds value by implying the tool operates on an implicit rendered page context, but doesn't specify if this is a default or requires prior setup. Baseline is 4 for zero parameters, as no param info is needed.

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's purpose with a specific verb ('Extract') and resource ('account information'), and specifies the source ('parsing Next.js flight data from a rendered page'). However, it doesn't explicitly differentiate from sibling tools like 'get_student_card_screenshot' or 'verify_authentication', which might also retrieve account-related data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a rendered page), exclusions, or compare to siblings like 'get_student_card_screenshot' for visual account data or 'verify_authentication' for auth status.

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

get_calendar_eventsC

Get calendar events with advanced options

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoPredefined period (optional, overrides from/to dates). Use "today" for single day queries.
to_dateNoEnd date in YYYY-MM-DD format (optional). Must be at least 1 day after from_date when both are provided.
from_dateNoStart date in YYYY-MM-DD format (optional). If only from_date is provided, it will be treated as a single day.
calendar_typeNoType of calendar to retrieve (personal or school)personal

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'advanced options' but doesn't disclose any behavioral traits such as authentication requirements, rate limits, pagination, error handling, or what 'advanced' means operationally. The description is too vague to inform the agent about how the tool behaves beyond the basic action.

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, efficient sentence that is front-loaded with the core action. However, 'advanced options' is ambiguous and doesn't earn its place by adding clear value, slightly reducing conciseness. Overall, it's brief but could be more precise.

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 4 parameters, no annotations, and no output schema, the description is incomplete. It fails to compensate for the lack of structured data by not explaining return values, error conditions, or the meaning of 'advanced options'. For a tool with multiple parameters and no output schema, this leaves significant gaps in understanding.

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 100%, providing detailed descriptions for all 4 parameters including enums and defaults. The description adds no additional parameter semantics beyond the schema, as 'advanced options' is too vague to map to specific parameters. With high schema coverage, the baseline score of 3 is appropriate.

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

Purpose3/5

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

The description states the tool 'Get calendar events with advanced options' which provides a basic verb+resource combination ('Get calendar events'), but lacks specificity about what 'advanced options' entails. It distinguishes from obvious non-calendar siblings but doesn't clearly differentiate from potential calendar-related tools like 'get_schedule' or 'test_calendar_endpoints'.

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. The description mentions 'advanced options' but doesn't specify what makes it advanced compared to other tools like 'get_schedule' or when to prefer one over the other. There's no mention of prerequisites, context, or exclusions.

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

get_calendar_filtersB

Get lobby calendar filter list

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It fails to specify that the tool is read-only, what the response looks like, or any side effects. For a simple getter, more clarity on return type would help.

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 concise sentence, but it could benefit from a bit more detail without being verbose. It avoids unnecessary words.

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 no parameters, no annotations, and no output schema, the description is minimally adequate. However, for a tool interacting with a lobby calendar, specifying what kind of filters are returned 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 tool has no parameters (0), and schema description coverage is 100%. Per guidelines, baseline is 4 for zero parameters. The description adds no parameter info, which is acceptable.

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 verb 'Get' and the resource 'lobby calendar filter list', which distinguishes it from sibling tools like get_calendar_events or get_schedule. However, it does not elaborate on what 'filters' means in this 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 its many siblings. There is no mention of prerequisites, 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.

get_designated_schoolB

Fetch designated school (指定校) recommendations from the secure student portal (/mypage/designated_school/index)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for search results (optional)
freewordNoFree word search (optional)
html_onlyNoReturn raw #main HTML instead of parsed data (optional, default: false)
prefecturesNoPrefecture filter codes (optional, e.g. [13] for Tokyo)
school_nameNoSchool name filter (optional)
faculty_nameNoFaculty name filter (optional)
school_typesNoSchool type codes: 1=university, 2=junior college, 3=vocational (optional)
freeword_exactNoMatch free word exactly (optional)
school_name_exactNoMatch school name exactly (optional)
faculty_name_exactNoMatch faculty name exactly (optional)
selection_deadline_beforeNoSelection deadline on or before YYYY/MM/DD or YYYY-MM-DD (optional)

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description only mentions 'secure student portal' implying authentication, but fails to disclose other behavioral traits like side effects, rate limits, or error handling.

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

Conciseness5/5

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

One sentence, front-loaded with action and resource, no wasted words. Perfectly concise.

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 11 parameters and no output schema, the description is too brief. It lacks information on return format, pagination, or error conditions, making it incomplete for the tool's complexity.

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 100%, so the schema already explains all parameters. The description adds no additional meaning beyond the schema, meeting the baseline.

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 'Fetch designated school (指定校) recommendations' with a specific verb and resource, and distinguishes itself from sibling tools as no other tool fetches designated school recommendations.

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?

No explicit guidance on when to use this tool versus alternatives. However, since there are no directly competing sibling tools, the lack is acceptable but not ideal.

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

get_exam_otpC

Get one-time password for exam

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.6/5.0
Behavior1/5

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

No annotations are provided, so the description must bear the full burden of disclosing behaviors. It fails to mention whether the OTP is consumed, expires, or any side effects. It also doesn't state if authentication or session is required.

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 extremely concise at five words, but it sacrifices informativeness. While not verbose, it doesn't earn its place by providing enough detail for correct invocation.

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 no output schema, the description should explain how the OTP is returned (e.g., as a string, in a response field) and for what purpose. It is incomplete and leaves critical gaps about the tool's behavior.

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?

There are no parameters, and schema coverage is 100% (empty schema). The description adds no meaning about implicit inputs (e.g., current user/session), which would be valuable. Baseline 4 reduced due to lack of context on what the tool relies on.

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

Purpose4/5

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

The description uses a specific verb ('Get') and resource ('one-time password for exam'), clearly indicating the tool's purpose. However, it does not distinguish from siblings like 'verify_authentication' or 'interactive_login', which might be related.

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, nor any prerequisites (e.g., having an active exam session or being authenticated). The agent is left to infer context.

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

get_interest_weightsB

Get interest weight scale definitions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It only states the action, omitting details like authentication requirements, data freshness, or whether results are cached.

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, direct and front-loaded. No wasted words.

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 no output schema, the description should at least hint at the return structure (e.g., list of definitions). It does not, leaving the agent without a clear expectation of what 'interest weight scale definitions' entails.

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, schema coverage is 100%, and the description adds context by specifying what 'weights' are being retrieved (scale definitions). Baseline 4 is justified as the description gives meaning beyond the empty 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 uses a specific verb ('Get') and resource ('interest weight scale definitions'), clearly indicating the action and object. It distinguishes from related sibling 'get_user_interests' by referencing 'weight scale' rather than interests.

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 like 'get_user_interests'. No prerequisites or contextual hints provided.

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

get_learning_resourcesC

Get learning resources and study materials

ParametersJSON Schema
NameRequiredDescriptionDefault
subjectNoFilter by subject (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description only says 'get,' implying read-only, but does not disclose any behavioral traits, authorization needs, 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.

Conciseness4/5

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

The description is a single, concise sentence with no fluff, though it could include more detail without losing conciseness.

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 details about return values or the nature of learning resources. For a tool with one optional parameter and no output schema, more context would help the agent use it effectively.

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 coverage is 100%, with one optional parameter 'subject' already described in the schema. The description adds no extra meaning, earning a baseline score of 3.

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 retrieves learning resources and study materials. It distinguishes from siblings like get_schedule or get_news, though the term 'learning resources' remains somewhat vague.

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. With many sibling tools, explicit context or conditions for use are missing.

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

get_navigation_menusB

Get main navigation menu list

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It does not state whether the operation is read-only, requires authentication, or has side effects. Being a 'get' operation, it is likely safe, but the description fails to confirm this or any other behaviors.

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 five words, front-loading the core purpose. It wastes no words but is slightly under-explained; a bit more detail (e.g., 'returns a list of menu items') would improve clarity without adding bulk.

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 no parameters, no output schema, and no annotations, the description is minimal. It hints at a list return but does not specify the structure or content. For a simple retrieval tool, this is adequate but has gaps; the user may need to infer response format from the name.

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 tool has zero parameters, and schema description coverage is 100% (vacuous). The baseline for no parameters is 4. The description adds value by clarifying the resource type ('main navigation menu list'), but it does not elaborate on parameter details since there are none.

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 'Get main navigation menu list' clearly states the verb and resource, making the basic purpose obvious. However, it does not distinguish this tool from sibling tools like 'get_calendar_events' or 'get_news', which also fetch resources. It lacks sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions. The user must infer usage from the tool name alone.

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

get_newsC

Retrieve school news

ParametersJSON Schema
NameRequiredDescriptionDefault
tabNoNews tab: 'all' (default) or 'mentor' for mentor announcementsall
sortNoSort order: 'newest' (default), 'oldest', 'title-asc', 'title-desc'
limitNoMaximum number of news items to retrieve (optional, default: 10)
categoryNoFilter by category (optional)

TDQS

C2.4/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only says 'Retrieve', implying a read operation, but does not explicitly state that it is non-destructive, requires authentication, or has any side effects. Minimal behavioral disclosure.

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

Conciseness2/5

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

Extremely concise (one short sentence) but at the cost of missing critical details like filtering, sorting, and return structure. It is under-specified rather than efficiently complete.

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?

No output schema, no annotations, and description does not cover return format, pagination, or error handling. For a tool with 4 parameters and many siblings, it is incomplete.

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 coverage is 100%, with each parameter having a description. The tool description adds no additional meaning beyond the schema, so baseline of 3 is appropriate.

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

Purpose3/5

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

Description states 'Retrieve school news', which is a clear verb+resource but lacks specificity. It does not distinguish from sibling 'get_news_detail' or mention that it can filter by tab or category. Adequate but vague.

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 like 'get_news_detail' or 'download_news_attachment'. The description provides no usage context or exclusions.

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

get_news_detailC

Retrieve detailed information for a specific news article

ParametersJSON Schema
NameRequiredDescriptionDefault
newsIdYesThe ID of the news article to retrieve
markAsReadNoMark the news article as read (optional, default: false)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions retrieving details and implies optional marking as read via the parameter, but fails to address critical aspects like authentication requirements, error handling, rate limits, or what 'detailed information' includes (e.g., fields returned). This leaves significant gaps for an agent to understand the tool's behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, making it easy to parse quickly, with every part contributing to the core purpose.

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 lack of annotations and output schema, the description is incomplete for a tool that retrieves detailed data. It doesn't specify the format or content of the returned information, potential side effects (e.g., marking as read), or error conditions. For a retrieval tool with behavioral implications, this leaves the agent under-informed.

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 100%, so the schema fully documents both parameters (newsId and markAsRead). The description adds no additional meaning beyond what's in the schema, such as explaining parameter interactions or providing examples. This meets the baseline for high schema coverage but doesn't enhance parameter understanding.

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 verb 'retrieve' and the resource 'detailed information for a specific news article', making the purpose unambiguous. However, it doesn't explicitly differentiate from its sibling 'get_news' (which likely lists articles) or 'mark_news_as_read' (which handles read status updates), missing full sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_news' or 'mark_news_as_read'. It lacks context about prerequisites (e.g., authentication needs) or exclusions, offering only a basic functional statement without usage scenarios.

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

get_notificationsC

Get notification messages

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states a simple read operation without mentioning side effects, permissions, rate limits, or return format. This is insufficient for an agent to understand behavior.

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 short sentence, which is concise but does not earn its place by adding significant value beyond the tool name. It could be expanded to provide more guidance without being 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 no parameters, no output schema, and no annotations, the description is incomplete. It fails to specify the scope of notifications or any filtering, leaving the agent without sufficient context to use the tool effectively.

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?

There are zero parameters, so schema coverage is 100% vacuously. The description adds no extra meaning beyond the schema—no explanation of what notifications are retrieved (all, unread, etc.). Baseline is 3 but lacks context.

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

Purpose3/5

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

The description 'Get notification messages' states a verb and a resource, adding minimal value over the tool name 'get_notifications'. It vaguely conveys the purpose but does not differentiate from sibling tools like 'get_news' or 'get_unread_news_info'.

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. The description lacks context about how notifications differ from news or other messaging tools, leaving the agent without direction.

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

get_required_coursesB

Retrieve required courses information with detailed progress tracking

ParametersJSON Schema
NameRequiredDescriptionDefault
gradeNoFilter by grade level (1, 2, or 3) (optional)
categoryNoFilter by curriculum category (e.g., "国語", "数学", "英語") (optional)
semesterNoFilter by term year (e.g., "2024", "2025") (optional)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Retrieve' implies a read-only operation, it doesn't specify authentication requirements, rate limits, pagination behavior, error conditions, or what 'detailed progress tracking' actually entails in the 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?

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a retrieval tool with three optional parameters.

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 read-only tool with full schema coverage but no output schema, the description is minimally adequate. It states what the tool does but lacks important context about authentication needs, response format, and how it differs from similar educational tools in the sibling set.

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?

The description adds no parameter-specific information beyond what's already in the schema (which has 100% coverage). It mentions 'detailed progress tracking' which might relate to the return data, but doesn't explain how the three optional parameters interact or affect the results.

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's purpose with a specific verb ('Retrieve') and resource ('required courses information'), and adds meaningful context about 'detailed progress tracking'. It doesn't explicitly differentiate from sibling tools, but since none of the siblings appear to retrieve course information, this is sufficiently clear.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or how it relates to sibling tools like 'get_schedule' or 'get_account_info' that might also provide educational information.

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

get_scheduleB

Get school schedule for a specific date (backward compatibility)

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate in YYYY-MM-DD format (optional, defaults to today)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'backward compatibility,' hinting at legacy behavior, but doesn't disclose critical traits like authentication requirements, rate limits, error handling, or what happens if no schedule exists for the date. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('Get school schedule for a specific date') and adds a useful note on backward compatibility. Every word earns its place, with no wasted text or 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 tool's low complexity (1 optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on authentication, error cases, or return format, which are important for a tool interacting with school data. Without annotations or output schema, more context would improve completeness.

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 100%, with the parameter 'date' fully documented in the schema as optional with a default to today in YYYY-MM-DD format. The description adds minimal value beyond this, only implying date specificity without providing additional syntax or format details. Baseline 3 is appropriate when the schema does the heavy lifting.

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 verb ('Get') and resource ('school schedule'), specifying it's for a specific date. It distinguishes from siblings like get_calendar_events by focusing on school schedules rather than general calendar events. However, it doesn't explicitly differentiate from get_required_courses, which might be related.

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 retrieving school schedules on specific dates, with the backward compatibility note suggesting it might be a legacy endpoint. It doesn't provide explicit guidance on when to use this versus alternatives like get_calendar_events or get_required_courses, nor does it mention prerequisites like authentication.

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

get_schoolingA

Fetch schooling schedule from the secure student portal (/mypage/schooling/top)

ParametersJSON Schema
NameRequiredDescriptionDefault
html_onlyNoReturn raw #main HTML instead of parsed schooling data (optional, default: false)

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden. It mentions fetching from a specific portal path and offers an optional raw HTML mode, but does not disclose authentication requirements, side effects, or output format beyond what is implied.

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, efficient sentence that conveys the core functionality without extraneous words or 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 no output schema, the description should hint at what the 'parsed schooling data' includes or its structure. It mentions the source URL and optional raw HTML mode, but lacks details on typical output fields or expected behavior when authentication fails, leaving some gaps for a simple tool.

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 coverage is 100% for the single parameter 'html_only', which already has a clear description. The tool description adds no additional meaning or context for this parameter, meeting the baseline.

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 explicitly states the action ('Fetch') and the resource ('schooling schedule') with a specific source URL, making the purpose clear and distinguishable from siblings like 'get_schedule' and 'get_schooling_detail'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'get_schedule' or 'get_schooling_detail'. The sibling list includes several similar tools, and the lack of usage context is a notable gap.

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

get_schooling_detailA

Fetch schooling application details (申し込み内容) by entry ID from the secure portal

ParametersJSON Schema
NameRequiredDescriptionDefault
entry_idYesSchooling entry ID (entryId query parameter)
html_onlyNoReturn raw #main HTML instead of parsed detail data (optional, default: false)

TDQS

A4/5.0
Behavior3/5

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

The description indicates the tool fetches details and mentions an optional html_only parameter, which adds some transparency. However, without annotations, it does not disclose authentication dependencies, error behavior, or security constraints beyond 'secure portal'.

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, well-structured sentence that efficiently conveys the tool's purpose and key parameter usage. No extraneous information.

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

Completeness4/5

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

For a simple retrieval tool with two parameters and no output schema, the description adequately covers the main functionality. It could be improved by noting the return structure or common error conditions, but the current level is sufficient for basic selection.

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

Parameters4/5

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

The description adds meaning beyond the schema by explaining that entry_id identifies the application and that html_only returns raw HTML instead of parsed data. This enriches the schema's basic parameter 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 (Fetch), the resource (schooling application details), and the unique identifier (entry ID). It implicitly distinguishes from sibling tools like get_schooling (which likely lists applications).

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 use when needing details for a specific entry, but does not explicitly contrast with list retrieval or mention when not to use it. No alternative tool is named, though the presence of get_schooling suggests context.

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

get_student_card_screenshotB

Capture a screenshot of the student ID card by following the secure portal redirect flow

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions a 'secure portal redirect flow,' hinting at authentication or multi-step processes, but doesn't detail what this entails (e.g., user interaction, timeouts, or side effects). For a tool that likely involves sensitive data capture, this is insufficient.

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, efficient sentence that front-loads the core action ('Capture a screenshot') and adds necessary context ('by following the secure portal redirect flow'). Every word contributes to understanding without waste.

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 tool's complexity (involving screenshots and redirect flows) and lack of annotations or output schema, the description is minimally adequate. It states what the tool does but lacks details on behavior, output format, or error handling, leaving gaps for an AI agent.

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 has 0 parameters with 100% coverage, so there's no need for parameter documentation in the description. The description appropriately avoids discussing parameters, earning a baseline score of 4 for not adding unnecessary information.

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 ('Capture a screenshot') and target resource ('student ID card'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its many siblings (like get_account_info or get_schedule), which would require a 5.

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

Usage Guidelines2/5

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

The description mentions 'following the secure portal redirect flow,' which provides some context about the process, but it doesn't offer explicit guidance on when to use this tool versus alternatives (e.g., when a screenshot is needed vs. other student data tools). No exclusions or prerequisites are stated.

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

get_unread_news_infoA

Get unread news information including count and important news flags

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states that the tool returns count and important flags but does not disclose whether it is read-only, if any state changes occur, or any authentication needs. For a read operation, more clarity on side effects (or lack thereof) would be beneficial.

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?

A single, direct sentence with no unnecessary words. Front-loaded with the primary purpose, making it highly efficient.

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

Completeness4/5

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

For a simple tool with no parameters and no output schema, the description is largely adequate. However, it could mention that the tool does not modify state (important since siblings include mark_news_as_read). Still, given the simplicity, a score of 4 is reasonable.

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 tool has zero parameters, and schema coverage is 100%. The description does not need to add parameter information since none exist. Per the rubric, baseline for 0 parameters is 4, and the description meets this adequately.

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 retrieves unread news information including count and important flags. The verb 'Get' and resource 'unread news info' are specific and differentiated from siblings like get_news (likely all news) and get_news_detail (single item).

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?

No explicit guidance on when to use this tool versus alternatives like get_news or mark_news_as_read. The context of 'unread' implies use when only unread items are needed, but no when-not or exclusion criteria are provided.

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

get_user_interestsB

Get user interest tags (optionally with icon information)

ParametersJSON Schema
NameRequiredDescriptionDefault
with_iconNoWhether to include icon information (optional, default: false)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It only states 'get', implying read-only, but lacks details on authorization, error conditions, or default when no interests exist.

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 with no unnecessary words, efficiently conveying the core functionality.

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 optional parameter, the description is adequate but lacks details on return format or expected output, relying on the agent to infer.

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 coverage is 100%, and the description adds no meaning beyond the schema's parameter description. Baseline score of 3 applies as no additional insight is provided.

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 retrieves user interest tags with an optional icon inclusion. It distinguishes from 'get_interest_weights' which retrieves weights, but could be more explicit about the return data type.

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 provided on when to use this tool versus alternatives like 'get_interest_weights', no prerequisites, and no context for typical use cases.

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

health_checkB

Check if N Lobby API connection is working

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions checking API connectivity but doesn't elaborate on what 'working' entails (e.g., response time, status codes), potential side effects, error handling, or authentication requirements. This leaves significant gaps in understanding the tool's behavior.

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

Conciseness5/5

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

The description is a single, clear sentence: 'Check if N Lobby API connection is working'. It is front-loaded with the core action, wastes no words, and efficiently communicates the essential function without unnecessary elaboration, making it highly concise and well-structured.

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 tool's simplicity (0 parameters, no output schema) and lack of annotations, the description is minimally adequate. It states what the tool does but omits details like expected output format, error conditions, or integration with sibling tools. For a basic connectivity check, this is passable but leaves room for improvement in contextual guidance.

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 tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for this scenario is 4, as the description appropriately avoids redundant information while clearly stating the tool's purpose without parameter clutter.

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's purpose: 'Check if N Lobby API connection is working'. It specifies the action ('Check') and the target ('N Lobby API connection'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'debug_connection' or 'verify_authentication', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'debug_connection', 'test_calendar_endpoints', and 'verify_authentication', there's no indication of specific contexts, prerequisites, or exclusions for 'health_check'. This lack of comparative guidance limits its utility for an AI agent.

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

interactive_loginA

Open browser for manual login to N Lobby (no credentials required)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the action ('Open browser') and constraint ('no credentials required'), but lacks details on what happens after browser opening (e.g., user interaction required, timeout behavior, or success/failure indicators). It doesn't mention side effects like browser pop-ups or session implications.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core action ('Open browser for manual login') and includes essential context ('to N Lobby', 'no credentials required'). There is zero wasted verbiage, and every word contributes to understanding the tool's function.

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 no annotations and no output schema, the description provides basic purpose but lacks completeness for an interactive authentication tool. It doesn't explain what the tool returns (e.g., success status, session tokens), user interaction requirements, or error handling. For a tool that likely involves external browser processes, more behavioral context would be helpful.

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 has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce unnecessary parameter information.

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 specific action ('Open browser for manual login') and target resource ('N Lobby'), distinguishing it from sibling tools like 'check_cookies' or 'verify_authentication' which handle authentication differently. It explicitly mentions 'no credentials required', which further clarifies its unique purpose.

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 context by specifying 'manual login' and 'no credentials required', suggesting this tool is for initiating authentication when credentials aren't provided programmatically. However, it doesn't explicitly state when to use this versus alternatives like 'set_cookies' or 'verify_authentication', or mention any prerequisites or exclusions.

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

login_helpB

Get help and troubleshooting tips for N Lobby login

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoYour email address (optional, for personalized help)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get help and troubleshooting tips' suggests a read-only, informational operation, it doesn't clarify what form the help takes (text, links, step-by-step guidance), whether it requires authentication, if it has rate limits, or what happens when the optional email parameter is provided. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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, efficient sentence that directly states the tool's purpose without any unnecessary words. It's appropriately sized for a simple help tool and front-loads the essential information. Every word earns its place.

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

Completeness3/5

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

For a simple informational tool with one optional parameter and no output schema, the description is minimally adequate. However, given the lack of annotations and the presence of multiple sibling tools addressing similar login concerns, the description should do more to clarify this tool's specific role and what kind of help it provides versus alternatives.

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?

The description provides no parameter information, but the input schema has 100% description coverage with a single optional 'email' parameter clearly documented as 'Your email address (optional, for personalized help)'. With high schema coverage and only one parameter, the baseline score of 3 is appropriate - the schema does the heavy lifting, and the description doesn't add value beyond what's already in the structured data.

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's purpose as 'Get help and troubleshooting tips for N Lobby login' - a specific verb ('Get help and troubleshooting tips') applied to a specific resource ('N Lobby login'). However, it doesn't distinguish this tool from potential alternatives like 'debug_connection' or 'verify_authentication' among the sibling tools, which might also address login issues.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'debug_connection', 'verify_authentication', and 'interactive_login' that might address similar login-related concerns, there's no indication of when this help-focused tool is preferable versus when those diagnostic or action-oriented tools should be used instead.

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

mark_news_as_readC

Mark news articles as read

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesArray of news article IDs to mark as read

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'mark as read' implies a mutation/write operation, it doesn't specify whether this requires specific permissions, if changes are reversible, what happens on success/failure, or any rate limits. The description lacks crucial behavioral context for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and gets straight to the point without unnecessary elaboration.

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?

For a mutation tool with no annotations and no output schema, the description is inadequate. It doesn't explain what happens after marking articles as read, whether there are side effects, what the return value might be, or any error conditions. The context signals indicate this is a non-trivial operation (changing state) that needs more complete documentation.

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?

The schema description coverage is 100%, with the parameter 'ids' clearly documented as 'Array of news article IDs to mark as read'. The description doesn't add any meaningful semantic information beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('mark as read') and the resource ('news articles'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from potential siblings like 'get_news' or 'get_news_detail' that might have overlapping domains.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites (e.g., needing authentication), when not to use it, or how it relates to sibling tools like 'get_news' or 'get_news_detail'.

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

set_cookiesC

Set authentication cookies for N Lobby access

ParametersJSON Schema
NameRequiredDescriptionDefault
cookiesYesCookie string from authenticated N Lobby session

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool sets cookies for authentication, implying a mutation that may affect session state, but fails to detail critical aspects like whether this overwrites existing cookies, requires specific permissions, or has side effects like logging out other sessions.

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, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.

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 lack of annotations and output schema, the description is incomplete for an authentication-related mutation tool. It omits details on behavioral traits (e.g., persistence, error handling), return values, or how it integrates with sibling tools, leaving significant gaps for an agent to use it correctly.

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?

The input schema has 100% description coverage, documenting the 'cookies' parameter as a string from an authenticated session. The description adds no additional meaning beyond this, such as format examples or validation rules, so it meets the baseline for high schema coverage.

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 ('Set') and the resource ('authentication cookies for N Lobby access'), making the purpose understandable. However, it does not explicitly distinguish this tool from sibling tools like 'check_cookies' or 'verify_authentication', which limits differentiation.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'interactive_login' or 'verify_authentication'. It lacks context on prerequisites (e.g., needing an authenticated session first) or exclusions, leaving usage unclear.

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

test_calendar_endpointsC

Test both personal and school calendar endpoints

ParametersJSON Schema
NameRequiredDescriptionDefault
to_dateNoEnd date in YYYY-MM-DD format (optional). Must be at least 1 day after from_date when both are provided.
from_dateNoStart date in YYYY-MM-DD format (optional). If only from_date is provided, it will be treated as a single day.

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states it tests endpoints without disclosing behavioral traits. It doesn't explain what 'test' entails (e.g., side effects, output format, error handling), making it insufficient for a tool with potential operational impacts.

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, efficient sentence that directly states the tool's scope (personal and school calendars). It's appropriately sized and front-loaded, with no wasted words, though it could be more informative.

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 complexity of a testing tool with no annotations and no output schema, the description is incomplete. It lacks details on what testing involves, expected results, or how it integrates with the system, failing to compensate for missing structured data.

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 100%, so the schema fully documents the two optional date parameters. The description adds no meaning beyond the schema, as it doesn't mention parameters or their role in testing. Baseline 3 is appropriate since the schema handles parameter semantics.

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

Purpose3/5

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

The description states the tool tests calendar endpoints, which is a clear purpose, but it's vague about what 'test' means (e.g., validation, performance, functionality). It distinguishes from siblings like 'get_calendar_events' by implying testing rather than data retrieval, but lacks specificity on the verb's action.

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. It doesn't mention prerequisites (e.g., authentication), context for testing, or compare to siblings like 'debug_connection' or 'test_page_content', leaving usage ambiguous.

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

test_page_contentC

Test page content retrieval and show sample content

ParametersJSON Schema
NameRequiredDescriptionDefault
lengthNoNumber of characters to show (default: 1000)
endpointNoEndpoint to test (default: /news)/news

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description mentions 'test' and 'show sample content', which implies this is for testing/diagnostic purposes rather than production use, but doesn't specify whether this requires authentication, what kind of content is retrieved, or any rate limits. It provides minimal behavioral context beyond the basic purpose.

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, efficient sentence that states the core purpose without unnecessary words. It's appropriately concise for a simple tool, though it could be slightly more specific about what 'test' entails. The structure is straightforward with no wasted verbiage.

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?

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'test' means operationally, what format the sample content takes, whether authentication is required, or what the expected output looks like. Given the testing context and lack of structured metadata, the description should provide more operational context.

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 100%, so the input schema already fully documents both parameters (endpoint and length) with descriptions and defaults. The description doesn't add any parameter semantics beyond what's in the schema - it doesn't explain what 'endpoint' means in context or provide examples beyond the default '/news'. The baseline of 3 is appropriate when the schema does all the parameter documentation work.

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

Purpose3/5

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

The description states the tool's purpose as 'Test page content retrieval and show sample content', which is clear but somewhat vague. It specifies the action (retrieval and showing) and resource (page content), but doesn't distinguish it from similar tools like 'get_news' or 'get_news_detail' in the sibling list. The purpose is understandable but lacks specificity about what makes this tool unique.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_news' and 'get_news_detail' that might retrieve similar content, there's no indication of when this testing tool is appropriate versus production data retrieval tools. The description lacks any context about use cases or exclusions.

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

test_trpc_endpointC

Test specific tRPC endpoint with detailed response

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNotRPC method to test (e.g., news.getUnreadNewsCount, user.updateLastAccess)user.updateLastAccess
paramsNoJSON string of parameters (optional)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'detailed response' but doesn't specify what that entails (e.g., response format, error handling, or side effects). For a testing tool with potential mutations (e.g., 'user.updateLastAccess'), this lack of detail on safety or behavior is a significant gap.

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, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded and appropriately sized for its purpose, with no wasted information.

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 complexity of testing endpoints (which may involve mutations) and the absence of annotations and output schema, the description is incomplete. It doesn't explain the return values, error conditions, or behavioral implications, leaving gaps for an AI agent to understand how to use this tool effectively.

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?

The input schema has 100% description coverage, with clear documentation for both parameters ('method' and 'params'). The description doesn't add any additional meaning beyond what the schema provides, such as examples of valid methods beyond those in the schema or clarification on 'params' usage. Baseline 3 is appropriate since the schema does the heavy lifting.

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's purpose: 'Test specific tRPC endpoint with detailed response.' It specifies the verb ('test') and resource ('tRPC endpoint'), but doesn't distinguish it from sibling tools like 'test_calendar_endpoints' or 'test_page_content' beyond mentioning 'tRPC' specifically.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over other testing tools like 'test_calendar_endpoints' or 'test_page_content', nor does it specify prerequisites such as authentication requirements or appropriate contexts for testing tRPC endpoints.

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

update_last_accessB

Update the last access timestamp for the current user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description bears full burden for behavioral disclosure. It indicates a write operation but provides no details on side effects, idempotency, permissions, or return behavior.

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

Conciseness5/5

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

The description is a single concise sentence with no redundancy or waste.

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

Completeness3/5

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

The tool is simple with no parameters, so the description is adequate. However, it could add context on typical use cases or confirm that authentication is implied.

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?

The input schema has no parameters, and schema description coverage is 100%. The description adds no parameter-specific information, but the baseline is 3 due to full coverage.

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 'Update' and the specific resource 'last access timestamp', and it distinguishes from sibling tools since no other tool updates last access.

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 vs. alternatives. Sibling tools include many getters and authentication tools, but no explicit when/when-not advice is given.

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

verify_authenticationB

Verify authentication status and cookie synchronization across all clients

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does ('verify' and 'synchronization') but lacks critical details: whether this is a read-only operation, if it performs any mutations (e.g., refreshing tokens), what the output looks like (e.g., success/failure status, error messages), or any side effects (e.g., logging, rate limits). For a tool with zero annotation coverage, this is a significant gap in transparency.

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, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('verify authentication status', 'cookie synchronization', 'across all clients') adds value, and there is no redundancy or fluff. It's appropriately sized for a no-parameter tool.

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 complexity (authentication/cookie verification across clients), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'verify' entails (e.g., checks validity, returns boolean), what 'synchronization' means (e.g., ensures consistency, reports mismatches), or the scope of 'all clients' (e.g., web/mobile, active sessions). For a tool with no structured behavioral data, more detail is needed to guide the agent effectively.

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 tool has 0 parameters, and schema description coverage is 100% (though trivial since there are no parameters). The description doesn't need to explain parameters, so it meets the baseline expectation. No additional parameter information is required or provided.

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's purpose with specific verbs ('verify authentication status' and 'cookie synchronization') and identifies the resource ('across all clients'). It distinguishes from obvious siblings like 'check_cookies' (which likely checks cookie values rather than authentication status) and 'health_check' (which might be broader system health). However, it doesn't explicitly differentiate from all potential overlapping tools like 'debug_connection'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether authentication must be initialized first), exclusions (e.g., when other tools like 'check_cookies' might be more appropriate), or specific scenarios (e.g., troubleshooting login issues vs. routine checks). The agent must infer usage from the purpose alone.

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. Dates show when Glama detected each change.

  1. 16 tool updatesv1.6.0
    • Addedcheck_exam_day
    • Addeddownload_news_attachment
    • Addedfinish_exam_day_mode
    • Addedget_calendar_filters
    • Addedget_designated_school
    • Addedget_exam_otp
    • Addedget_interest_weights
    • Addedget_learning_resources
    • Addedget_navigation_menus
    • Changedget_news1 field changed
      • addedInput schema / properties / tab
        Added value: +{
        +  "default": "all",
        +  "description": "News tab: 'all' (default) or 'mentor' for mentor announcements",
        +  "enum": [
        +    "all",
        +    "mentor"
        +  ],
        +  "type": "string"
        +}
    • Addedget_notifications
    • Addedget_schooling
    • Addedget_schooling_detail
    • Addedget_unread_news_info
    • Addedget_user_interests
    • Addedupdate_last_access
  2. 3 tool updatesv1.0.0
    • Addedget_account_info
    • Addedget_student_card_screenshot
    • Changedmark_news_as_read3 fields changed
      • removedInput schema / properties / id
        Removed value: -{
        -  "description": "The ID of the news article to mark as read",
        -  "type": "string"
        -}
      • addedInput schema / properties / ids
        Added value: +{
        +  "description": "Array of news article IDs to mark as read",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "id"
        -]New value: +[
        +  "ids"
        +]
  3. 16 tool updates
    • First observedcheck_cookies
    • First observeddebug_connection
    • First observedget_calendar_events
    • First observedget_news
    • First observedget_news_detail
    • First observedget_required_courses
    • First observedget_schedule
    • First observedhealth_check
    • First observedinteractive_login
    • First observedlogin_help
    • First observedmark_news_as_read
    • First observedset_cookies
    • First observedtest_calendar_endpoints
    • First observedtest_page_content
    • First observedtest_trpc_endpoint
    • First observedverify_authentication

TDQS

C2.9/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but there is some overlap between testing/debugging tools (test_calendar_endpoints, test_page_content, test_trpc_endpoint, debug_connection) and between get_schedule and get_schooling. Overall, the descriptions help differentiate them.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern (e.g., check_cookies, get_account_info, mark_news_as_read). No mixed casing or inconsistent verb usage across the set.

Tool Count2/5

At 33 tools, the set is quite large. Many tools are for debugging/testing (e.g., test_*, debug_connection, health_check), which are not core to the domain and could be consolidated. This feels excessive for an MCP server.

Completeness3/5

The server covers key areas like authentication, news, calendar, schooling, exams, and interests. However, the inclusion of many testing tools suggests the surface is not purely domain-focused. Some core operations (e.g., updating interests) are missing, but the overall coverage is reasonable.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Model Context Protocol server for Studex tools, notifications, and profile integrations

  • The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.

  • The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.

  • The Box MCP server is a secure gateway that connects external AI agents to enterprise content stored in Box, enabling agent-based document access, advanced search, and multi-file analysis while preserving Box security policies. It provides capabilities including keyword search, Box AI-powered Q&A across files, metadata extraction, file management, and authentication, all validated against Box's granular permission controls. The server integrates with major AI platforms like Anthropic Claude, Microsoft Copilot Studio, and Mistral Le Chat, and is available both as a Box-hosted remote server and a self-hosted open-source Python project.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A comprehensive Model Context Protocol server providing educational resources and curriculum planning support with intelligent filtering across multiple educational APIs.
    11
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    A Model Context Protocol server that provides intelligent file reading and semantic search capabilities across multiple document formats with security-first access controls.
    7
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/minagishl/nlobby-cli'

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