mlx-serve-mcp
mlx-serve-mcp
Servidor MCP que convierte una instancia remota de mlx-serve en herramientas invocables — para que cualquier cliente MCP (Claude Code, Claude Desktop, Cline, ...) en cualquier dispositivo pueda generar imágenes, voz, música, vídeo y mallas 3D a través del ip:port de tu Mac.
mlx-serve ejecuta los modelos de forma nativa en Apple Silicon; este puente se comunica mediante MCP por un lado y con la API de medios estilo OpenAI de mlx-serve (/v1/images, /v1/audio, /v1/video, /v1/3d) por el otro. Nada se genera localmente: tu máquina solo se comunica por HTTP con el servidor.
┌──────────────┐ stdio/MCP ┌────────────────┐ HTTP ┌──────────────────┐
│ MCP client │ ◄──────────► │ mlx-serve-mcp │ ──────────► │ mlx-serve server │
│ (any device) │ │ (this package)│ ip:port │ (Apple Silicon) │
└──────────────┘ └────────────────┘ └──────────────────┘Instalación y ejecución
Requiere Python ≥ 3.10. Con uv instalado:
cd mlx-serve-mcp
uv sync # create venv + install deps
uv run mlx-serve-mcp --url 192.168.1.10:11234La URL acepta ip:port sin más (se asume http), host:port, o una URL completa http(s)://....
Configuración
Las opciones de CLI anulan las variables de entorno:
Indicador | Variable de entorno | Predeterminado | Significado |
|
|
| Dirección de mlx-serve |
|
| (ninguna) | Clave Bearer cuando el servidor se ejecuta con autenticación mediante clave API |
|
|
| Dónde se escriben los archivos multimedia generados |
|
|
| Tiempo de espera HTTP en segundos (el vídeo/la música pueden tardar muchos minutos) |
Modelos por defecto
Cada herramienta multimedia acepta un argumento model opcional. Cuando se omite, la herramienta recurre a un valor predeterminado configurable (variable de entorno → integrado):
Variable de entorno | Herramienta | Predeterminado integrado |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Recomendación de modelos (basada en pruebas reales con mlx-serve):
ddalcu/Mage-Flow-Turbo-MLX-Serve-8bites rápido, pero su calidad está por debajo deRunpod/FLUX.2-klein-4B-mflux-4bit— en particular, la generación de rostros tiende a salir distorsionada. Sin embargo, es mucho más fiable quemlx-community/flux2-klein-9b-4bita la hora de renderizar texto en imágenes, así que para arte centrado en texto (pósters, tipografía, letreros) en lugar de retratos,ddalcu/Mage-Flow-Turbo-MLX-Serve-8bites la opción recomendada.
ddalcu/Mage-Flow-Edit-Turbo-MLX-Serve-8bitpuede dar un error de peso/parámetro en mlx-serve (Model load failed: MissingMageFlowWeight), lo que hace que el modelo no se pueda usar.
mlx-community/flux2-klein-9b-4bittiene un problema similar de fallo al cargar.En resumen: usa
Runpod/FLUX.2-klein-4B-mflux-4bittanto paragenerate_imagecomo paraedit_image— es el único modelo de imagen de este grupo que carga de forma fiable y produce buenos resultados (incluidos los rostros).
Defínelas en la configuración de tu cliente MCP para fijar los modelos que realmente tienes instalados en el servidor:
{
"mcpServers": {
"mlx-serve": {
"command": "uv",
"args": ["--directory", "/path/to/mlx-serve-mcp", "run", "mlx-serve-mcp", "--url", "192.168.1.10:11234"],
"env": {
"MLX_SERVE_API_KEY": "private",
"MLX_SERVE_IMAGE_MODEL": "ddalcu/Mage-Flow-Turbo-MLX-Serve-8bit",
"MLX_SERVE_TTS_MODEL": "mlx-community/Qwen3-TTS-12Hz-1.7B-Base-bf16"
}
}
}
}Related MCP server: imagine-mcp
Integración con tu cliente MCP
Claude Code (.mcp.json / claude mcp add):
{
"mcpServers": {
"mlx-serve": {
"command": "uv",
"args": [
"--directory", "/absolute/path/to/mlx-serve-mcp",
"run", "mlx-serve-mcp",
"--url", "192.168.1.10:11234"
]
}
}
}Claude Desktop (claude_desktop_config.json) usa la misma estructura command/args. Añade "env": {"MLX_SERVE_API_KEY": "..."} si el servidor requiere una clave.
Herramientas
Herramienta | Endpoint | Devuelve |
|
| texto de disponibilidad |
|
| IDs de modelo + indicadores de capacidad (imagen/habla/música/vídeo/3d/chat) |
|
| cargar en memoria GPU (opcionalmente como predeterminado) |
|
| liberar memoria GPU |
|
| imagen en línea + ruta del PNG guardado |
| mismo | imagen en línea + ruta del PNG guardado |
|
| ruta del WAV guardado |
|
| ruta del WAV guardado |
|
| ruta del MP4 codificado |
|
| ruta del GLB guardado |
Los archivos de salida se guardan en <output-dir>/{images,audio,video,mesh}/ con nombres con marca de tiempo; cada herramienta informa de rutas absolutas en su texto de resultado.
Indicaciones
Plantillas de indicaciones de un clic expuestas a través de prompts/list / prompts/get:
Indicación | Qué hace |
| Póster/tipografía centrada en texto (Mage-Flow-Turbo — el mejor en renderizado de texto) |
| Retrato realista (FLUX.2-klein-4B — el mejor para rostros) |
| Pista de música hip-hop lo-fi (MiniMax-Music3) |
| TTS natural (Qwen3-TTS) |
| Foto recortada → GLB texturizado (Hunyuan3D-2.1) |
| Vídeo de vista previa de 9 fotogramas (la vía más rápida) |
Recursos
Fuentes de datos en vivo expuestas a través de resources/list / resources/read:
Recurso | URI | Contenido |
|
| Inventario de modelos en vivo con indicadores de capacidad |
|
| Estado, versión, modelos cargados |
|
| Modelo recomendado por herramienta (probado en el mundo real) |
LobeHub Marketplace
Este paquete está publicado en el LobeHub MCP Marketplace con un manifiesto completo lhm.plugin.json y un skill.md para el descubrimiento por parte de agentes.
Notas de diseño
Vídeo: mlx-serve responde con bytes de fotogramas RGB8 crudos (+ pista PCM s16le opcional), no con un archivo codificado. Este puente los multiplexa en MP4 H.264/AAC mediante ffmpeg — prefiriendo el
ffmpegdel sistema y recurriendo al binario estático incluido con la dependenciaimageio-ffmpeg, por lo que no se necesita instalación adicional.Imágenes: se devuelven tanto en línea (contenido de imagen MCP, vista previa instantánea) como archivos PNG guardados.
Errores: los mensajes de error 400 con nombre de mlx-serve (p. ej.
'speed' must be in (0, 5]) se muestran tal cual para que el LLM que llama pueda autocorregirse.Campos LoRA: no se exponen a propósito: requieren rutas
.safetensorsen el disco del servidor, lo que rara vez tiene sentido para llamadas remotas.Las generaciones largas son simplemente peticiones HTTP lentas; aumenta
--timeoutsi tus clips son ambiciosos.
Desarrollo
uv sync
uv run pytest # unit tests (mocked HTTP, no server required)
uv run mlx-serve-mcp --helpMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for AI-powered image, audio, and video generation, enabling media creation directly from Claude, Cursor, and other MCP clients.1144MIT
- AlicenseBqualityAmaintenanceProduction-grade MCP server for image and video understanding and generation across Gemini, OpenAI, and Grok.54Apache 2.0
- FlicenseAqualityCmaintenanceLocal multimodal MCP server for vision, document, audio, video, and GUI automation, all processed locally on Apple Silicon for privacy and security.9
- AlicenseAqualityAmaintenanceStateless MCP server that wraps OpenAI's Sora, Whisper, GPT-4o Audio, and TTS APIs for generating videos, images, and processing audio.96MIT
Related MCP Connectors
MCP server for MiniMax H3 multimodal video generation
Remote MCP server for RunComfy Serverless API (ComfyUI): deployments and async inference.
MCP server for Wan AI video generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Congenital/mlx-serve-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server