server_fleet
Monitor fleet-wide health and security posture across all registered servers, displaying status, audit scores, and SSH response times for comprehensive oversight.
Instructions
Get fleet-wide health and security posture for all registered servers. Returns server name, IP, provider, health status (ONLINE/DEGRADED/OFFLINE), cached audit score, and SSH response time. Use sort parameter to order results. For per-server cloud status or available server sizes, use server_info instead.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field: score (descending), name (A-Z), provider (A-Z). Default: name. | name |
Implementation Reference
- src/mcp/tools/serverFleet.ts:15-32 (handler)The handler function that executes the server_fleet tool, managing retrieval and processing of server data.
export async function handleServerFleet(params: { sort?: "score" | "name" | "provider"; }): Promise<McpResponse> { try { const servers = getServers(); if (servers.length === 0) { return mcpError("No servers found", undefined, [ { command: "kastell add", reason: "Add a server first" }, ]); } const rows = await runFleet({ json: true, sort: params.sort ?? "name" }); return mcpSuccess({ servers: rows.length, rows }); } catch (error: unknown) { return mcpError(getErrorMessage(error)); } } - src/mcp/tools/serverFleet.ts:7-13 (schema)The schema definition for the input parameters of the server_fleet tool.
export const serverFleetSchema = { sort: z .enum(["score", "name", "provider"]) .optional() .default("name") .describe("Sort field: score (descending), name (A-Z), provider (A-Z). Default: name."), }; - src/mcp/server.ts:236-249 (registration)The registration of the server_fleet tool within the MCP server setup.
server.registerTool("server_fleet", { description: "Get fleet-wide health and security posture for all registered servers. Returns server name, IP, provider, health status (ONLINE/DEGRADED/OFFLINE), cached audit score, and SSH response time. Use sort parameter to order results. For per-server cloud status or available server sizes, use server_info instead.", inputSchema: serverFleetSchema, annotations: { title: "Fleet Visibility", readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, }, async (params) => { return handleServerFleet(params); });