Skip to main content
Glama
getDevLogs.ts2.75 kB
import { Tool } from '@modelcontextprotocol/sdk/types.js'; import { ProcessManager } from '../components/ProcessManager.js'; import { Logger } from '../utils/logger.js'; const logger = Logger.getInstance(); export const getDevLogsSchema: Tool = { name: 'get_dev_logs', description: 'npm run devのログ取得', inputSchema: { type: 'object', properties: { lines: { type: 'number', description: '取得行数(デフォルト:50)', minimum: 1, maximum: 1000 } }, additionalProperties: false } }; export async function getDevLogs(args: { lines?: number }): Promise<string> { try { const requestedLines = args.lines || 50; logger.debug(`Getting dev server logs`, { lines: requestedLines }); const processManager = ProcessManager.getInstance(); const status = await processManager.getStatus(); if (!status) { return JSON.stringify({ success: false, message: 'Dev serverが起動していません。ログを取得できません。', logs: [] }); } const logManager = processManager.getLogManager(); const logs = await logManager.getLogs(requestedLines); // Format logs for better readability const formattedLogs = logs.map(log => ({ timestamp: log.timestamp.toISOString(), level: log.level, source: log.source, message: log.message })); const logStats = logManager.getLogStats(); const result = { success: true, message: `${logs.length}行のログを取得しました`, logs: formattedLogs, statistics: { totalLogs: logStats.total, errors: logStats.errors, warnings: logStats.warnings, info: logStats.info, requested: requestedLines, returned: logs.length }, process: { pid: status.pid, directory: status.directory, status: status.status, startTime: status.startTime } }; if (logStats.errors > 0) { result.message += `\n⚠️ ${logStats.errors}個のエラーが含まれています`; } if (logStats.warnings > 0) { result.message += `\n警告: ${logStats.warnings}個の警告が含まれています`; } logger.debug('Dev server logs retrieved', { logsCount: logs.length, errors: logStats.errors, warnings: logStats.warnings }); return JSON.stringify(result, null, 2); } catch (error) { logger.error('Failed to get dev server logs', { error }); return JSON.stringify({ success: false, message: `ログ取得に失敗しました: ${error}`, logs: [], error: String(error) }); } }

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/masamunet/npm-dev-mcp'

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