Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

fix(server): no input validation for numeric parameters — speed, vol, pitch, n, sample_rate, bitrate

Aperta
#66 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
api, backend

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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di MiniMax-AI/MiniMax-MCP

Tutte le issue di MiniMax-AI/MiniMax-MCP

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.