模型管理服务器

LM Studio MCP Server是一个用于管理AI模型的服务器,支持模型的加载、卸载、配置和详细信息查看,适用于AI开发和研究场景。

  • by seajhawk
  • JavaScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 seajhawk/lmstudio-mcp

使用说明

LM Studio MCP服务器

一种模型上下文协议(MCP)服务器 LM工作室 通过标准化工具实现模型管理。

特性

  • 📋 列出型号 -查看所有可用型号及其当前状态
  • 🚀 负荷模型 -使用可配置的TTL将模型加载到内存中
  • 🛑 卸载模型 -立即从内存中卸载模型
  • ⚙️ 配置模型 -调整TTL和草稿模型等模型设置
  • 📊 型号详细信息 -获取特定型号的详细信息

先决条件

  • Node.js >= 18.0.0
  • LM工作室 在启用本地服务器的情况下运行
  • LM Studio本地服务器在端口1234(默认)或自定义端口上运行

安装

npm install
npm run build

快速启动(构建和运行)

按照以下步骤在本地构建和运行MCP服务器。

  1. 安装依赖项并构建项目:
npm install
npm run build
  1. 启动服务器(使用中的编译文件 dist):
npm start
  1. 服务器将MCP通信写入 stdout 并记录到 stderr.

环境变量提示:

  • 默认LM Studio URL: http://localhost:1234.
  • 要使用自定义LM Studio URL,请设置 LM_STUDIO_BASE_URL 在开始之前。

PowerShell(Windows)示例:

$env:LM_STUDIO_BASE_URL = "http://localhost:1234"
npm start

命令提示符(Windows)示例:

set LM_STUDIO_BASE_URL=http://localhost:1234 && npm start

macOS/Linux示例:

LM_STUDIO_BASE_URL="http://localhost:1234" npm start

开发工作流程:

  • 更改后重建(在一个终端中): npm run watch
  • 运行服务器(在另一个终端中): npm run dev (用检查器启动Node)

您还可以直接使用以下命令运行编译后的脚本 node dist/index.js 如果愿意的话。

配置

LM工作室设置

  1. 打开LM工作室
  2. 去 开发者 标签
  3. 启用本地服务器(默认端口:1234)
  4. 如果远程访问,可选择启用“在本地网络上服务”

环境变量

  • LM_STUDIO_BASE_URL -LM Studio API的基本URL(默认值: http://localhost:1234)

用法

使用克劳德桌面

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "lmstudio": {
      "command": "node",
      "args": ["/path/to/lmstudio-mcp/dist/index.js"],
      "env": {
        "LM_STUDIO_BASE_URL": "http://localhost:1234"
      }
    }
  }
}

与其他MCP客户端

直接运行服务器:

node dist/index.js

服务器按照MCP协议通过stdio进行通信。

可用工具

list_models

列出所有可用型号及其当前状态(已加载/未加载)。

参数: 无

示例响应:

[
  {
    "id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF",
    "type": "llm",
    "publisher": "Meta",
    "architecture": "llama",
    "state": "loaded",
    "max_context_length": 8192
  }
]

get_model_details

获取特定型号的详细信息。

参数:

  • model_id (string,必填)-模型的ID

例子:

{
  "model_id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF"
}

load_model

使用可配置的生存时间将模型加载到内存中。

参数:

  • model_id (string,必填)-要加载的模型的ID
  • ttl (数字,可选)-自动卸载前的生存时间(秒)(默认值:3600)

例子:

{
  "model_id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF",
  "ttl": 7200
}

unload_model

立即从内存中卸载模型。

参数:

  • model_id (string,必填)-要卸载的模型的ID

例子:

{
  "model_id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF"
}

configure_model

配置TTL和草稿模型等模型设置以进行推测解码。

参数:

  • model_id (string,必填)-要配置的模型的ID
  • ttl (数字,可选)-生存时间(秒)
  • draft_model (字符串,可选)-用于推测解码的模型ID草案

例子:

{
  "model_id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF",
  "ttl": 1800,
  "draft_model": "small-draft-model"
}

运作原理

LM Studio使用JIT(准时制)模型加载。当发出推理请求时,模型会按需加载:

  • 加载中:发出推理请求会自动加载具有指定TTL的模型
  • 卸载:TTL到期后或TTL设置为0时,型号会自动卸载
  • 配置:模型设置通过推理请求参数应用

发展

构建

npm run build

观看模式

npm run watch

调试

npm run dev

API 参考

此服务器与 LM Studio开发人员API:

  • GET /api/v0/models -列出所有可用型号
  • GET /api/v0/models/{model} -获取模型详细信息
  • POST /api/v0/chat/completions -用于加载/配置模型

故障排除

连接被拒绝

  • 确保LM Studio正在运行
  • 验证是否在开发人员设置中启用了本地服务器
  • 检查端口1234(或自定义端口)是否可访问

未找到型号

  • 使用验证型号ID是否正确 list_models
  • 确保模型已在LM Studio中下载

模型无法加载

  • 检查可用系统内存
  • 验证模型与您的系统的兼容性
  • 查看LM Studio日志中的错误

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。

链接