Skip to main content
Glama

system_info

Retrieve system information including platform, memory, CPU, and uptime data to monitor and analyze system performance and status.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
includeNo

Implementation Reference

  • Registers the 'system_info' MCP tool, defining its input schema and handler function.
    function registerSystemInfo(server: McpServer): void {
      server.tool("system_info",
        {
          include: z.array(z.enum(["platform", "memory", "cpu", "uptime"])).optional()
        },
        async ({ include }) => {
          return wrapToolExecution(async () => {
            const info = systemInfoCollector.collectSystemInfo(include);
    
            return {
              content: [{
                type: "text" as const,
                text: JSON.stringify(info, null, 2)
              }]
            };
          }, {
            errorCode: ERROR_CODES.SYSTEM_INFO,
            context: "Failed to get system info"
          });
        }
      );
    }
  • The inline handler function for the 'system_info' tool that collects and formats system information as JSON.
    async ({ include }) => {
      return wrapToolExecution(async () => {
        const info = systemInfoCollector.collectSystemInfo(include);
    
        return {
          content: [{
            type: "text" as const,
            text: JSON.stringify(info, null, 2)
          }]
        };
      }, {
        errorCode: ERROR_CODES.SYSTEM_INFO,
        context: "Failed to get system info"
      });
    }
  • Core helper method that collects selected categories of system information using specialized getters.
    collectSystemInfo(categories?: SystemInfoCategory[]): SystemInfo {
      const info: SystemInfo = {};
    
      const shouldInclude = (category: SystemInfoCategory) =>
        !categories || categories.includes(category);
    
      if (shouldInclude("platform")) {
        info.platform = this.getPlatformInfo();
      }
    
      if (shouldInclude("memory")) {
        info.memory = this.getMemoryInfo();
      }
    
      if (shouldInclude("cpu")) {
        info.cpu = this.getCpuInfo();
      }
    
      if (shouldInclude("uptime")) {
        info.uptime = this.getUptimeInfo();
      }
    
      return info;
    }
  • Zod input schema defining optional 'include' array of system info categories.
    {
      include: z.array(z.enum(["platform", "memory", "cpu", "uptime"])).optional()
    },
  • TypeScript interfaces and type for input categories and output SystemInfo structure.
    export type SystemInfoCategory = "platform" | "memory" | "cpu" | "uptime";
    
    export interface PlatformInfo {
      type: string;
      release: string;
      arch: string;
      hostname: string;
      homedir: string;
    }
    
    export interface MemoryInfo {
      total: string;
      free: string;
      used: string;
      usagePercent: string;
    }
    
    export interface CpuInfo {
      model: string;
      cores: number;
      speed: string;
      loadAverage: string[];
    }
    
    export interface UptimeInfo {
      seconds: number;
      formatted: string;
    }
    
    export interface SystemInfo {
      platform?: PlatformInfo;
      memory?: MemoryInfo;
      cpu?: CpuInfo;
      uptime?: UptimeInfo;
    }

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/ishuru/open-mcp'

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