Skip to main content
Glama

llmstudio-mcp

Polski

MCP server exposing a local LM Studio instance to LLM agents — list / load / unload models, run chat and text completions, generate embeddings, and reach any other LM Studio REST endpoint via a raw escape hatch.

Table of contents

Related MCP server: litellm-mcp

Tools

Tool

Parameters

Description

list_models

type: "all" | "llm" | "embedding" | "vlm" = "all"

Lists downloaded models with metadata (type, state, context length, quant)

get_model

model_key: str

Info about a single model

get_loaded_models

Models currently resident in memory

load_model

model_key, context_length?, flash_attention?, offload_kv_cache_to_gpu?, num_experts?, eval_batch_size?

Loads a model into memory

unload_model

instance_id: str

Frees a model from memory

chat

model, messages, temperature?, max_tokens?, top_p?, top_k?, stop?, stream?, tools?

OpenAI-compatible chat completion (/v1/chat/completions)

complete

model, prompt, temperature?, max_tokens?, top_p?, top_k?, stop?, stream?

OpenAI-compatible text completion (/v1/completions)

embed

model, input, normalize=false

OpenAI-compatible embeddings (/v1/embeddings)

raw_request

method, path, json_body?

Escape hatch for any LM Studio REST endpoint

Environment variables

Variable

Required

Default

Description

LMSTUDIO_MCP_BASE_URL

no

http://localhost:1234

LM Studio server URL

LMSTUDIO_MCP_API_KEY

no

empty

API token (only if you enabled token auth in LM Studio's Developer tab)

LMSTUDIO_MCP_TIMEOUT

no

60.0

HTTP timeout in seconds; raise for slow models or large generations

Prerequisites

LM Studio running with its API server enabled — either the desktop app with the Developer tab toggle on, or lms server start from the CLI. At least one model downloaded (lms get <model>).

Wiring it up

Only requirement: uv (https://docs.astral.sh/uv/). Nothing else to install.

Claude Code

claude mcp add llmstudio-mcp -- uvx --from git+https://github.com/dam2452/llmstudio-mcp.git llmstudio-mcp

If you enabled API token auth in LM Studio:

claude mcp add llmstudio-mcp -e LMSTUDIO_MCP_API_KEY=<token> -- uvx --from git+https://github.com/dam2452/llmstudio-mcp.git llmstudio-mcp

Claude Desktop / other MCP client

{
  "mcpServers": {
    "llmstudio-mcp": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/dam2452/llmstudio-mcp.git", "llmstudio-mcp"]
    }
  }
}

After pushing a new version: uv cache clean and restart the client.

Local run

uv run --directory . llmstudio-mcp

Tests (manual):

uv run --directory . --with pytest pytest test/

Available Tools

9 tools
chatA

Send a chat completion request to a model (OpenAI-compatible /v1/chat/completions).

The model is auto-loaded if not already in memory (JIT loading enabled by default in LM Studio). Set stream=True only when the MCP client supports streamed responses; most do not.

Examples: chat(model="qwen/qwen3-4b-2507", messages=[{"role":"user","content":"Hello"}]) chat(model="qwen/qwen3-4b-2507", messages=[{"role":"system","content":"Be terse."},{"role":"user","content":"Hi"}], temperature=0.2, max_tokens=64)

ParametersJSON Schema
NameRequiredDescriptionDefault
stopNo
modelYes
toolsNo
top_kNo
top_pNo
streamNo
messagesYes
max_tokensNo
temperatureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description fully compensates by disclosing JIT auto-loading of models and streaming behavior. It clearly states behavioral traits without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, well-structured with two paragraphs and examples. Every sentence adds value; no fluff. Front-loaded purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having output schema, description doesn't mention return format. Lacks detail for half the parameters. With many params and no schema descriptions, completeness is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must explain parameters. It only covers 'model', 'messages', 'temperature', 'max_tokens' via examples, but omits 'stop', 'tools', 'top_k', 'top_p', 'stream' details. Inadequate for 9 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Send' and resource 'chat completion request', and specifies it is OpenAI-compatible. It distinguishes from siblings like 'complete', 'embed', etc., by focusing on chat completion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on when to use streaming ('Set stream=True only when the MCP client supports streamed responses; most do not'). However, it does not explicitly compare to alternatives or exclude sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

completeA

Send a raw text-completion request to a model (OpenAI-compatible /v1/completions).

Prefer chat() for instruction-tuned conversational models. complete() is useful for base / completion models or for prompt-template experimentation.

Examples: complete(model="qwen/qwen3-4b-2507", prompt="The meaning of life is", max_tokens=20)

ParametersJSON Schema
NameRequiredDescriptionDefault
stopNo
modelYes
top_kNo
top_pNo
promptYes
streamNo
max_tokensNo
temperatureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Mentions OpenAI compatibility and raw text-completion, but does not detail return type, side effects, or safety considerations. Output schema may cover return type, but behavioral traits like idempotency or rate limits are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences plus an example. Every sentence adds value, and the purpose is front-loaded. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides clear purpose and usage guidance, but lacks details on authentication, rate limits, and behavior of the stream parameter. However, the existence of an output schema partially compensates for missing return value explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description only explains model, prompt, and max_tokens via example, leaving stop, top_k, top_p, stream, and temperature undocumented. Since most parameters are not described, the description does not sufficiently compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it sends a raw text-completion request to a model, compatible with OpenAI /v1/completions. Differentiates from sibling chat() by specifying complete() is for base/completion models or prompt-template experimentation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to prefer chat() for instruction-tuned models and states the appropriate use cases for complete(). Provides an example with typical parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

embedA

Generate an embedding vector for the given text (OpenAI-compatible /v1/embeddings).

input can be a single string or a list of strings for batch embedding.

Examples: embed(model="text-embedding-nomic-embed-text-v1.5", input="hello world") embed(model="text-embedding-nomic-embed-text-v1.5", input=["hello", "world"], normalize=True)

ParametersJSON Schema
NameRequiredDescriptionDefault
inputYes
modelYes
normalizeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses input types and batch behavior but lacks details on idempotency, error handling, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one sentence stating purpose, one phrase on input types, and two illustrative examples. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key functionality with examples. Could mention model naming conventions or where to find available models, but given output schema exists, return values are likely documented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description clarifies the 'input' parameter accepts string or list of strings, and demonstrates 'normalize' usage. Adds significant meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states it generates an embedding vector, mentions OpenAI compatibility, and provides examples. Distinct from sibling tools like chat and complete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternative guidance. The description implies text embedding tasks but doesn't contrast with other tools like chat or complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_loaded_modelsA

List models currently loaded into memory (ready for inference).

Examples: get_loaded_models()

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It implies read-only behavior but does not explicitly state idempotency, error conditions, or output format. The example provides minimal additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence plus an example, with no extraneous content. It is front-loaded and every word contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, output schema available), the description is sufficient for understanding its purpose. It does not require additional elaboration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline 4 applies. The description adds no parameter info beyond the empty schema, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'models currently loaded into memory', distinguishing it from siblings like list_models (which likely lists all models) and load_model/unload_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., list_models). The description only states what it does, not when it is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_modelB

