Skip to main content
Glama

phone_get_logs

Retrieve system logs from the Asterisk S2S MCP Server for debugging. Filter logs by level (info, warn, error, debug) and component (mcp, phone, callback, client) to diagnose telephony system issues efficiently.

Instructions

Obtener logs del sistema telefónico para debugging

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
componentNoFiltrar por componente del sistema
levelNoFiltrar por nivel de log
limitNoNúmero máximo de logs a obtener

Implementation Reference

  • index.ts:191-230 (registration)
    Registers the 'phone_get_logs' MCP tool with Zod input schema and a handler that calls phoneTools.getSystemLogs, formats the logs with icons and returns as text content.
    server.tool( "phone_get_logs", "Obtener logs del sistema telefónico para debugging", { limit: z.number().optional().default(20).describe("Número máximo de logs a obtener"), level: z.enum(["info", "warn", "error", "debug"]).optional().describe("Filtrar por nivel de log"), component: z.enum(["mcp", "phone", "callback", "client"]).optional().describe("Filtrar por componente del sistema") }, async (args) => { const result = await phoneTools.getSystemLogs({ limit: args.limit, level: args.level, component: args.component }); if (result.length === 0) { return { content: [{ type: "text", text: "📝 No hay logs disponibles con los filtros especificados" }], }; } const logsText = result.map(log => { const levelIcon = { info: 'ℹ️', warn: '⚠️', error: '❌', debug: '🔍' }[log.level] || '📝'; return `${levelIcon} **${log.timestamp}** [${log.component.toUpperCase()}] ${log.action}\n${JSON.stringify(log.details, null, 2)}`; }).join('\n\n'); return { content: [{ type: "text", text: `📝 **Logs del Sistema (${result.length} entradas)**\n\n${logsText}` }], }; } );
  • Core handler function that retrieves the most recent system logs from the in-memory 'systemLogs' array, sorts them by timestamp descending, and limits to the specified number.
    export function getSystemLogs(limit: number = 100): SystemLog[] { return systemLogs .sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime()) .slice(0, limit); }
  • Intermediate helper function that applies client-specified filtering (level, component) on top of core getSystemLogs, fetches extra logs to account for filtering.
    export async function getSystemLogs(args?: { limit?: number; level?: 'info' | 'warn' | 'error' | 'debug'; component?: 'mcp' | 'phone' | 'callback' | 'client'; }): Promise<Array<{ id: string; timestamp: string; level: string; component: string; action: string; details: any; callId?: string; }>> { const limit = args?.limit || 50; const logs = phoneOps.getSystemLogs(limit * 2); // Obtener más para filtrar // Filtrar por nivel y componente si se especifica let filteredLogs = logs; if (args?.level) { filteredLogs = filteredLogs.filter(log => log.level === args.level); } if (args?.component) { filteredLogs = filteredLogs.filter(log => log.component === args.component); } return filteredLogs.slice(0, limit); }
  • Zod schema for input parameters of phone_get_logs tool.
    { limit: z.number().optional().default(20).describe("Número máximo de logs a obtener"), level: z.enum(["info", "warn", "error", "debug"]).optional().describe("Filtrar por nivel de log"), component: z.enum(["mcp", "phone", "callback", "client"]).optional().describe("Filtrar por componente del sistema") }, async (args) => { const result = await phoneTools.getSystemLogs({ limit: args.limit, level: args.level, component: args.component }); if (result.length === 0) { return { content: [{ type: "text", text: "📝 No hay logs disponibles con los filtros especificados" }], }; } const logsText = result.map(log => { const levelIcon = { info: 'ℹ️', warn: '⚠️', error: '❌', debug: '🔍' }[log.level] || '📝'; return `${levelIcon} **${log.timestamp}** [${log.component.toUpperCase()}] ${log.action}\n${JSON.stringify(log.details, null, 2)}`; }).join('\n\n'); return { content: [{ type: "text", text: `📝 **Logs del Sistema (${result.length} entradas)**\n\n${logsText}` }], }; } );

Other Tools

Related Tools

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/gcorroto/mcp-s2s-asterisk'

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