Skip to main content
Glama
tool-definitions.ts6.12 kB
/** * MCP Tool Definitions * Defines all available MCP tools for F5 Status monitoring */ import { z } from 'zod'; /** * Tool: Get Overall Status * Returns the current overall status of F5 Cloud services */ export const getOverallStatusTool = { name: 'f5-status-get-overall', description: 'Get the current overall status of F5 Cloud services including operational state and service health indicator', inputSchema: { type: 'object' as const, properties: {}, required: [], }, }; /** * Tool: Get Components * Returns all F5 Cloud service components with their current status */ export const getComponentsTool = { name: 'f5-status-get-components', description: 'Get all F5 Cloud service components with their current operational status, organized by category (Distributed Cloud Services, XC App Stack, etc.)', inputSchema: { type: 'object' as const, properties: { status: { type: 'string', description: 'Filter components by status', enum: ['none', 'minor', 'major', 'critical'], }, group: { type: 'string', description: 'Filter components by group name', }, }, required: [], }, }; /** * Tool: Get Component * Returns details about a specific component by ID or name */ export const getComponentTool = { name: 'f5-status-get-component', description: 'Get detailed information about a specific F5 Cloud service component by ID or name', inputSchema: { type: 'object' as const, properties: { id: { type: 'string', description: 'Component ID', }, name: { type: 'string', description: 'Component name', }, }, required: [], }, }; /** * Tool: Get Incidents * Returns active and recent incidents affecting F5 Cloud services */ export const getIncidentsTool = { name: 'f5-status-get-incidents', description: 'Get current and recent incidents affecting F5 Cloud services, including status updates and affected components', inputSchema: { type: 'object' as const, properties: { status: { type: 'string', description: 'Filter incidents by status', enum: ['investigating', 'identified', 'monitoring', 'resolved', 'postmortem'], }, impact: { type: 'string', description: 'Filter incidents by impact level', enum: ['none', 'minor', 'major', 'critical'], }, days: { type: 'number', description: 'Get incidents from the last N days (default: 7)', minimum: 1, maximum: 90, }, unresolved_only: { type: 'boolean', description: 'Only return unresolved incidents (default: false)', }, }, required: [], }, }; /** * Tool: Get Maintenance * Returns scheduled maintenance windows for F5 Cloud services */ export const getMaintenanceTool = { name: 'f5-status-get-maintenance', description: 'Get scheduled, active, and upcoming maintenance windows for F5 Cloud services', inputSchema: { type: 'object' as const, properties: { status: { type: 'string', description: 'Filter maintenance by status', enum: ['scheduled', 'in_progress', 'verifying', 'completed'], }, active_only: { type: 'boolean', description: 'Only return active maintenance windows (default: false)', }, upcoming_only: { type: 'boolean', description: 'Only return upcoming maintenance windows (default: false)', }, }, required: [], }, }; /** * Tool: Search * Search for components, incidents, or information by keyword */ export const searchTool = { name: 'f5-status-search', description: 'Search F5 Cloud status information by keyword or pattern, including components, incidents, and maintenance', inputSchema: { type: 'object' as const, properties: { query: { type: 'string', description: 'Search query or pattern', }, type: { type: 'string', description: 'Type of entity to search', enum: ['components', 'incidents', 'maintenance', 'all'], }, }, required: ['query'], }, }; /** * All tool definitions */ export const allTools = [ getOverallStatusTool, getComponentsTool, getComponentTool, getIncidentsTool, getMaintenanceTool, searchTool, ]; /** * Tool input schemas with Zod validation */ export const toolSchemas = { 'f5-status-get-overall': z.object({}), 'f5-status-get-components': z.object({ status: z.enum(['none', 'minor', 'major', 'critical']).optional(), group: z.string().optional(), }), 'f5-status-get-component': z .object({ id: z.string().optional(), name: z.string().optional(), }) .refine((data) => data.id || data.name, { message: 'Either id or name must be provided' }), 'f5-status-get-incidents': z.object({ status: z .enum(['investigating', 'identified', 'monitoring', 'resolved', 'postmortem']) .optional(), impact: z.enum(['none', 'minor', 'major', 'critical']).optional(), days: z.number().min(1).max(90).optional(), unresolved_only: z.boolean().optional(), }), 'f5-status-get-maintenance': z.object({ status: z.enum(['scheduled', 'in_progress', 'verifying', 'completed']).optional(), active_only: z.boolean().optional(), upcoming_only: z.boolean().optional(), }), 'f5-status-search': z.object({ query: z.string(), type: z.enum(['components', 'incidents', 'maintenance', 'all']).optional(), }), }; export type ToolInputs = { 'f5-status-get-overall': z.infer<(typeof toolSchemas)['f5-status-get-overall']>; 'f5-status-get-components': z.infer<(typeof toolSchemas)['f5-status-get-components']>; 'f5-status-get-component': z.infer<(typeof toolSchemas)['f5-status-get-component']>; 'f5-status-get-incidents': z.infer<(typeof toolSchemas)['f5-status-get-incidents']>; 'f5-status-get-maintenance': z.infer<(typeof toolSchemas)['f5-status-get-maintenance']>; 'f5-status-search': z.infer<(typeof toolSchemas)['f5-status-search']>; };

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/robinmordasiewicz/f5cloudstatus-mcp'

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