Get detailed info about a single model.

Examples: get_model(model_key="qwen/qwen3-4b-2507") get_model(model_key="text-embedding-nomic-embed-text-v1.5")

ParametersJSON Schema
NameRequiredDescriptionDefault
model_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only says 'Get detailed info' without explaining what happens if the model is not found, whether it requires authentication, or if it has rate limits. As a read-like operation, it doesn't mention side effects (likely none), but the lack of explicit safety or behavior info reduces clarity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence stating purpose followed by two examples. Every part adds value without unnecessary length. The front-loaded purpose makes it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema (promise of return info), the description is minimal but barely adequate. It covers the basic purpose but lacks usage guidelines, parameter explanation, and behavioral context. With no annotations, more detail would improve completeness, but given the tool's simplicity, it's not severely deficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one required parameter model_key with 0% description coverage. The description provides examples showing model_key='qwen/qwen3-4b-2507' but does not explain the format, allowed values, or what constitutes a valid key. This leaves the agent to infer from examples, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get detailed info about a single model.' This is specific with a verb and resource, and examples reinforce usage. It distinguishes itself from sibling tools like list_models and get_loaded_models by focusing on a single model with detailed info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention when to prefer this over list_models or get_loaded_models, nor any conditions or prerequisites. The only usage information comes from examples, which show syntax but no context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsA

List models available in the local LM Studio instance.

Queries /api/v0/models which returns every downloaded model with rich metadata: type (llm / vlm / embeddings), publisher, arch, quantization, state (loaded / not-loaded), and max_context_length.

Examples: list_models() list_models(type="llm") list_models(type="embeddings")

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It explains that the tool queries an API and returns model data, but it does not disclose whether the operation is read-only, any error conditions, or permission requirements. This is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three sentences and three examples. The purpose is front-loaded, and every sentence adds value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and an output schema, the description covers the return type and metadata fields. It lacks details on error handling, pagination, or performance implications, but it is largely complete for common use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema defines only one parameter with an enum, and the description adds value by explaining its purpose (filtering by model type) and providing examples. Since schema description coverage is 0%, the description compensates well for the only parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List models available in the local LM Studio instance.' It specifies the API endpoint and the rich metadata returned. However, it does not explicitly distinguish itself from sibling tools like 'get_loaded_models', which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'get_loaded_models' or 'get_model'. The examples show usage patterns but do not indicate when not to use the tool or which scenarios each sibling is suited for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_modelA

Load a model into memory so it is ready for inference.

If context_length is omitted, the model's configured default is used. Only LLMs loaded via LM Studio's llama.cpp engine honor flash_attention, num_experts, eval_batch_size and offload_kv_cache_to_gpu.

Examples: load_model(model_key="qwen/qwen3-4b-2507") load_model(model_key="openai/gpt-oss-20b", context_length=16384, flash_attention=True)

