@iflow-mcp/seajhawk-lmstudio-mcp
v0.1.0
Published
MCP server for LM Studio - manage models, load/unload, and configure settings
Readme
LM Studio MCP Server
A Model Context Protocol (MCP) server for LM Studio that enables model management through standardized tools.
Features
- 📋 List Models - View all available models and their current state
- 🚀 Load Models - Load models into memory with configurable TTL
- 🛑 Unload Models - Immediately unload models from memory
- ⚙️ Configure Models - Adjust model settings like TTL and draft models
- 📊 Model Details - Get detailed information about specific models
Prerequisites
- Node.js >= 18.0.0
- LM Studio running with local server enabled
- LM Studio local server running on port 1234 (default) or custom port
Installation
npm install
npm run buildQuickstart (Build & Run)
Follow these steps to build and run the MCP server locally.
- Install dependencies and build the project:
npm install
npm run build- Start the server (uses the compiled files in
dist):
npm start- The server writes MCP communication to
stdoutand logs tostderr.
Environment variable tips:
- Default LM Studio URL:
http://localhost:1234. - To use a custom LM Studio URL, set
LM_STUDIO_BASE_URLbefore starting.
PowerShell (Windows) example:
$env:LM_STUDIO_BASE_URL = "http://localhost:1234"
npm startCommand Prompt (Windows) example:
set LM_STUDIO_BASE_URL=http://localhost:1234 && npm startmacOS / Linux example:
LM_STUDIO_BASE_URL="http://localhost:1234" npm startDevelopment workflow:
- Rebuild on change (in one terminal):
npm run watch - Run the server (in another terminal):
npm run dev(starts Node with the inspector)
You can also run the compiled script directly with node dist/index.js if preferred.
Configuration
LM Studio Setup
- Open LM Studio
- Go to the Developer tab
- Enable the local server (default port: 1234)
- Optionally enable "Serve on Local Network" if accessing remotely
Environment Variables
LM_STUDIO_BASE_URL- Base URL for LM Studio API (default:http://localhost:1234)
Usage
With Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"lmstudio": {
"command": "node",
"args": ["/path/to/lmstudio-mcp/dist/index.js"],
"env": {
"LM_STUDIO_BASE_URL": "http://localhost:1234"
}
}
}
}With Other MCP Clients
Run the server directly:
node dist/index.jsThe server communicates over stdio following the MCP protocol.
Available Tools
list_models
List all available models with their current state (loaded/not-loaded).
Parameters: None
Example Response:
[
{
"id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF",
"type": "llm",
"publisher": "Meta",
"architecture": "llama",
"state": "loaded",
"max_context_length": 8192
}
]get_model_details
Get detailed information about a specific model.
Parameters:
model_id(string, required) - The ID of the model
Example:
{
"model_id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF"
}load_model
Load a model into memory with configurable Time-To-Live.
Parameters:
model_id(string, required) - The ID of the model to loadttl(number, optional) - Time-To-Live in seconds before auto-unload (default: 3600)
Example:
{
"model_id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF",
"ttl": 7200
}unload_model
Unload a model from memory immediately.
Parameters:
model_id(string, required) - The ID of the model to unload
Example:
{
"model_id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF"
}configure_model
Configure model settings such as TTL and draft model for speculative decoding.
Parameters:
model_id(string, required) - The ID of the model to configurettl(number, optional) - Time-To-Live in secondsdraft_model(string, optional) - Draft model ID for speculative decoding
Example:
{
"model_id": "lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF",
"ttl": 1800,
"draft_model": "small-draft-model"
}How It Works
LM Studio uses JIT (Just-In-Time) model loading. Models are loaded on-demand when inference requests are made:
- Loading: Making an inference request automatically loads the model with the specified TTL
- Unloading: Models auto-unload after TTL expires, or immediately when TTL is set to 0
- Configuration: Model settings are applied through inference request parameters
Development
Build
npm run buildWatch Mode
npm run watchDebug
npm run devAPI Reference
This server interfaces with the LM Studio Developer API:
GET /api/v0/models- List all available modelsGET /api/v0/models/{model}- Get model detailsPOST /api/v0/chat/completions- Used for loading/configuring models
Troubleshooting
Connection Refused
- Ensure LM Studio is running
- Verify the local server is enabled in Developer settings
- Check that port 1234 (or custom port) is accessible
Model Not Found
- Verify the model ID is correct using
list_models - Ensure the model is downloaded in LM Studio
Model Won't Load
- Check available system memory
- Verify model compatibility with your system
- Review LM Studio logs for errors
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
