Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Bug for MCP&API]: Slashes in text break local output file saving

Abierto Apto para principiantes
#106 0 comentarios 0 reacciones 0 asignados Ver en GitHub

@LingYi-Liang ya está trabajando en esto.

Desde el 3/10/2026.

  • #107 de @LingYi-Liang — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
88/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

Comienza en minimax_mcp/utils.py, en build_output_file(), y luego inspecciona la ruta de guardado local en minimax_mcp/server.py. Reproduce el problema con el script proporcionado de TemporaryDirectory y añade una prueba de regresión que cubra texto con barras inclinadas de estilo fecha. Se considera terminado cuando ambos formatos de fecha producen archivos directamente dentro del directorio de salida solicitado y la escritura se realiza correctamente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Text starting with a date like 2026/10/03 breaks local output saving for
text_to_audio (MINIMAX_API_RESOURCE_MODE=local).

build_output_file() takes the first 10 characters and only replaces spaces.
The result is t2a_2026/10/03_<timestamp>.mp3. The slashes are treated as path
separators, but those directories don't exist. Changing the date to 2026-10-03
lets the file save normally.

Reproduction

Run this from the repository root with the Python dependencies installed. It
imports the unmodified utility and writes test bytes directly to a temporary
directory, without calling the API. Both inputs use the same absolute output
path, which also avoids the separate path-joining issue.

from pathlib import Path
from tempfile import TemporaryDirectory

from minimax_mcp.utils import build_output_file, build_output_path

records = []
with TemporaryDirectory() as directory:
    output_path = build_output_path(str(Path(directory) / "output"))
    for text in ("2026-10-03", "2026/10/03"):
        output_file = build_output_file("t2a", text, output_path, "mp3")
        output_path.parent.mkdir(parents=True, exist_ok=True)
        try:
            with open(output_path / output_file, "wb") as stream:
                stream.write(b"local write probe")
            result = "saved"
        except OSError as error:
            result = type(error).__name__
        parent_matches = output_file.parent == output_path
        print(text, "parent_matches:", parent_matches, "write:", result)
        records.append({"text": text, "parent_matches": parent_matches, "write": result})

Both runs gave this output:

2026-10-03 parent_matches: True write: saved
2026/10/03 parent_matches: False write: FileNotFoundError

Both inputs should save directly inside the requested directory.

Environment

Windows, Python 3.11.9, package version 0.0.19 at
0856b9aef8a9d676bb63bdd6b6426d7b640a3b7a.
Models used and Trace-ID: N/A (local reproduction, no request).

The relevant code is filename construction
and the local audio save path.

I've checked the Python/JS READMEs, MCP guide and existing issues. #73/#74 address
repeated path joining, and #92 covers nested-directory writability; none changes
how text becomes a filename.

Would you be open to a small fix that replaces path separators in the text,
keeps ordinary Unicode characters, and adds a file-write regression test?

Lenguaje dominante
Python
Estrellas
1.6k
Forks
284
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de MiniMax-AI/MiniMax-MCP

Todos los issues de MiniMax-AI/MiniMax-MCP

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.