Skip to content

Feature Request: Add max-kv-size Support to MLX HTTP Server #615

Description

@stperic

Problem
mlx_lm.generate() supports max_kv_size parameter, but mlx_lm.server doesn't. This prevents users from controlling KV cache size for memory optimization and performance tuning.
Proposed Solution
Add max-kv-size support in one or more ways:
Option 1: Startup Parameter
bashpython -m mlx_lm.server --model --max-kv-size 4096
Option 2: API Request Parameter
pythonresponse = client.chat.completions.create(
model="local-model",
messages=[...],
extra_body={"max_kv_size": 4096}
)
Option 3: Both (Recommended)

Startup parameter sets default
API requests can override per-request

Use Cases

Memory optimization: Set smaller cache on limited RAM systems
Long context: Increase cache for document processing
Mixed workloads: Different cache sizes for different request types

Benefits

Better memory management
Performance tuning flexibility
Feature parity with mlx_lm.generate()
Aligns with other frameworks (vLLM, TGI, mlx-openai-server)

Related

Issue #1170: Context size configuration
Third-party mlx-openai-server already implements --context-length

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions