Unified MCP server for managing local model runtimes (Ollama, LM Studio, and more): provider-agnostic discovery, lifecycle, hardware-fit, and delegated inference.
An operations-first control plane for the models on your own machine. It discovers, inspects, fits, and manages local runtimes over their local HTTP APIs, exposing one consistent tool surface across them. It runs over stdio only and is a client to your runtimes — it never opens a network listener of its own. Hosted providers (such as Moonshot AI) are an explicit opt-in behind the same tool surface.
The complete and embed tools delegate (offload) inference to a local model for cost control and privacy — keeping tokens and data on your hardware instead of a hosted API. They are inference primitives, not a conversational chat surface. complete streams tokens via MCP progress notifications when the client supplies a progress token.
Each runtime is an adapter behind a single Provider interface. Every tool takes an optional provider argument; omit it and the tool operates across all detected runtimes.
| Adapter | Default host | Notes |
|---|---|---|
| Ollama | http://localhost:11434 | Native REST + OpenAI-compatible /v1; load/unload via keep_alive. |
| LM Studio | http://localhost:1234 | REST /api/v0 + OpenAI-compatible; lms CLI for load/unload/pull when present. |
| llama.cpp | http://localhost:8080 | Native /health /props /slots + OpenAI /v1. |
| OpenAI-compat | unset | Opt-in via OPENAI_COMPAT_HOST (vLLM, Jan, etc.). |
| Moonshot AI (Kimi) | https://api.moonshot.ai/v1 | Hosted OpenAI-compatible; requires MOONSHOT_API_KEY. complete/listModels only. |
Runtimes, host, live status, capabilities.
Installed models across providers.
Models resident in memory.
Detailed model metadata.
Download a model (multiple GB).
Delete a model; requires confirm.
Load a model into memory.
Evict a model from memory.
Liveness and version per provider.
RAM, CPU, and GPU/VRAM.
Does weight + KV cache fit in VRAM or RAM?
Latency and tokens/sec.
Search a curated model catalog.
Recommend by task and hardware fit.
Delegate a completion (streaming).
Delegate embedding generation.
npx @tmhs/local-ai-mcp
OLLAMA_HOST — default http://localhost:11434LMSTUDIO_HOST — default http://localhost:1234LLAMACPP_HOST — default http://localhost:8080OPENAI_COMPAT_HOST — optional generic OpenAI-compatible /v1 hostOPENAI_COMPAT_API_KEY — optional Bearer for OpenAI-compatMOONSHOT_API_KEY — required to enable the Moonshot adapterMOONSHOT_HOST — default https://api.moonshot.ai/v1LOCAL_AI_REQUEST_TIMEOUT_MS — default 120000LOCAL_AI_DETECT_TIMEOUT_MS — default 1500LOCAL_AI_PULL_TIMEOUT_MS — default 3600000 (1 hour)