Skip to main content
Glama
imprvhub

Status Observer MCP

status

Monitor and verify the operational status of digital platforms using specific commands to list, check all, or target individual platforms like GitHub.

Instructions

Check operational status of major digital platforms

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commandYesCommand to execute (list, --all, or platform with -- prefix like --github)

Implementation Reference

  • Main MCP tool handler for 'status': parses command (list, --all, --<platform>) and delegates to StatusObserver methods.
    if (name === "status") { const command = (typeof args?.command === 'string' ? args.command : '').toLowerCase() || ''; if (command === 'list') { return { content: [ { type: "text", text: statusObserver.getPlatformsList() } ] }; } else if (command === '--all') { return { content: [ { type: "text", text: await statusObserver.getAllPlatformsStatus() } ] }; } else if (command.startsWith('--')) { const platformId = command.slice(2); return { content: [ { type: "text", text: await statusObserver.getPlatformStatus(platformId) } ] }; } else { throw new Error(`Unknown command: ${command}. Available commands: list, --all, or platform with -- prefix like --openrouter, --openai, --github`); } }
  • Input schema definition for the 'status' tool, specifying the 'command' parameter.
    status: { description: "Check operational status of major digital platforms including AI providers, cloud services, and developer tools", schema: { type: "object", properties: { command: { type: "string", description: "Command to execute (list, --all, or platform with -- prefix like --openrouter, --openai, --github)" } }, required: ["command"] } }
  • src/index.ts:1084-1108 (registration)
    Server initialization registering the 'status' tool via capabilities.
    const server = new Server( { name: "mcp-status-observer", version: "0.1.0", }, { capabilities: { tools: { status: { description: "Check operational status of major digital platforms including AI providers, cloud services, and developer tools", schema: { type: "object", properties: { command: { type: "string", description: "Command to execute (list, --all, or platform with -- prefix like --openrouter, --openai, --github)" } }, required: ["command"] } } }, }, } );
  • src/index.ts:1110-1129 (registration)
    ListTools handler registering/declaring the 'status' tool schema.
    server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: "status", description: "Check operational status of major digital platforms including AI providers like OpenRouter, OpenAI, Anthropic; cloud services like GCP, Vercel; and developer tools", inputSchema: { type: "object", properties: { command: { type: "string", description: "Command to execute (list, --all, or platform with -- prefix like --openrouter, --openai, --github, --gcp)" } }, required: ["command"] } } ] }; });
  • Core helper method in StatusObserver that fetches and formats status for a specific platform, dispatching to platform-specific handlers.
    async getPlatformStatus(platformId: string): Promise<string> { const platform = this.platforms.get(platformId); if (!platform) { return `Platform '${platformId}' not found. Use 'status list' to see available platforms.`; } try { if (platformId === 'anthropic') { return await this.getAnthropicStatus(platform); } if (platformId === 'atlassian') { return await this.getAtlassianStatus(platform); } if (platformId === 'docker') { return await this.getDockerStatus(platform); } if (platformId === 'gcp') { return await this.getGCPStatus(platform); } if (platformId === 'gemini') { return await this.getGeminiStatus(platform); } if (platformId === 'linkedin') { return await this.getLinkedInStatus(platform); } if (platformId === 'openai') { return await this.getOpenAIStatus(platform); } if (platformId === 'openrouter') { return await this.getOpenRouterStatus(platform); } if (platformId === 'supabase') { return await this.getSupabaseStatus(platform); } if (platformId === 'x') { return await this.getXStatus(platform); } const response = await axios.get(platform.url); const data = response.data; let statusOutput = `${platform.name} Status:\n`; statusOutput += `${this.formatOverallStatus(data, platformId)}\n\n`; if (data.components && Array.isArray(data.components)) { statusOutput += `Components:\n`; data.components.forEach((component: any) => { statusOutput += `- ${component.name}: ${this.normalizeStatus(component.status)}\n`; if (component.description) { statusOutput += ` Description: ${component.description}\n`; } }); } else if (data.components && typeof data.components === 'object') { statusOutput += `Components:\n`; Object.keys(data.components).forEach(key => { const component = data.components[key]; statusOutput += `- ${component.name}: ${this.normalizeStatus(component.status)}\n`; if (component.description) { statusOutput += ` Description: ${component.description}\n`; } }); } else if (platformId === 'github') { this.processGitHubComponents(data, platform); statusOutput += this.getGitHubComponentsText(platform); } statusOutput += `\nLast Updated: ${this.formatUpdateTime(data.page?.updated_at || data.updated || new Date().toISOString())}`; return statusOutput; } catch (error) { console.error(`Error fetching status for ${platform.name}:`, error); return `Unable to fetch real-time status for ${platform.name}. The status API might be unavailable or the format has changed.`; } }

Other Tools

Related Tools

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/imprvhub/mcp-status-observer'

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