fix(server): no input validation for numeric parameters — speed, vol, pitch, n, sample_rate, bitrate
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 68/100
Direzione di ricerca
Inizia in minimax_mcp/server.py, in text_to_audio(), text_to_image() e music_generation(), quindi leggi const.py insieme ai valori predefiniti documentati. Traccia il percorso di ogni parametro fino all’API e controlla la struttura esistente dei test prima di apportare modifiche. Il lavoro è completato quando ogni intervallo e ogni enum elencati vengono verificati prima di una chiamata all’API, le costanti sono definite in const.py e gli errori identificano chiaramente i valori non validi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Tool functions accept numeric parameters with documented valid ranges but perform zero validation before sending to the API. Invalid values are sent directly, resulting in cryptic API errors instead of clear user-facing messages.
Exact locations
minimax_mcp/server.py:
text_to_audio():speed(0.5-2.0),vol(0-10),pitch(-12 to 12),sample_rate(enum),bitrate(enum),channel(1-2)text_to_image():n(1-9),aspect_ratio(enum)music_generation():sample_rate(enum),bitrate(enum)
Example
# This sends invalid data to the API with no local validation:
text_to_audio(text="hello", speed=999, vol=-50, pitch=100)
Impact
- Users get opaque API errors instead of clear validation messages
- Wastes API calls (and money) on requests that will fail
- Docstrings document ranges but code does not enforce them
Proposed solution
Add validation at the start of each function:
VALID_SAMPLE_RATES = {8000, 16000, 22050, 24000, 32000, 44100}
VALID_BITRATES = {32000, 64000, 128000, 256000}
VALID_EMOTIONS = {"happy", "sad", "angry", "fearful", "disgusted", "surprised", "neutral"}
VALID_FORMATS = {"pcm", "mp3", "flac"}
VALID_ASPECT_RATIOS = {"1:1", "16:9", "4:3", "3:2", "2:3", "3:4", "9:16", "21:9"}
def _validate_range(name: str, value, min_val, max_val):
if not (min_val <= value <= max_val):
raise MinimaxValidationError(f"{name} must be between {min_val} and {max_val}, got {value}")
def _validate_enum(name: str, value, valid_values: set):
if value not in valid_values:
raise MinimaxValidationError(f"{name} must be one of {valid_values}, got {value}")
Move these constants to const.py alongside the defaults.
Acceptance criteria
- All documented parameter ranges are validated before API calls
- Clear error messages indicating the valid range/values
- Constants for valid values defined in
const.py
- Lingua principale
- Python
- Stelle
- 1.6k
- Fork
- 283
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di MiniMax-AI/MiniMax-MCP
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
MiniMax-AI/MiniMax-MCP#89 · 1 commento ·
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 82/100
MiniMax-AI/MiniMax-MCP#88 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
MiniMax-AI/MiniMax-MCP#78 ·
-
fix(server): music_generation has inconsistent indentation — try block indented inside function bodyAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
MiniMax-AI/MiniMax-MCP#69 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
MiniMax-AI/MiniMax-MCP#105 · 1 commento ·
Tutte le issue di MiniMax-AI/MiniMax-MCP
Issue simili
-
customer-reported
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Azure/azure-cli#34150 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
community-request
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
NVIDIA-NeMo/Curator#2464 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
weblate-discover crashes with an unhandled FileNotFoundError when the directory does not existAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
WeblateOrg/translation-finder#1099 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
trezor/trezor-firmware#7997 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno