get_platform_status
Check the operational status and capabilities of academic paper platforms like arXiv, PubMed, and Google Scholar to verify availability before searching.
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 configured searchers/platforms, retrieves capabilities and API key status, optionally validates keys with real requests, adds special info for scihub, and formats status response.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 schema definition for validating input arguments to the get_platform_status tool.export const GetPlatformStatusSchema = z .object({ validate: z.boolean().optional().default(false) }) .strip();
- src/mcp/tools.ts:352-365 (registration)Tool registration in the TOOLS array, defining name, description, and JSON input schema for MCP protocol.{ 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.' } } } },