minimax-mcp-tools
Version:
Async MCP server with Minimax API integration for image generation and text-to-speech
131 lines • 6.61 kB
JavaScript
export const API_CONFIG = {
BASE_URL: 'https://api.minimaxi.com/v1',
ENDPOINTS: {
IMAGE_GENERATION: '/image_generation',
TEXT_TO_SPEECH: '/t2a_v2'
},
HEADERS: {
'MM-API-Source': 'mcp-tools'
},
TIMEOUT: 30000
};
export const RATE_LIMITS = {
IMAGE: { rpm: 10, burst: 3 },
TTS: { rpm: 20, burst: 5 }
};
export const MODELS = {
IMAGE: {
'image-01': { name: 'image-01', description: 'Standard image generation' },
'image-01-live': { name: 'image-01-live', description: 'Live image generation' }
},
TTS: {
'speech-2.6-hd': { name: 'speech-2.6-hd', description: 'Ultra-low latency, intelligent parsing, and enhanced naturalness' },
'speech-2.6-turbo': { name: 'speech-2.6-turbo', description: 'Faster, more affordable, ideal for voice agents with 40 languages support' }
}
};
export const VOICES = {
'male-qn-qingse': { name: '青涩青年音色', gender: 'male', language: 'zh' },
'male-qn-jingying': { name: '精英青年音色', gender: 'male', language: 'zh' },
'male-qn-badao': { name: '霸道青年音色', gender: 'male', language: 'zh' },
'male-qn-daxuesheng': { name: '青年大学生音色', gender: 'male', language: 'zh' },
'female-shaonv': { name: '少女音色', gender: 'female', language: 'zh' },
'female-yujie': { name: '御姐音色', gender: 'female', language: 'zh' },
'female-chengshu': { name: '成熟女性音色', gender: 'female', language: 'zh' },
'female-tianmei': { name: '甜美女性音色', gender: 'female', language: 'zh' },
'presenter_male': { name: '男性主持人', gender: 'male', language: 'zh' },
'presenter_female': { name: '女性主持人', gender: 'female', language: 'zh' },
'audiobook_male_1': { name: '男性有声书1', gender: 'male', language: 'zh' },
'audiobook_male_2': { name: '男性有声书2', gender: 'male', language: 'zh' },
'audiobook_female_1': { name: '女性有声书1', gender: 'female', language: 'zh' },
'audiobook_female_2': { name: '女性有声书2', gender: 'female', language: 'zh' },
'male-qn-qingse-jingpin': { name: '青涩青年音色-beta', gender: 'male', language: 'zh' },
'male-qn-jingying-jingpin': { name: '精英青年音色-beta', gender: 'male', language: 'zh' },
'male-qn-badao-jingpin': { name: '霸道青年音色-beta', gender: 'male', language: 'zh' },
'male-qn-daxuesheng-jingpin': { name: '青年大学生音色-beta', gender: 'male', language: 'zh' },
'female-shaonv-jingpin': { name: '少女音色-beta', gender: 'female', language: 'zh' },
'female-yujie-jingpin': { name: '御姐音色-beta', gender: 'female', language: 'zh' },
'female-chengshu-jingpin': { name: '成熟女性音色-beta', gender: 'female', language: 'zh' },
'female-tianmei-jingpin': { name: '甜美女性音色-beta', gender: 'female', language: 'zh' },
'clever_boy': { name: '聪明男童', gender: 'male', language: 'zh' },
'cute_boy': { name: '可爱男童', gender: 'male', language: 'zh' },
'lovely_girl': { name: '萌萌女童', gender: 'female', language: 'zh' },
'cartoon_pig': { name: '卡通猪小琪', gender: 'other', language: 'zh' },
'bingjiao_didi': { name: '病娇弟弟', gender: 'male', language: 'zh' },
'junlang_nanyou': { name: '俊朗男友', gender: 'male', language: 'zh' },
'chunzhen_xuedi': { name: '纯真学弟', gender: 'male', language: 'zh' },
'lengdan_xiongzhang': { name: '冷淡学长', gender: 'male', language: 'zh' },
'badao_shaoye': { name: '霸道少爷', gender: 'male', language: 'zh' },
'tianxin_xiaoling': { name: '甜心小玲', gender: 'female', language: 'zh' },
'qiaopi_mengmei': { name: '俏皮萌妹', gender: 'female', language: 'zh' },
'wumei_yujie': { name: '妩媚御姐', gender: 'female', language: 'zh' },
'diadia_xuemei': { name: '嗲嗲学妹', gender: 'female', language: 'zh' },
'danya_xuejie': { name: '淡雅学姐', gender: 'female', language: 'zh' },
'Santa_Claus': { name: 'Santa Claus', gender: 'male', language: 'en' },
'Grinch': { name: 'Grinch', gender: 'male', language: 'en' },
'Rudolph': { name: 'Rudolph', gender: 'other', language: 'en' },
'Arnold': { name: 'Arnold', gender: 'male', language: 'en' },
'Charming_Santa': { name: 'Charming Santa', gender: 'male', language: 'en' },
'Charming_Lady': { name: 'Charming Lady', gender: 'female', language: 'en' },
'Sweet_Girl': { name: 'Sweet Girl', gender: 'female', language: 'en' },
'Cute_Elf': { name: 'Cute Elf', gender: 'other', language: 'en' },
'Attractive_Girl': { name: 'Attractive Girl', gender: 'female', language: 'en' },
'Serene_Woman': { name: 'Serene Woman', gender: 'female', language: 'en' }
};
export const CONSTRAINTS = {
IMAGE: {
PROMPT_MAX_LENGTH: 1500,
MAX_IMAGES: 9,
MIN_DIMENSION: 512,
MAX_DIMENSION: 2048,
DIMENSION_STEP: 8,
ASPECT_RATIOS: ["1:1", "16:9", "4:3", "3:2", "2:3", "3:4", "9:16", "21:9"],
STYLE_TYPES: ["漫画", "元气", "中世纪", "水彩"],
RESPONSE_FORMATS: ["url", "base64"],
SUBJECT_TYPES: ["character"],
STYLE_WEIGHT_MIN: 0.01,
STYLE_WEIGHT_MAX: 1
},
TTS: {
TEXT_MAX_LENGTH: 10000,
SPEED_MIN: 0.5,
SPEED_MAX: 2.0,
VOLUME_MIN: 0.1,
VOLUME_MAX: 10.0,
PITCH_MIN: -12,
PITCH_MAX: 12,
EMOTIONS: ["neutral", "happy", "sad", "angry", "fearful", "disgusted", "surprised"],
FORMATS: ["mp3", "wav", "flac", "pcm"],
SAMPLE_RATES: ["8000", "16000", "22050", "24000", "32000", "44100"],
BITRATES: ["64000", "96000", "128000", "160000", "192000", "224000", "256000", "320000"],
VOICE_MODIFY_PITCH_MIN: -100,
VOICE_MODIFY_PITCH_MAX: 100,
VOICE_MODIFY_INTENSITY_MIN: -100,
VOICE_MODIFY_INTENSITY_MAX: 100,
VOICE_MODIFY_TIMBRE_MIN: -100,
VOICE_MODIFY_TIMBRE_MAX: 100,
SOUND_EFFECTS: ["spacious_echo", "auditorium_echo", "lofi_telephone", "robotic"]
}
};
export const DEFAULTS = {
IMAGE: {
model: 'image-01',
aspectRatio: '1:1',
n: 1,
promptOptimizer: true,
responseFormat: 'url',
styleWeight: 0.8
},
TTS: {
model: 'speech-2.6-hd',
voiceId: 'female-shaonv',
speed: 1.0,
volume: 1.0,
pitch: 0,
emotion: 'neutral',
format: 'mp3',
sampleRate: "32000",
bitrate: "128000",
channel: 1
}
};
//# sourceMappingURL=constants.js.map