UNPKG

@turbot/tailpipe-mcp

Version:

Tailpipe MCP server to query cloud and security logs using AI.

42 lines 1.71 kB
import { logger } from "../services/logger.js"; import { executeCommand, formatCommandError } from "../utils/command.js"; import { buildTailpipeCommand, getTailpipeEnv } from "../utils/tailpipe.js"; import { formatListResult } from "../utils/format.js"; function parsePartitions(output) { const rawPartitions = JSON.parse(output); if (!Array.isArray(rawPartitions)) { throw new Error('Expected array output from Tailpipe CLI'); } return rawPartitions.map(partition => ({ name: partition.name || '', ...(partition.description && { description: partition.description }), local: { file_count: partition.local?.file_count || 0, file_size: partition.local?.file_size || 0 }, plugin: partition.plugin || '' })); } export const tool = { name: "tailpipe_partition_list", description: `List all Tailpipe partitions with their file counts and sizes.`, inputSchema: { type: "object", properties: {}, additionalProperties: false }, handler: async () => { logger.debug('Executing partition_list tool'); const cmd = buildTailpipeCommand('partition list', { output: 'json' }); try { const output = executeCommand(cmd, { env: getTailpipeEnv() }); const partitions = parsePartitions(output); return formatListResult(partitions, 'partitions', cmd); } catch (error) { logger.error('Failed to execute partition_list tool:', error instanceof Error ? error.message : String(error)); return formatCommandError(error, cmd); } } }; //# sourceMappingURL=tailpipe_partition_list.js.map