The N Lobby MCP Server provides secure access to N Lobby school portal data through a Model Context Protocol (MCP) compliant interface.
Secure Authentication: Interactive browser-based login, manual cookie setup, and session management with authentication verification
Access School Information: Retrieve announcements, news articles, daily schedules, and learning resources with ability to mark news as read
Academic Management: Get comprehensive required course information with progress tracking, credits, grades, and filtering by grade level, category, or semester
Calendar Events: Access personal and school calendars with flexible filtering by predefined periods (today, week, month) or custom date ranges
User Profile Access: Retrieve current user-specific information with support for different roles (students, parents, staff) based on email domains
Advanced Features: Filter and sort data with options for news sorting, course filtering, and date range selection
Troubleshooting Tools: Debug authentication, test endpoints, verify system status, check API connection health, and test page content retrieval
MCP Client Integration: Compatible with various MCP-enabled AI assistants like Cursor and Claude Desktop for seamless setup
Supports environment variable configuration for customizing the N Lobby base URL and MCP server settings
Hosts the repository for development installation of the nlobby-mcp server
Supports configuration for Claude Desktop on macOS systems via specific configuration paths
Provides installation and distribution of the nlobby-mcp package to enable easy setup of the MCP server
Used for package management and running development scripts for the MCP server
Enables communication with N Lobby's tRPC endpoints to retrieve and interact with school portal data including news, schedules, and academic information
The MCP server is built with TypeScript, providing type-safe access to N Lobby's API endpoints and data structures
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@N Lobby MCP Servershow me today's class schedule"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
N Lobby MCP Server
Note: The developer assumes no responsibility for any damages that may occur from using this MCP server. This software was developed for educational purposes and its operation is not guaranteed.
A Model Context Protocol (MCP) server for accessing N Lobby school portal data. This server provides secure access to school information including announcements, schedules, and learning resources through browser-based authentication.
Features
Browser-based Authentication: Interactive login via automated browser window
Cookie-based Session Management: Secure session handling with NextAuth.js cookies
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
MCP Protocol Compliance: Full compatibility with MCP-enabled AI assistants
Advanced Testing Tools: Built-in debugging and testing capabilities
Related MCP server: MCP Server Sample
Installation
Option 1: Install from npm (Recommended)
npm install -g nlobby-mcpOption 2: Development Installation
Clone the repository:
git clone https://github.com/minagishl/nlobby-mcp.git
cd nlobby-mcpInstall dependencies:
pnpm installSet up environment variables:
cp .env.example .env
# Edit .env if needed (default values should work)Build the project:
pnpm run buildConfiguration
Create a .env file with the following variables (optional, defaults provided):
# N Lobby Configuration
NLOBBY_BASE_URL=https://nlobby.nnn.ed.jp
# MCP Server Configuration
MCP_SERVER_NAME=nlobby-mcp
MCP_SERVER_VERSION=1.0.0Usage
Running the Server
For npm installation:
nlobby-mcpFor development installation:
pnpm run startCursor IDE Setup
Add the following to your Cursor settings (~/.cursor/config.json):
{
"mcpServers": {
"nlobby": {
"command": "npx",
"args": ["-y", "nlobby-mcp"],
"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-mcp"],
"env": {
"NLOBBY_BASE_URL": "https://nlobby.nnn.ed.jp"
}
}
}
}Other MCP Clients
For any MCP-compatible client, use:
Command:
nlobby-mcp(if installed globally) ornode /path/to/nlobby-mcp/dist/index.jsProtocol: stdio
Environment: Optional environment variables as listed in Configuration section
MCP Resources
The server provides the following resources:
nlobby://news- School news and noticesnlobby://schedule- Daily class schedule and eventsnlobby://required-courses- Required courses and academic informationnlobby://user-profile- Current user information
MCP Tools
Available tools:
Authentication Tools
interactive_login- Open browser for manual login to N Lobby (recommended)login_help- Get personalized login help and troubleshootingset_cookies- Manually set authentication cookiescheck_cookies- Check authentication cookie statusverify_authentication- Verify authentication status across all clients
Data Retrieval Tools
get_news- Retrieve school news with filtering and sorting optionsget_news_detail- Retrieve detailed information for a specific news articleget_required_courses- Retrieve required courses information with filtering optionsget_schedule- Get schedule for a specific date (backward compatibility)get_calendar_events- Get calendar events with advanced options (personal/school)test_calendar_endpoints- Test both personal and school calendar endpointsmark_news_as_read- Mark news articles as read (supports multiple IDs)
Debugging Tools
health_check- Test N Lobby API connectiondebug_connection- Debug N Lobby connection with detailed informationtest_page_content- Test page content retrieval and show sample contenttest_trpc_endpoint- Test specific tRPC endpoint with detailed response
MCP Prompts
This server does not provide any pre-configured prompts.
Authentication Flow
Method 1: Interactive Browser Login (Recommended)
Use the
interactive_logintool (no credentials required)A browser window will open to N Lobby
Complete the login process manually in the browser
The system will detect when you're logged in and extract cookies automatically
Access real N Lobby data immediately
Method 2: Manual Cookie Setup
Login to N Lobby via web browser
Extract cookies from browser developer tools:
Open Developer Tools (F12)
Go to Application/Storage tab
Copy all cookies as a string
Use
set_cookiestool with the complete cookie stringUse
health_checktool to verify connectionAccess real N Lobby data via other tools
Quick Start Examples
For Students
# Get help for your student account
login_help email="your.name@nnn.ed.jp"
# Use interactive login (recommended)
interactive_login
# Get today's news
get_news
# Get detailed information for a specific news article
get_news_detail newsId="980"
# Get news detail and mark as read
get_news_detail newsId="980" markAsRead=true
# Get personal calendar events for today
get_calendar_events calendar_type="personal" period="today"
# Get school calendar events for this week
get_calendar_events calendar_type="school" period="week"
# Get required courses information
get_required_courses
# Get required courses for a specific grade
get_required_courses grade=2
# Mark a news article as read (single ID)
mark_news_as_read ids=["980"]For Staff
# Get help for your staff account
login_help email="your.name@nnn.ac.jp"
# Use interactive login
interactive_login
# Test both calendar endpoints
test_calendar_endpointsFor Parents
# Get help for your parent account
login_help email="parent@gmail.com"
# Use interactive login
interactive_login
# Check your child's news
get_news
# Get your child's schedule
get_calendar_events calendar_type="personal" period="today"Troubleshooting
# Get general help
login_help
# Check connection status
health_check
# Check cookie status
check_cookies
# Verify authentication across all systems
verify_authentication
# Debug connection with detailed info
debug_connection
# Test page content retrieval
test_page_content endpoint="/news"Required Courses
The get_required_courses tool allows you to retrieve academic course information:
# Get all required courses
get_required_courses
# Filter by grade level
get_required_courses grade=1
get_required_courses grade=2
# Combine multiple filters
get_required_courses grade=2 semester="2024"The response includes comprehensive course information:
Course Details: Subject code/name, curriculum code/name
Academic Credits: Academic credit hours and approved credits
Progress Tracking: Report completion percentage, average scores
Status Information: Acquisition status, evaluation grades
Test Information: Exam status, periodic exam results, makeup exam URLs
Schooling Data: Attendance counts and requirements
Time Information: Term year, grade level (1年次, 2年次, 3年次)
Computed Fields: Progress percentage, completion status, average scores
Calendar Events
The get_calendar_events tool supports advanced options:
# Get personal calendar for today
get_calendar_events calendar_type="personal" period="today"
# Get school calendar for this week
get_calendar_events calendar_type="school" period="week"
# Get events for a specific date range
get_calendar_events calendar_type="personal" from_date="2024-01-15" to_date="2024-01-20"
# Get events for a single day
get_calendar_events calendar_type="personal" from_date="2024-01-15"Cookie Format
When using set_cookies, provide the complete cookie string from browser:
__Secure-next-auth.session-token=ey...; __Host-next-auth.csrf-token=abc123...; other-cookies=values;User Types
The server supports three user types based on email domain:
Students:
@nnn.ed.jpStaff:
@nnn.ac.jpParents: Any other registered email addresses (Gmail, Yahoo, company emails, etc.)
Development
Scripts
pnpm run build- Build the TypeScript projectpnpm run dev- Watch mode for developmentpnpm run start- Start the MCP serverpnpm run test- Run testspnpm run lint- Lint the codepnpm run format- Format the code
Project Structure
src/
├── index.ts # Entry point
├── server.ts # MCP server implementation
├── api.ts # N Lobby API integration
├── browser-auth.ts # Browser automation for login
├── credential-manager.ts # User credential validation and management
├── nextauth.ts # NextAuth.js session handling
├── trpc-client.ts # tRPC client for API calls
├── config.ts # Configuration management
├── logger.ts # Logging utilities
└── types.ts # TypeScript type definitionsArchitecture
The server uses multiple layers for authentication and API access:
Browser Authentication: Automated browser for interactive login
Cookie Management: Handles NextAuth.js session cookies
HTTP Client: Axios-based client for REST API calls
tRPC Client: Type-safe client for tRPC endpoints
Credential Manager: Validates user types and provides guidance
Security Notes
All authentication tokens are stored in memory only
The server uses secure cookie-based authentication
Access is restricted to authorized N High School Group email domains
No sensitive data is logged or persisted
Browser automation is used only for authentication, not data scraping
Troubleshooting
Common Issues
Authentication Failed: Use
interactive_loginfor the most reliable authenticationCookie Sync Issues: Run
verify_authenticationto check synchronizationConnection Problems: Use
health_checkanddebug_connectionfor diagnosisEmpty Results: Ensure you're authenticated and have proper permissions
Debug Tools
The server includes comprehensive debugging tools:
debug_connection- Network and authentication debuggingtest_page_content- Content retrieval testingtest_trpc_endpoint- API endpoint testingverify_authentication- Authentication status verification
License
This project is licensed under the MIT License - see the LICENSE file for details.
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.