@turbot/tailpipe-mcp
Version:
Tailpipe MCP server to query cloud and security logs using AI.
42 lines • 1.71 kB
JavaScript
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