UNPKG

@pedrocid/music-mcp

Version:

MCP server for controlling Apple Music on macOS (v1.0.5)

84 lines (83 loc) 3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.infoTool = void 0; exports.handleInfoCommand = handleInfoCommand; const version_js_1 = require("../version.js"); const config_js_1 = require("../config.js"); const logger_js_1 = require("../logger.js"); const fs_1 = require("fs"); const child_process_1 = require("child_process"); const os_1 = __importDefault(require("os")); const path_1 = require("path"); exports.infoTool = { name: 'info', description: 'Get diagnostic information about the Music MCP server status', inputSchema: { type: 'object', properties: { command: { type: 'string', enum: ['info'], description: 'Command to execute' } }, required: ['command'] } }; async function handleInfoCommand() { logger_js_1.logger.info('Handling info command'); const configurationIssues = (0, config_js_1.validateConfig)(); // Check Music app availability let musicAppAvailable = false; try { (0, child_process_1.execSync)('osascript -e "tell application \\"Music\\" to get version"', { timeout: 5000, stdio: 'pipe' }); musicAppAvailable = true; } catch (error) { configurationIssues.push('Music app not accessible or not installed'); } // Check AppleScript availability let appleScriptAvailable = false; try { (0, child_process_1.execSync)('which osascript', { timeout: 5000, stdio: 'pipe' }); appleScriptAvailable = true; } catch (error) { configurationIssues.push('AppleScript (osascript) not available'); } // Check logger status - primarily using stderr now let loggerPath = 'stderr (standard error)'; let loggerStatus = 'ok'; // Check if file logging is enabled and accessible if (process.env.NODE_ENV === 'development' || process.env.MUSIC_MCP_FILE_LOGGING === 'true') { const logFile = process.env.MUSIC_MCP_LOG_FILE || `${os_1.default.homedir()}/Library/Logs/music-mcp.log`; try { const logDir = (0, path_1.dirname)(logFile); if ((0, fs_1.existsSync)(logDir) || (0, fs_1.existsSync)(logFile)) { loggerPath = `stderr + file: ${logFile}`; } else { loggerPath = `stderr (file logging failed: ${logFile})`; configurationIssues.push(`Optional log file directory not accessible: ${logDir}`); } } catch (error) { loggerPath = 'stderr (file logging disabled due to error)'; } } return { version: (0, version_js_1.getVersion)(), musicAppAvailable, appleScriptAvailable, loggerPath, loggerStatus, configurationIssues }; }