get_platform_status
Check the operational status and available capabilities of academic paper platforms to verify which services are currently accessible for research queries.
Instructions
Check the status and capabilities of available academic platforms
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| validate | No | Whether to validate configured API keys by making a real request (may trigger rate limits). Default: false. |
Implementation Reference
- src/mcp/handleToolCall.ts:427-474 (handler)Main handler logic for the 'get_platform_status' tool. Iterates over all searchers/platforms, gathers capabilities, API key status (optionally validates if requested), special info for Sci-Hub mirrors, and returns formatted status JSON.case 'get_platform_status': { const { validate } = args; const statusInfo: any[] = []; for (const [platformName, searcher] of Object.entries(searchers)) { if (platformName === 'wos' || platformName === 'scholar') continue; const capabilities = (searcher as PaperSource).getCapabilities(); const hasApiKey = (searcher as PaperSource).hasApiKey(); let apiKeyStatus = 'not_required'; if (capabilities.requiresApiKey) { if (hasApiKey) { if (validate) { try { const isValid = await (searcher as PaperSource).validateApiKey(); apiKeyStatus = isValid ? 'valid' : 'invalid'; } catch { apiKeyStatus = 'unknown'; } } else { apiKeyStatus = 'configured'; } } else { apiKeyStatus = 'missing'; } } let additionalInfo: any = {}; if (platformName === 'scihub') { const mirrorStatus = searchers.scihub.getMirrorStatus(); additionalInfo = { mirrorCount: mirrorStatus.length, workingMirrors: mirrorStatus.filter(m => m.status === 'Working').length }; } statusInfo.push({ platform: platformName, baseUrl: (searcher as PaperSource).getBaseUrl(), capabilities, apiKeyStatus, ...additionalInfo }); } return jsonTextResponse(`Platform Status:\n\n${JSON.stringify(statusInfo, null, 2)}`); }
- src/mcp/schemas.ts:203-207 (schema)Zod input schema validation for 'get_platform_status' tool. Defines optional 'validate' boolean parameter to control API key validation.export const GetPlatformStatusSchema = z .object({ validate: z.boolean().optional().default(false) }) .strip();
- src/mcp/tools.ts:352-365 (registration)Tool registration in MCP TOOLS array. Specifies name, description, and JSON input schema for the MCP server.{ name: 'get_platform_status', description: 'Check the status and capabilities of available academic platforms', inputSchema: { type: 'object', properties: { validate: { type: 'boolean', description: 'Whether to validate configured API keys by making a real request (may trigger rate limits). Default: false.' } } } },