Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#66 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
python
Lĩnh vực
api, backend

Hướng nghiên cứu

Bắt đầu trong minimax_mcp/server.py tại text_to_audio(), text_to_image() và music_generation(), sau đó đọc const.py cùng với các giá trị mặc định đã được ghi rõ trong tài liệu. Theo dõi cách từng tham số đi đến API và kiểm tra cấu trúc test hiện có trước khi thực hiện thay đổi. Công việc được xem là hoàn tất khi mọi range và enum được liệt kê đều được kiểm tra trước một lệnh gọi API, các hằng số được định nghĩa trong const.py và lỗi xác định rõ các giá trị không hợp lệ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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
Ngôn ngữ chính
Python
Star
1.6k
Fork
283
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của MiniMax-AI/MiniMax-MCP

Tất cả issue của MiniMax-AI/MiniMax-MCP

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.