Skip to main content
Glama

MiniMax MCP JS

Official
by MiniMax-AI
voice-design.ts2.3 kB
import { MiniMaxAPI } from '../utils/api.js'; import { MinimaxRequestError } from '../exceptions/index.js'; import { VoiceDesignRequest } from '../types/index.js'; import { ERROR_PROMPT_REQUIRED, ERROR_PREVIEW_TEXT_REQUIRED } from '../const/index.js'; import { buildOutputFile } from '../utils/file.js'; import * as path from 'path'; import * as fs from 'fs'; export class VoiceDesignAPI { private api: MiniMaxAPI; constructor(api: MiniMaxAPI) { this.api = api; } async voiceDesign(request: VoiceDesignRequest): Promise<any> { // Validate required parameters if (!request.prompt || request.prompt.trim() === '') { throw new MinimaxRequestError(ERROR_PROMPT_REQUIRED); } if (!request.previewText || request.previewText.trim() === '') { throw new MinimaxRequestError(ERROR_PREVIEW_TEXT_REQUIRED); } // Process output file const textPrefix = request.prompt.substring(0, 20).replace(/[^\w]/g, '_'); const fileName = `voice_design_${textPrefix}_${Date.now()}`; const outputFile = buildOutputFile(fileName, request.outputDirectory, 'mp3'); // Prepare request data const requestData: Record<string, any> = { prompt: request.prompt, preview_text: request.previewText, voice_id: request.voiceId, }; try { // Send request const response = await this.api.post<any>('/v1/voice_design', requestData); // Process response const trialAudioData = response?.trial_audio; const voiceId = response?.voice_id; if (!trialAudioData) { throw new MinimaxRequestError('Could not get audio data from response'); } // decode and save file try { // Convert hex string to binary const audioBuffer = Buffer.from(trialAudioData, 'hex'); // Ensure output directory exists const outputDir = path.dirname(outputFile); if (!fs.existsSync(outputDir)) { fs.mkdirSync(outputDir, { recursive: true }); } // Write to file fs.writeFileSync(outputFile, audioBuffer); return { voiceId, outputFile, }; } catch (error) { throw new MinimaxRequestError(`Failed to save audio file: ${String(error)}`); } } catch (err) { throw err; } } }

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