diff --git a/minimax_mcp/server.py b/minimax_mcp/server.py index ce74c5e..d625623 100644 --- a/minimax_mcp/server.py +++ b/minimax_mcp/server.py @@ -87,9 +87,6 @@ def text_to_audio( format: str = DEFAULT_FORMAT, language_boost: str = DEFAULT_LANGUAGE_BOOST, ): - if not text: - raise MinimaxRequestError("Text is required.") - payload = { "model": model, "text": text, @@ -111,6 +108,9 @@ def text_to_audio( if resource_mode == RESOURCE_MODE_URL: payload["output_format"] = "url" try: + if not text: + raise MinimaxRequestError("Text is required.") + response_data = api_client.post("/v1/t2a_v2", json=payload) audio_data = response_data.get('data', {}).get('audio', '') diff --git a/tests/test_server.py b/tests/test_server.py new file mode 100644 index 0000000..06b9655 --- /dev/null +++ b/tests/test_server.py @@ -0,0 +1,21 @@ +import importlib +import sys + +from mcp.types import TextContent + + +def load_server(monkeypatch): + monkeypatch.setenv("MINIMAX_API_KEY", "test-key") + monkeypatch.setenv("MINIMAX_API_HOST", "https://api.example.com") + sys.modules.pop("minimax_mcp.server", None) + return importlib.import_module("minimax_mcp.server") + + +def test_text_to_audio_returns_text_content_for_empty_text(monkeypatch): + server = load_server(monkeypatch) + + result = server.text_to_audio(text="") + + assert isinstance(result, TextContent) + assert result.type == "text" + assert result.text == "Failed to generate audio: Text is required."