mcp-mlx-launcher
mcp-mlx-launcher is an MCP server that lets AI agents autonomously manage local LLM instances powered by mlx-lm on Apple Silicon Macs.
Check system environment: Diagnose available unified memory and confirm Apple Silicon architecture readiness.
Search MLX models: Search Hugging Face for MLX-format models by keyword, with results including download counts and model IDs.
Download a model: Pre-download and cache a specific MLX model from Hugging Face locally before launching.
Launch an LLM server: Start an
mlx_lm.serversubprocess in the background for a given model and port, with an optional memory requirement guard.Restart an LLM server: Gracefully stop and restart a server on a given port, optionally switching to a different model.
Shutdown an LLM server: Safely terminate a running LLM server process on a specified port to free resources.
Check server status: Verify whether a server is currently running and listening on a specified port.
List running servers: Get all background LLM server processes with their ports and loaded models.
Auto-cleanup: Automatically shuts down all managed LLM processes when the MCP server disconnects.
Allows searching Hugging Face for available MLX models and downloading them locally to cache before launching.
mcp-mlx-launcher
An MCP (Model Context Protocol) server designed to autonomously manage, launch, and shutdown local mlx-lm instances on Apple Silicon (Mac) environments.
This tool empowers AI agents (like Cline, Claude Desktop, etc.) to start local LLM servers on demand, check their status, prepare environments, and gracefully shut them down when no longer needed, saving system resources.
💡 Proven in Production: This server was extracted as a general-purpose, reusable module from the cingulater project, where it is actively used and running in production.
Features
System Environment Check: Verify system memory and architecture (Apple Silicon) to ensure readiness.
Model Search & Download: Search Hugging Face for available MLX models and download them locally to cache before launching.
Launch & Manage Local LLMs: Start, stop, and restart an
mlx-lmserver with any supported model in the background.Status Check: Verify if a specific port is currently active and listening.
Apple Silicon Optimized: Built specifically to manage MLX-based local models.
Auto Cleanup: Automatically cleans up and shuts down all managed LLM processes when the MCP server disconnects or shuts down, preventing resource leaks.
Prerequisites
macOS (Apple Silicon M1/M2/M3/M4)
Python 3.10 or higher
mlx-lminstalled in your environment (pip install mlx-lm)
Installation
# Clone the repository
git clone [https://github.com/YOUR_USERNAME/mcp-mlx-launcher.git](https://github.com/YOUR_USERNAME/mcp-mlx-launcher.git)
cd mcp-mlx-launcher
# Install dependencies
pip install -e .Usage (MCP Configuration)
To use this server with your MCP client (e.g., Claude Desktop or Cline), add the following to your MCP configuration file:
{
"mcpServers": {
"mcp-mlx-launcher": {
"command": "python",
"args": [
"-m",
"mcp_mlx_launcher.server"
]
}
}
}Available Tools
Once connected, the MCP server provides the following tools to the AI agent:
check_system_environment(): Diagnoses the current system environment, returning available unified memory (GB) and architecture details.check_llm_status(port: int): Returnstrueif a server is currently running on the specified port.list_running_servers(): Retrieves a list of all local LLM servers (ports and models) currently running in the background.search_mlx_models(search_query: str = "", limit: int = 10): Searches Hugging Face for available MLX format models and lists their details (like download count and model ID).download_model(model_name: str): Pre-downloads a specified MLX model from Hugging Face and caches it locally. Useful for preparing large models before launching.launch_llm_server(model_name: str, port: int, memory_requirement_gb: float = 4.0): Launches anmlx_lm.serverinstance in the background. Includes an optional memory requirement check to prevent out-of-memory errors.restart_llm_server(port: int, model_name: str = None, memory_requirement_gb: float = 4.0): Gracefully stops the running server on the given port and restarts it. Ifmodel_nameis omitted, it restarts with the currently loaded model.shutdown_llm_server(port: int): Gracefully terminates the running LLM server on the given port.
Maintenance
Latest Blog Posts
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/globalpocket/mcp-mlx-launcher'
If you have feedback or need assistance with the MCP directory API, please join our Discord server