local-llm-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@local-llm-mcp list my local GGUF models and estimate VRAM for the smallest one"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
local-llm-mcp
本地模型管家 MCP:让任意 MCP 客户端(ZCode / Claude Code / Cursor…)一句话用上 本地 GGUF 模型——列模型、估显存、启停 llama-server、代理对话。
针对 8GB 显存(RTX 4060 Laptop)设计:显存裁判(建议 offload 层数)+ 用完即关(闲置自动卸载)是核心能力,不是附属功能。
MCP 工具(9个)
Tool | 作用 |
| 连通性测试 |
| 配置自检(模型目录 / llama-server 路径) |
| 扫描模型目录,返回架构/量化/层数/大小/多模态标志 |
| 估算显存占用(权重+KV+开销),附建议 offload 层数 |
| 在显存预算内建议最大 offload 层数 |
| 启动 llama-server 并阻塞到健康检查通过 |
| 停止服务释放显存(幂等;PID 身份校验防误杀) |
| 查询运行状态(进程/健康/闲置计时) |
| 对话转发到已加载模型(OpenAI 消息格式),自动剥离思考块 |
典型用法:estimate_vram 看放不放得下 → start_server 启动(MoE 大模型加
extra_args=["--cpu-moe"] 做 CPU+GPU 混合推理,8GB 卡跑 35B-A3B 约 10~15 tok/s)
→ chat 对话 → 用完 stop_server。忘记停也没关系:默认闲置 10 分钟自动卸载。
状态持久化在磁盘上,MCP 进程重启后 stop_server / server_status 依然有效。
Related MCP server: lmstudio-local
快速开始
# 1. 安装 uv(Windows)
winget install astral-sh.uv
# 2. 克隆并同步依赖(自动使用 Python 3.12)
git clone https://github.com/Qinlupfu/local-llm-mcp.git
cd local-llm-mcp
uv sync
# 3. 按需设置环境变量(见下表),验证工具链
uv run python scripts/verify_phase0.pyllama.cpp 运行时需自备:从 llama.cpp releases
下载对应平台的预编译包(如 llama-bXXXX-bin-win-cuda-13.3-x64.zip),把目录设为
LLM_MCP_LLAMA_DIR。系统已装 CUDA toolkit(PATH 里有 cudart)时无需额外 cudart 包。
测试
uv run pytest tests/ -v # 单元测试(全部 mock,不碰真实进程/GPU)
uv run python scripts/integration_test.py # 真实集成:Gemma-1B 全生命周期 + 闲置卸载集成测试会真实启动/停止 llama-server 并做一次事实问答,需要本机已配置好模型与运行时。
ZCode 注册
写入用户级配置 ~/.zcode/cli/config.json → mcp.servers(其他客户端同理):
"local-llm": {
"command": "uv",
"args": ["--directory", "E:\\AI-models\\local-llm-mcp", "run", "local-llm-mcp"]
}配置项(环境变量覆盖)
变量 | 默认值 | 说明 |
|
| GGUF 模型根目录 |
|
| llama.cpp 目录 |
|
| llama-server 端口 |
|
| chat 超时(秒);35B 混合推理较慢,给足余量 |
|
| 启动健康等待上限(秒) |
|
| 闲置自动卸载(秒),0=不自动卸载;应大于 chat 超时 |
|
| 运行时状态文件 |
|
| llama-server 日志目录 |
开发约定
Python 3.12(
.python-version已锁定;系统 3.14 太新,部分轮子未编译)。本项目用"任务书工作流"开发:
docs/tasks/下每个 Phase 一份任务书 (角色/接口/上下文/验收四段),交给本地 coding 模型写模块代码, 人负责集成层、接口钉死和"咒语级"细节(进程 API、库版本差异)。集成层(
server.py的 tool 注册)只做参数透传和LocalLlmError→{"ok": false, "error": 中文消息}的包装,不写业务逻辑。
Available Tools
9 toolschatChatA
把对话发给已加载的本地模型(OpenAI 消息格式 [{"role","content"}])。
先用 start_server 启动模型;返回 {"content", "reasoning", "model", "usage"}。
Inputs: messages (required), max_tokens, temperature. Returns: object
estimate_vramEstimate VramC
估算模型显存占用(权重+KV+开销),附带建议的 GPU offload 层数 (返回中的 suggested_gpu_layers 字段)。
Inputs: model_id (required), ctx_len. Returns: object
list_modelsList ModelsB
扫描本地模型目录,返回所有 GGUF 主模型的元数据(含多模态投影探测)。
Inputs: no named parameters. Returns: result
pingPingA
连通性测试,返回 pong。
Inputs: no named parameters. Returns: result
runtime_infoRuntime InfoA
返回模型目录与 llama-server 路径,用于确认配置就绪。
Inputs: no named parameters. Returns: object
server_statusServer StatusA
查询本地模型服务状态(进程/健康/加载的模型/闲置计时)。
Inputs: no named parameters. Returns: object
start_serverStart ServerA
启动 llama-server 加载指定模型,阻塞到健康检查通过。
gpu_layers=None 表示全量进显存;显存不够的模型可用 suggest_gpu_layers 的结果, MoE 大模型混合推理推荐 extra_args=["--cpu-moe"]。
Inputs: model_id (required), ctx_len, extra_args, gpu_layers. Returns: object
stop_serverStop ServerA
停止本地模型服务并释放显存。幂等:未运行时也正常返回。
Inputs: no named parameters. Returns: object
suggest_gpu_layersSuggest Gpu LayersC
在显存预算内建议最大的 GPU offload 层数;放不下时提示需要 CPU 混合。
Inputs: model_id (required), ctx_len, budget_gb. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools target distinct actions: ping, runtime_info, list_models, start/stop/status, chat. The only notable overlap is between estimate_vram and suggest_gpu_layers, since estimate_vram already returns a suggested_gpu_layers field; an agent could be unsure which to call for layer suggestions. Descriptions help but this pair remains somewhat confused.
All names use snake_case, which is consistent. However, the pattern is mixed: some are verb_noun (list_models, start_server, estimate_vram), while others are noun phrases (runtime_info, server_status) or simple verbs (ping, chat). Minor deviations keep it from a perfect verb_noun pattern.
Nine tools is well-scoped for local LLM server management. The set covers lifecycle, inspection, resource estimation, and inference without obvious bloat. Each tool has a clear role, making the count appropriate.
The surface covers core workflows: start/stop server, status, model listing, VRAM estimation, GPU layer suggestion, and chat. Minor gaps exist, such as no tool to stream or cancel an in-progress chat, no model download, and no configuration update. These are workable around but leave the surface slightly incomplete.
Maintenance
Related MCP Connectors
Chat, image, video, and audio models from many vendors behind one remote MCP server and one key.
LLM cost optimization gateway, repo token-waste auditor & model arbitrage MCP server.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
AlicenseAqualityBmaintenanceUnified MCP server for managing local model runtimes (Ollama, LM Studio, etc.), enabling provider-agnostic discovery, lifecycle management, hardware-fit checks, and delegated inference.22516 npmCreative Commons Attribution Non Commercial No Derivatives 4.0 International- FlicenseBqualityCmaintenanceEnables MCP clients to administer a local LM Studio instance: loading, estimating, downloading, configuring and unloading models, running chat and embedding inference, diagnosing the server, engines and hardware, and managing MCP connectors with conflict-safe configuration. It also builds a local document index supporting citation-checked search and answers grounded in TXT, Markdown, PDF and DOCX files.28-
- AlicenseNot gradedqualityBmaintenanceEnables local llama.cpp inference and dotbot agent workflows through MCP, providing one-shot chat completions and agentic tool loops.MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP-compatible assistants to manage, run, and interact with local or cloud-hosted LLM models, including chat, text generation, embeddings, model operations, and optional web search/fetch.923 npmAGPL 3.0