luaLLM-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., "@luaLLM-MCPacquire model mistral-7b"
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.
luaLLM-MCP
MCP Server for luaLLM - safe model management via leases.
Installation
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install the MCP server
make installRelated MCP server: MCP Server with Local LLM
Configuration
Runtime state is stored in OS-appropriate application data directories:
Linux/macOS:
~/.config/luaLLM-MCP/Windows:
%LOCALAPPDATA%\luaLLM-MCP\
Override with:
export LUALLM_MCP_STATE_DIR=/custom/path
export LUALLM_MCP_LEASE_TTL_SECONDS=7200 # 2 hours (default)Usage
# Run the MCP server
make run
# Or directly with uv
uv run python mcp_server.pyThe server uses stdio transport for MCP communication. It will print startup info and then wait for requests from an MCP client.
Manual Testing
Test that the server initializes correctly:
uv run python -c "
import asyncio
from mcp import StdioServerParameters
from mcp.client.stdio import stdio_client
from mcp import ClientSession
async def test():
params = StdioServerParameters(command='uv', args=['run', 'python', 'mcp_server.py'])
async with stdio_client(params) as (read_stream, write_stream):
async with ClientSession(read_stream, write_stream) as session:
await session.initialize()
tools = await session.list_tools()
print(f'Found {len(tools.tools)} tools:')
for t in tools.tools:
print(f' - {t.name}')
asyncio.run(test())
"Expected output:
Found 9 tools:
- list_models
- get_model_info
- get_server_status
- get_capabilities
- acquire_model
- release_model
- get_model_logs
- health_check
- list_leasesMCP Tools
Tool | Description |
| List all available models |
| Get model metadata |
| Get running servers |
| List MCP capabilities |
| Acquire lease on model |
| Release lease |
| Get model logs |
| Check luaLLM availability |
| List current leases |
Safety Features
Allowlist only: Only approved tools exposed
Lease-based lifecycle: Models only stopped when all leases released
Instance isolation: Different presets = different instances
Atomic state writes: State file updated safely
Structured errors: All responses are JSON with success/error fields
Development
make check # Verify imports work
make test # Run tests
make clean # Clean build artifactsArchitecture
Lease Model
Models are "leased" when started via MCP. Workflows acquire leases via acquire_model() and release them with release_model(lease_id). A model is only stopped when the last lease is released.
State Schema
{
"schema_version": "1.0",
"instances": [
{
"instance_id": "uuid",
"model": "mistral-7b",
"preset": "throughput",
"managed_by_mcp": true,
"started_at": "2024-01-01T10:00:00Z",
"port": 8080
}
],
"leases": [
{
"lease_id": "uuid",
"instance_id": "uuid",
"client_id": "claude-3-5-sonnet",
"purpose": "chat-completion",
"acquired_at": "2024-01-01T10:01:00Z",
"renewed_at": "2024-01-01T10:30:00Z"
}
]
}Instance Matching
acquire_model() only reuses an existing instance when both model and preset match exactly. Different presets create different instances.
Related MCP Connectors
- llm-busOAuthcom.llm-bus
Coordinate multiple AI agents over MCP: atomic claims, leases, shared ledger, handoffs, tasks.
MCP-Native LLM Orchestration Agent
Authenticated LLM MCP Agent
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables seamless integration between Ollama's local LLM models and MCP-compatible applications, supporting model management and chat interactions.13758 npm170AGPL 3.0
- FlicenseNot gradedqualityDmaintenanceIntegrates local language models (like Qwen3-8B) with MCP clients, providing tools for chat, code analysis, text generation, translation, and content summarization using your own hardware.-
- AlicenseAqualityDmaintenanceEnables listing, loading, unloading, and configuring models in LM Studio via MCP tools, with support for TTL and draft model settings.56MIT
- FlicenseAqualityCmaintenanceMCP server that connects LLM agents to a local LM Studio instance, enabling model management, OpenAI-compatible chat completions, text completions, and embeddings through a set of tools.91-