Skip to main content
Glama

debug_connection

Test and diagnose connection issues to the N Lobby school portal by analyzing endpoint responses and authentication status.

Instructions

Debug N Lobby connection with detailed information

Input Schema

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

Implementation Reference

  • The handler function for the "debug_connection" tool. It extracts the optional endpoint parameter from the tool arguments and calls this.api.debugConnection() to perform the debugging, then returns the result as text content.
    case "debug_connection": {
      const { endpoint } = args as { endpoint?: string };
      const debugResult = await this.api.debugConnection(
        endpoint || "/news",
      );
      return {
        content: [
          {
            type: "text",
            text: debugResult,
          },
        ],
      };
    }
  • The schema definition for the "debug_connection" tool, including name, description, and input schema specifying an optional 'endpoint' parameter.
      name: "debug_connection",
      description: "Debug N Lobby connection with detailed information",
      inputSchema: {
        type: "object",
        properties: {
          endpoint: {
            type: "string",
            description: "Endpoint to test (default: /news)",
            default: "/news",
          },
        },
      },
    },
  • src/server.ts:154-451 (registration)
    The registration of available tools via setRequestHandler for ListToolsRequestSchema, which includes the "debug_connection" tool in the returned tools array.
    this.server.setRequestHandler(ListToolsRequestSchema, async () => {
      return {
        tools: [
          {
            name: "get_news",
            description: "Retrieve school news",
            inputSchema: {
              type: "object",
              properties: {
                category: {
                  type: "string",
                  description: "Filter by category (optional)",
                },
                limit: {
                  type: "number",
                  description:
                    "Maximum number of news items to retrieve (optional, default: 10)",
                  minimum: 1,
                  default: 10,
                },
                sort: {
                  type: "string",
                  description:
                    "Sort order: 'newest' (default), 'oldest', 'title-asc', 'title-desc'",
                  enum: ["newest", "oldest", "title-asc", "title-desc"],
                },
              },
            },
          },
          {
            name: "get_news_detail",
            description:
              "Retrieve detailed information for a specific news article",
            inputSchema: {
              type: "object",
              properties: {
                newsId: {
                  type: "string",
                  description: "The ID of the news article to retrieve",
                },
                markAsRead: {
                  type: "boolean",
                  description:
                    "Mark the news article as read (optional, default: false)",
                  default: false,
                },
              },
              required: ["newsId"],
            },
          },
          {
            name: "get_account_info",
            description:
              "Extract account information by parsing Next.js flight data from a rendered page",
            inputSchema: {
              type: "object",
              properties: {},
            },
          },
          {
            name: "get_student_card_screenshot",
            description:
              "Capture a screenshot of the student ID card by following the secure portal redirect flow",
            inputSchema: {
              type: "object",
              properties: {},
            },
          },
          {
            name: "get_required_courses",
            description:
              "Retrieve required courses information with detailed progress tracking",
            inputSchema: {
              type: "object",
              properties: {
                grade: {
                  type: "number",
                  description: "Filter by grade level (1, 2, or 3) (optional)",
                },
                semester: {
                  type: "string",
                  description:
                    'Filter by term year (e.g., "2024", "2025") (optional)',
                },
                category: {
                  type: "string",
                  description:
                    'Filter by curriculum category (e.g., "国語", "数学", "英語") (optional)',
                },
              },
            },
          },
          {
            name: "get_schedule",
            description:
              "Get school schedule for a specific date (backward compatibility)",
            inputSchema: {
              type: "object",
              properties: {
                date: {
                  type: "string",
                  description:
                    "Date in YYYY-MM-DD format (optional, defaults to today)",
                },
              },
            },
          },
          {
            name: "get_calendar_events",
            description: "Get calendar events with advanced options",
            inputSchema: {
              type: "object",
              properties: {
                calendar_type: {
                  type: "string",
                  enum: ["personal", "school"],
                  description:
                    "Type of calendar to retrieve (personal or school)",
                  default: "personal",
                },
                from_date: {
                  type: "string",
                  description:
                    "Start date in YYYY-MM-DD format (optional). If only from_date is provided, it will be treated as a single day.",
                },
                to_date: {
                  type: "string",
                  description:
                    "End date in YYYY-MM-DD format (optional). Must be at least 1 day after from_date when both are provided.",
                },
                period: {
                  type: "string",
                  enum: ["today", "week", "month"],
                  description:
                    'Predefined period (optional, overrides from/to dates). Use "today" for single day queries.',
                },
              },
            },
          },
          {
            name: "test_calendar_endpoints",
            description: "Test both personal and school calendar endpoints",
            inputSchema: {
              type: "object",
              properties: {
                from_date: {
                  type: "string",
                  description:
                    "Start date in YYYY-MM-DD format (optional). If only from_date is provided, it will be treated as a single day.",
                },
                to_date: {
                  type: "string",
                  description:
                    "End date in YYYY-MM-DD format (optional). Must be at least 1 day after from_date when both are provided.",
                },
              },
            },
          },
    
          {
            name: "set_cookies",
            description: "Set authentication cookies for N Lobby access",
            inputSchema: {
              type: "object",
              properties: {
                cookies: {
                  type: "string",
                  description:
                    "Cookie string from authenticated N Lobby session",
                },
              },
              required: ["cookies"],
            },
          },
          {
            name: "check_cookies",
            description: "Check if authentication cookies are set",
            inputSchema: {
              type: "object",
              properties: {},
            },
          },
          {
            name: "health_check",
            description: "Check if N Lobby API connection is working",
            inputSchema: {
              type: "object",
              properties: {},
            },
          },
    
          {
            name: "debug_connection",
            description: "Debug N Lobby connection with detailed information",
            inputSchema: {
              type: "object",
              properties: {
                endpoint: {
                  type: "string",
                  description: "Endpoint to test (default: /news)",
                  default: "/news",
                },
              },
            },
          },
    
          {
            name: "test_page_content",
            description: "Test page content retrieval and show sample content",
            inputSchema: {
              type: "object",
              properties: {
                endpoint: {
                  type: "string",
                  description: "Endpoint to test (default: /news)",
                  default: "/news",
                },
                length: {
                  type: "number",
                  description: "Number of characters to show (default: 1000)",
                  default: 1000,
                },
              },
            },
          },
    
          {
            name: "test_trpc_endpoint",
            description: "Test specific tRPC endpoint with detailed response",
            inputSchema: {
              type: "object",
              properties: {
                method: {
                  type: "string",
                  description:
                    "tRPC method to test (e.g., news.getUnreadNewsCount, user.updateLastAccess)",
                  default: "user.updateLastAccess",
                },
                params: {
                  type: "string",
                  description: "JSON string of parameters (optional)",
                },
              },
            },
          },
          {
            name: "verify_authentication",
            description:
              "Verify authentication status and cookie synchronization across all clients",
            inputSchema: {
              type: "object",
              properties: {},
            },
          },
    
          {
            name: "interactive_login",
            description:
              "Open browser for manual login to N Lobby (no credentials required)",
            inputSchema: {
              type: "object",
              properties: {},
            },
          },
          {
            name: "login_help",
            description: "Get help and troubleshooting tips for N Lobby login",
            inputSchema: {
              type: "object",
              properties: {
                email: {
                  type: "string",
                  description:
                    "Your email address (optional, for personalized help)",
                },
              },
            },
          },
          {
            name: "mark_news_as_read",
            description: "Mark news articles as read",
            inputSchema: {
              type: "object",
              properties: {
                ids: {
                  type: "array",
                  items: {
                    type: "string",
                  },
                  description: "Array of news article IDs to mark as read",
                },
              },
              required: ["ids"],
            },
          },
        ],
      };
    });

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-mcp'

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