Repository navigation
MLX Runner v1.1.0
Tool calling in the local server (OpenAI-compatible):
- Function tools in Chat Completions (
tools,tool_choice,parallel_tool_calls, assistanttool_calls,toolmessages) and the Responses API (function tools,function_call/function_call_outputitems,function_calloutput items with their streaming events), streaming and non-streaming. - Prompts use each model's native tool format: Hermes (Qwen2.5, Qwen3), Llama 3.1+ and Mistral v3. They match the official chat templates and
mistral-commonbyte for byte, which tests enforce. tool_choice:auto,none,required(the function name is constrained to the defined tools during decoding) and a named function.- Requests are validated: tool count and names, JSON object arguments, tool results that must answer an earlier call, and a nesting limit. Models without a tool format (Phi-3.5) answer tool requests with a 400.
- Tested end to end with the official
openaiPython SDK on Qwen3 0.6B/8B, Qwen2.5 0.5B, Llama 3.2 1B and Mistral 7B v0.3.
Downloads, checksums and verification: https://mlx-runner.21no.de/#verify