Skip to main content
Glama

MiniMax MCP JS

Official
by MiniMax-AI
audio.ts2.27 kB
import { spawn } from 'child_process'; import * as os from 'os'; import * as fs from 'fs'; import * as path from 'path'; import { PlayAudioRequest } from '../types/index.js'; import { MinimaxRequestError } from '../exceptions/index.js'; import { processInputFile } from './file.js'; import * as requests from 'axios'; /** * Play audio file * @param request Play request * @returns Success message */ export async function playAudio(request: PlayAudioRequest): Promise<string> { try { let data: Buffer; if (request.isUrl) { // If URL, download audio data const response = await requests.default.get(request.inputFilePath, { responseType: 'arraybuffer' }); data = Buffer.from(response.data); } else { // If local file, read file const filePath = processInputFile(request.inputFilePath); data = fs.readFileSync(filePath); } // Save to temporary file const tempDir = os.tmpdir(); const tempFile = path.join(tempDir, `audio_${Date.now()}.mp3`); fs.writeFileSync(tempFile, data); // Play audio based on operating system const platform = os.platform(); let player; if (platform === 'darwin') { // macOS player = spawn('afplay', [tempFile]); } else if (platform === 'win32') { // Windows player = spawn('powershell', ['-c', `(New-Object Media.SoundPlayer "${tempFile}").PlaySync()`]); } else { // Linux/Unix player = spawn('play', [tempFile]); } // Wait for playback to complete return new Promise((resolve, reject) => { player.on('close', (code) => { // Delete temporary file fs.unlinkSync(tempFile); if (code === 0) { resolve(`Successfully played audio: ${request.inputFilePath}`); } else { reject(new Error(`Failed to play audio, error code: ${code}`)); } }); player.on('error', (err) => { // Delete temporary file try { fs.unlinkSync(tempFile); } catch (e) { // Ignore deletion failure } reject(new Error(`Failed to start audio player: ${err.message}`)); }); }); } catch (error) { throw new MinimaxRequestError(`Failed to play audio: ${String(error)}`); } }

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/MiniMax-AI/MiniMax-MCP-JS'

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