ParametersJSON Schema
NameRequiredDescriptionDefault
model_keyYes
num_expertsNo
context_lengthNo
eval_batch_sizeNo
flash_attentionNo
offload_kv_cache_to_gpuNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It explains that the tool loads a model into memory, describes default context_length behavior, and notes engine-specific parameter constraints. It does not mention potential side effects like unloading previous models, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose. It uses bullet points for engine-specific notes and includes illustrative examples. No superfluous information, though the engine-specific detail could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters and 0% schema coverage, the description covers main behavior and key constraints but omits the output schema (exists but not described) and prerequisites like model availability. It is adequate but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains context_length default and engine-specific parameters (flash_attention, num_experts, etc.) but does not clarify the format of model_key beyond examples. The examples help, but the param semantics could be more explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Load a model into memory so it is ready for inference.' It uses a specific verb ('load') and resource ('model'), and is easily distinguishable from sibling tools like unload_model and list_models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use the tool (to prepare a model for inference) and includes examples. It also specifies engine-specific parameter applicability, but lacks explicit 'when not to use' or alternatives, which is acceptable given the tool's straightforward nature.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raw_requestA

Escape hatch: send an arbitrary request to the LM Studio REST API.

Use this when you need an endpoint not covered by a dedicated tool (e.g. /api/v1/chat stateful chats, /api/v1/models/download, /v1/responses, the Anthropic-compatible /v1/messages, etc.). path must start with a slash and is appended to the configured base URL.

Examples: raw_request(method="GET", path="/api/v0/models") raw_request(method="POST", path="/api/v1/chat", json_body={"model":"qwen/qwen3-4b-2507","messages":[{"role":"user","content":"hi"}]})

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
methodYes
json_bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that path must start with slash and is appended to base URL, but does not mention potential side effects of methods like DELETE or POST that modify state. With no annotations, description carries full burden but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise: one sentence for purpose, one for when-to-use, and two example calls. No extraneous words, front-loaded with core intent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core functionality, usage guidance, and examples. Though missing detailed error handling or response format, output schema exists to fill gaps. Sufficient for an escape hatch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description adds meaning by explaining path format and providing usage examples for method and json_body, going beyond raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool as an 'escape hatch' to send arbitrary requests to the LM Studio REST API. Distinguishes from siblings by specifying it is for endpoints not covered by dedicated tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use ('when you need an endpoint not covered by a dedicated tool') and provides examples, effectively guiding the agent to avoid misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unload_modelA

Unload a model instance from memory, freeing RAM / VRAM.

The instance_id is the identifier returned by load_model (usually equal to the model key, but may differ when multiple instances of the same model are loaded). Use get_loaded_models to discover currently loaded instance_ids.

Examples: unload_model(instance_id="qwen/qwen3-4b-2507")

ParametersJSON Schema
NameRequiredDescriptionDefault
instance_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It reveals that instance_id comes from load_model and may differ from model key. Provides example. Does not disclose side effects, but for a memory freeing tool it is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short paragraphs with example code. Front-loaded with main action. Every sentence adds value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given single parameter, no annotations, and presence of output schema, description covers usage context, parameter source, and examples. Sufficient for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only parameter instance_id has 0% schema description coverage, but description adds significant meaning: identifies the model instance, sourced from load_model, discoverable via get_loaded_models. This goes far beyond the schema's type string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it unloads a model from memory to free RAM/VRAM. It specifies the resource (model instance) and action (unload). Differentiates from sibling load_model and get_loaded_models.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains when to use (after loading model, to free memory) and how to discover instance IDs via get_loaded_models. Lacks explicit when-not-to-use guidance, but context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv0.1.0
    • First observedchat
    • First observedcomplete
    • First observedembed
    • First observedget_loaded_models
    • First observedget_model
    • First observedlist_models
    • First observedload_model
    • First observedraw_request
    • First observedunload_model

TDQS

A4/5.0
Disambiguation5/5

Each tool has a distinct purpose: chat, complete, and embed for inference; list_models, get_model, load_model, unload_model for model management; raw_request as an escape hatch. No functional overlap.

Naming Consistency5/5

Consistent verb_noun pattern (e.g., get_loaded_models, list_models, load_model) with simple action verbs for inference (chat, complete, embed). All lowercase with underscores; clear and predictable.

Tool Count5/5

9 tools cover the core server management lifecycle: model discovery, loading/unloading, inference, and a raw_request for extensibility. Neither too few nor too many for the domain.

Completeness4/5

Covers all essential operations: model listing, loading, inference (chat/complete/embed), and unloading. Missing model download/delete is a minor gap, but raw_request can handle edge cases.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that provides tools to interact with the LiteLLM proxy API, enabling LLM completions, embeddings, image generation, and admin operations.
    18
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Unified MCP server for managing local model runtimes (Ollama, LM Studio, etc.), enabling provider-agnostic discovery, lifecycle management, hardware-fit checks, and delegated inference.
    16
    40
    Creative Commons Attribution Non Commercial No Derivatives 4.0 International

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dam2452/llmstudio-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server