# Local API compatibility, endpoint by endpoint

A precise v0.6.2 matrix for OpenAI, Anthropic Messages, selected Ollama endpoints, tool loops, structured output, API controls, and serving boundaries.

## Direct answer

v0.6.2 adds released tool loops, structured output, compatibility controls, and KV-cache quantization to scoped local APIs. Model management under /x/models remains a macMLX extension; Anthropic support is Messages-only; Ollama covers five selected endpoints; rerank remains a bi-encoder MVP. Unsupported schemas and parameter combinations return explicit 400 responses.

- Canonical: https://macmlx.app/api-compatibility/
- Last verified: 2026-07-15

## Page facts

- **OpenAI endpoint compatibility** — Released; since 0.5.3; last verified 2026-07-15. Chat, legacy completions, model listing, and embeddings use compatible request and response shapes. Compatibility is endpoint-specific. macMLX model load and unload routes under /x/models are project extensions, not OpenAI-compatible model management.
- **Anthropic Messages compatibility** — Released; since 0.5.3; last verified 2026-07-15. POST /v1/messages, including streaming, is available in v0.5.3. This is Messages API compatibility only, not compatibility with the full Anthropic API.
- **Selected Ollama endpoints** — Released; since 0.3.7; last verified 2026-07-15. macMLX supports /api/version, /api/tags, /api/show, /api/chat, and /api/generate. The compatibility layer has shipped since v0.3.7. It is a selected endpoint set, not a drop-in replacement for every Ollama API.
- **MCP server** — Released; since 0.5.0; last verified 2026-07-15. The CLI can expose local inference to MCP clients. The MCP server shipped in v0.5.0 and is separate from chat-side routing to external tools.
- **MCP client pool** — Released; since 0.5.3; last verified 2026-07-15. v0.5.3 includes managed MCP client connections. The pool manages external MCP processes and connections; integrated chat-side tool routing is a separate capability released in v0.6.0.
- **Integrated chat tool routing** — Released; since 0.6.0; last verified 2026-07-15. v0.6.0 ships multi-turn tool routing for OpenAI, Anthropic, and the GUI MCP loop. Protocol-specific validation keeps tool-call histories explicit; this routing is distinct from the MCP server and client-pool infrastructure.
- **Local embeddings** — Released; since 0.5.3; last verified 2026-07-15. POST /v1/embeddings shipped in v0.5.3. Encoder-family model detection exists, while using an unsuitable chat model can still produce vectors without semantic guarantees.
- **Bi-encoder rerank MVP** — Released; since 0.5.3; last verified 2026-07-15. POST /v1/rerank scores independently embedded texts with cosine similarity. This released MVP is not a cross-encoder reranker.
- **Eligibility-gated continuous batching** — Released; since 0.6.0; last verified 2026-07-15. v0.6.0 batches only eligible dense-text requests under real concurrency, with automatic serial fallback. The tagged 4-client benchmark measured 2.5–3.2× aggregate throughput. VLM, speculative decoding, Ollama, Anthropic, and embeddings remain serial.
- **Structured output** — Released; since 0.6.0; last verified 2026-07-15. v0.6.0 supports response_format with json_object and an explicit JSON Schema subset. Unsupported schema keywords return 400. VLM with structured output and tools with structured output are unsupported combinations and are explicitly rejected rather than silently degraded.
- **API compatibility pack** — Released; since 0.6.0; last verified 2026-07-15. v0.6.0 adds logit_bias, logprobs and top_logprobs, XTC, per-request LoRA adapters, and tools. An explicit compatibility matrix governs parameter combinations, and unsupported pairs return 400 instead of silently degrading.
- **KV-cache quantization** — Released; since 0.6.0; last verified 2026-07-15. v0.6.0 exposes kv_bits, kv_group_size, and quantized_kv_start for compatible requests. These controls change KV-cache precision, not model-weight precision. Nonpositive kv_bits disables the feature, and the compatibility matrix rejects unsupported model or request combinations.

## Sources

- https://github.com/magicnight/mac-mlx/releases/tag/v0.6.2
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/CHANGELOG.md
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Server/HummingbirdServer.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/MCP/MCPClientPool.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/MCP/ToolCallingSession.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/EmbeddingEngine.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/RerankScoring.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Batching/BatchScheduler.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/MLXSwiftEngine+BatchGenerationServing.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Constraint/ResponseFormatDecoder.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/GenerateRequest.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/MLXSwiftEngine.swift

## Related pages

- [How macMLX runs models on Apple Silicon](https://macmlx.app/architecture/)
- [macMLX questions, answered](https://macmlx.app/faq/)
- [macMLX v0.6.2](https://macmlx.app/releases/v0-6-2/)
- [macMLX and Ollama](https://macmlx.app/compare/ollama/)
