lmstudio-mcp
The lmstudio-mcp server is a production-oriented, local-only MCP server for diagnosing, testing, benchmarking, and controlling LM Studio instances, without cloud fallback or telemetry. It provides a consistent set of 18 tools:
Read-Only / Diagnostic Tools
lmstudio_status: Check API reachability, version, model counts, auth status
lmstudio_diagnose: Run a full diagnostic suite with findings and suggestions
lmstudio_validate_mcp: Validate LM Studio's MCP config (redacted, no changes)
lmstudio_security_audit: Audit binding, LAN exposure, CORS, auth, logging, remote destinations
lmstudio_capture_logs: Capture redacted log stream from
lmsCLI (up to 120s)
Model Discovery Tools
lmstudio_list_models: List downloaded models with metadata
lmstudio_list_loaded_models: List currently loaded model instances
lmstudio_inspect_model: Get detailed static and runtime info for a model
Inference & Testing Tools
lmstudio_test_inference: Run bounded inference against various endpoints
lmstudio_test_endpoints: Classify native, Chat Completions, and Responses endpoint families
lmstudio_test_tool_calling: Verify non-streaming tool-call round trip
lmstudio_test_streaming_tool_calling: Verify streaming tool-call round trip
lmstudio_test_structured_output: Validate JSON Schema enforcement
lmstudio_benchmark: Run small streaming benchmarks (up to 5 requests)
Capability Tracking Tools
lmstudio_capabilities: Summarize DECLARED, DETECTED, and VERIFIED capabilities
lmstudio_export_capability_snapshot: Export secret-free capability snapshot with SHA-256 digest
Mutating Tools (disabled by default; require LMSTUDIO_MCP_ALLOW_MUTATIONS=true)
lmstudio_load_model: Load a downloaded model into memory (never downloads)
lmstudio_unload_model: Unload a specific loaded model by identifier (never unloads all)
Click on "Install 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., "@lmstudio-mcpwhat models are currently loaded?"
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.
lmstudio-mcp
A production-oriented, local-only Model Context Protocol (MCP) stdio server for diagnosing, testing, benchmarking, and deliberately controlling LM Studio.
It talks only to a loopback LM Studio server, has no cloud fallback or telemetry, never downloads a model, and disables all mutations by default.
Why this exists
LM Studio exposes several API families and model metadata does not prove runtime behavior. This server gives MCP clients one consistent interface and keeps three kinds of evidence separate:
DECLARED — model metadata claims.
DETECTED — passive endpoint or runtime observations.
VERIFIED — a completed live test, such as a real tool-call round trip.
Related MCP server: local-mcp-toolbox
Architecture
flowchart LR
Client["MCP client<br/>Codex or another SDK client"] -->|"stdio"| Server["lmstudio-mcp"]
Server -->|"HTTP on loopback only"| Native["LM Studio native API"]
Server -->|"HTTP on loopback only"| OpenAI["OpenAI-compatible APIs"]
Server -->|"spawn with argument arrays"| CLI["lms CLI"]
Server --> Evidence["In-process capability evidence"]
Evidence --> Snapshot["Canonical JSON + SHA-256 snapshot"]Requirements
Node.js 20, 22, or 24
LM Studio with its local server enabled
Optional:
lmsonPATH, orLMSTUDIO_LMS_PATHset to the executable
The implementation is cross-platform TypeScript. macOS is live-verified; Linux and Windows are exercised by the CI matrix for build, unit, and MCP protocol behavior. Live LM Studio integration on those platforms remains environment-dependent and is not claimed by CI.
Install and build
git clone https://github.com/Ka1y0/Tool_MCP_LMStudio.git
cd Tool_MCP_LMStudio
corepack enable
pnpm install --frozen-lockfile
pnpm build
pnpm testnpm install, npm run build, and npm test are also supported. Live integration tests skip when LM Studio is unavailable and never load, unload, or download models.
Configuration
Variable | Default | Meaning |
|
| Must use |
| empty | Optional local bearer token; never persisted by this project. |
|
| Enables the two explicit load/unload tools. |
| empty | Default model identifier for tests. |
|
| HTTP/CLI timeout, bounded to 250–300000 ms. |
|
| Log stream duration, bounded to 1–120 seconds. |
|
|
|
The server intentionally has no dotenv dependency. Pass variables from the MCP launcher; .env.example is only a reference.
Register with Codex
Build first, then use absolute paths appropriate to your machine:
codex mcp add lmstudio-mcp \
--env LMSTUDIO_BASE_URL=http://127.0.0.1:1234 \
--env LMSTUDIO_MCP_ALLOW_MUTATIONS=false \
--env LMSTUDIO_LMS_PATH=/absolute/path/to/lms \
-- node /absolute/path/to/lmstudio-mcp/dist/index.jsCheck registration with codex mcp get lmstudio-mcp and codex mcp list. A client session opened before registration may need to be restarted.
Tools
The server exposes 18 tools:
Tool | Class | Purpose |
| read-only | Health, versions, reachability, and model counts. |
| read-only | Downloaded model metadata. |
| read-only | Loaded runtime instances. |
| read-only | Static and runtime model information. |
| inference | One bounded native, Chat Completions, or Responses request. |
| inference | Classify the three API families. |
| inference | Deterministic non-streaming tool-call round trip. |
| inference | Streamed call reassembly, execution, continuation, progress, and cancellation. |
| inference | Schema enforcement versus JSON/prompt-only output. |
| read-only | DECLARED/DETECTED/VERIFIED summary. |
| read-only | Secret-free canonical snapshot and SHA-256. |
| read-only | Bind, CORS, auth, logging, and destination checks. |
| inference | Small bounded streaming benchmark. |
| read-only | Bounded, redacted log capture with child cleanup. |
| read-only | Findings, probable causes, and actions. |
| read-only | Read-only validation of LM Studio's MCP config. |
| mutating | Load an already-downloaded model; disabled by default. |
| mutating | Unload one explicit identifier; disabled by default. |
For LLMs and Agents
Machine-oriented documentation is intentionally separate from this human overview:
llms.txtis the concise routing and safety index.docs/LLM_USAGE.mdis the canonical agent operating manual.docs/mcp-tools.jsonis generated from the actual MCP registry and contains every current tool schema plus operational metadata.
Run pnpm docs:tools after tool changes and pnpm docs:check to detect drift.
All tools with output schemas return both human-readable content and machine-readable structuredContent.
Streaming verification
lmstudio_test_streaming_tool_calling uses one inert fixture, lookup_test_record(742). It reconstructs fragmented call IDs, function names, and JSON arguments; rejects missing, malformed, duplicate, multiple, or schema-invalid calls; executes no shell/filesystem/network action; returns {project, status, value} to the model; and validates labeled fixture values in the streamed continuation. Final-answer comparison ignores punctuation delimiters but never missing labels, altered letters, or altered digits.
The tool emits MCP progress notifications only when the caller supplies a progress token. MCP cancellation aborts the underlying LM Studio fetch and is classified as CANCELLED. Only Chat Completions streaming is currently claimed as verified; other streaming API families remain unverified.
Capability snapshots
lmstudio_export_capability_snapshot returns a versioned snapshot, its recursively key-sorted canonical JSON, and a lowercase SHA-256 digest. The hash covers the UTF-8 canonical snapshot only. Tokens, environment contents, home paths, model filesystem paths, and arbitrary raw API payloads are excluded. See the schema contract.
Mutation and privacy guarantees
Non-loopback URLs and credential-bearing URLs are rejected at startup.
Mutations require
LMSTUDIO_MCP_ALLOW_MUTATIONS=truein the server process.Loading never downloads; unloading requires one identifier and never uses
--all.CLI calls use
spawn(executable, args)without a shell.Errors and logs redact tokens, authorization values, API keys, passwords, and secrets.
No analytics, telemetry SDK, cloud inference, or remote destination is present.
Development
pnpm build
pnpm test:unit
pnpm test:mcp
pnpm test:integration # live tests skip if LM Studio is unavailable
pnpm checkTests cover configuration boundaries, redaction, mutation guards, protocol structured content, tool-call adversaries, streamed delta reconstruction, cancellation, snapshot canonicalization, and live endpoints. CI deliberately excludes environment-dependent live LM Studio assertions.
Troubleshooting
serverRunning: false: start LM Studio's local server and retain its loopback bind.MODEL_REQUIRED: passmodelor configureLMSTUDIO_DEFAULT_MODEL.AUTH_REQUIRED: pass the local token throughLMSTUDIO_API_TOKEN; do not put it in source or URLs.CANCELLED: the MCP caller cancelled a long operation; the underlying request was aborted.lmsunavailable: setLMSTUDIO_LMS_PATH; API-only functions can still work.A reasoning model may consume a small output budget before producing visible content; bounded tools report reasoning-only output separately.
Historical local verification reports are in docs/DIAGNOSTIC_REPORT.md and docs/V0.2_CAPABILITY_REPORT.md. They are evidence from one environment, not universal compatibility claims.
Contributing and security
See CONTRIBUTING.md, SECURITY.md, and CODE_OF_CONDUCT.md. The project is licensed under the MIT License.
Available Tools
18 toolslmstudio_benchmarkBenchmark local LM StudioB
Run at most five small streaming requests and report only measurements actually available.
| Name | Required | Description | Default |
|---|---|---|---|
| runs | No | ||
| model | No | ||
| prompt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It does communicate important behavioral constraints: 'at most five' limits the number of requests, 'small' suggests resource usage limits, and 'report only measurements actually available' indicates no fabricated data. However, it does not disclose potential side effects, whether the tool modifies system state, or what happens when the LM Studio server is unavailable. This is a basic level of transparency but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and constraints. Every word contributes: 'at most five' specifies the limit, 'small' hints at request size, 'streaming requests' describes the method, and 'report only measurements actually available' clarifies output principles. There is zero wasted verbiage, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and no output schema, the description is not complete enough. It lacks details on what specific measurements are reported, how output is presented, error handling, and when to choose this over the many test and diagnostic sibling tools. The description provides a high-level overview but misses critical context needed for reliable invocation and interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate for parameter meaning. The description only implies that requests are 'small' and limited to 'at most five', which loosely relates to the `runs` parameter, but it does not explain the `model` or `prompt` parameters, nor does it clarify the relationship between `runs` and the actual number of requests. The agent receives no help in understanding how to correctly set these parameters beyond their names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Run at most five small streaming requests and report only measurements actually available.' It identifies the tool as a benchmark for local LM Studio with a defined scope. However, it doesn't explicitly distinguish it from similar sibling tools like lmstudio_test_inference or lmstudio_test_streaming_tool_calling, relying on the word 'benchmark' to convey its measurement focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description does not mention any prerequisites, exclusions, or situations where another sibling tool would be more appropriate. The implied context is 'to benchmark', but the lack of explicit alternative guidance leaves the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_capabilitiesSummarize LM Studio capabilitiesD
Separate DECLARED metadata, passively DETECTED support, and live VERIFIED capability evidence recorded in this MCP process.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | Yes | |
| success | Yes | |
| declared | Yes | |
| detected | Yes | |
| verified | Yes | |
| separation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions the tool separates declared vs detected vs verified evidence, hinting at its internal categorization behavior. However, it does not disclose whether it is read-only, requires a loaded model, or what side effects it may have. With no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise fragment, but its brevity comes at the cost of clarity. It lacks a clear subject/verb structure and provides no scaffolding for the agent to understand the tool's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 sibling tools and an optional model parameter, the description is exceptionally thin. It does not explain what distinguishes this tool from list_models, inspect_model, or test_capability tools. The presence of an output schema does not compensate for the lack of usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single optional 'model' parameter with no description and zero schema description coverage. The tool description does not mention the 'model' parameter at all, leaving the agent to guess whether it filters, targets, or is ignored.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Separate' and references capability evidence categories, but it never explicitly states that the tool summarizes or reports LM Studio capabilities. The title clarifies the purpose, but the description itself is ambiguous, leaving the agent unsure whether the tool returns a summary, a report, or performs an action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No information about when to use this tool instead of sibling tools like lmstudio_status or lmstudio_list_models. No prerequisites, no exclusions, and no alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_capture_logsCapture LM Studio logsC
Capture a bounded lms log stream, redact secrets, and always terminate the child process.
| Name | Required | Description | Default |
|---|---|---|---|
| seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses two important behaviors: redacting secrets and always terminating the child process. However, it does not explain the return format, blocking behavior, or error handling, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the core action and key safety behaviors efficiently, though it omits some detail that would be valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is incomplete. It does not explain what the captured logs look like, how they are returned, or how the 'seconds' parameter affects the bound. The mention of child process termination suggests side effects that are not elaborated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage for the 'seconds' parameter, and the description makes no mention of it. 'Bounded' hints at a time limit but does not explicitly link to the parameter, failing to add any meaning beyond the schema's min/max constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool captures a bounded log stream with secret redaction, which is specific and action-oriented. It does not explicitly differentiate from sibling tools, but none of the siblings appear to handle log capture, so it stands alone adequately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusion criteria, leaving the agent to infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_diagnoseDiagnose LM StudioB
Run a high-level, non-mutating diagnostic suite against local LM Studio.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| checks | Yes | |
| health | Yes | |
| failures | Yes | |
| warnings | Yes | |
| overallStatus | Yes | |
| probableCauses | Yes | |
| suggestedActions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states 'non-mutating', which is a key behavioral trait (safe, read-only operation). However, with no annotations present, the description carries full burden and does not disclose what the diagnostic suite actually checks, whether it is resource-intensive, or how long it might run. It adds some value beyond the schema by claiming non-mutation but remains thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb 'Run', and every word contributes meaning. No filler or redundancy. It is appropriately terse for a 0-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema covers returned data, the description does not explain what the diagnostic suite includes or how it differs from other LM Studio tools, leaving a notable gap for an agent to choose correctly among many siblings. It is adequate but lacks specific context about coverage or use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema is empty, so there is no parameter semantics to clarify. The description appropriately focuses on the action rather than param details. Baseline of 4 applies for 0 params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Run a diagnostic suite') and the target ('local LM Studio'), with the qualifier 'high-level' and 'non-mutating' adding scope. It distinguishes from more specific sibling tools such as lmstudio_status or lmstudio_test_inference by implying a broader, overarching diagnostic suite, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like lmstudio_status, lmstudio_security_audit, or lmstudio_test_endpoints. The phrase 'high-level' hints at a general health check but there is no explicit 'use this when…' or mention of excluded scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_export_capability_snapshotExport LM Studio capability snapshotB
Return a deterministic-schema, secret-free capability snapshot plus canonical JSON and its SHA-256 digest. This tool does not write files or rerun capability tests.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| sha256 | Yes | |
| success | Yes | |
| snapshot | Yes | |
| hashScope | Yes | |
| canonicalJson | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It clearly states the tool returns a deterministic-schema, secret-free snapshot, provides a digest, and does not write files or rerun tests. This adds valuable context about side effects and output guarantees, though it could mention potential failure modes or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose. Every sentence adds value: the first explains what is returned, the second clarifies non-behaviors. There is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values, and the tool has only one optional parameter, reducing complexity. However, the description lacks an explanation of the 'model' parameter and does not provide explicit usage guidance against sibling tools. It is adequate but has clear gaps in parameter semantics and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one optional 'model' parameter with no description, and the schema description coverage is 0%. The description does not mention this parameter or its effect, leaving the agent to guess whether it filters the snapshot or controls something else. The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Return a deterministic-schema, secret-free capability snapshot plus canonical JSON and its SHA-256 digest'), clearly identifying the resource and outputs. It is more specific than the title, but it does not explicitly distinguish from sibling tools like lmstudio_capabilities, which may offer similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the phrase 'does not write files or rerun capability tests', which clarifies constraints, but it does not explicitly state when to use this tool versus alternatives (e.g., lmstudio_capabilities) or provide exclusions. The intended use case is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_inspect_modelInspect an LM Studio modelA
Return all discoverable local metadata and distinguish static capability from runtime configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model id, key, path, or identifier |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | |
| model | Yes | |
| warnings | Yes | |
| capability | Yes | |
| distinction | Yes | |
| runtimeConfiguration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries full responsibility. It discloses that it returns 'discoverable' metadata and distinguishes static from runtime configuration, but it does not mention whether it is read-only, what happens for unknown models, or any side effects. This leaves gaps in behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action and outcome, with no filler words. It is concise and structured clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and a single well-defined parameter, the description is sufficient for an agent to understand what the tool does and how to invoke it. However, it could mention prerequisites (e.g., that the model must exist locally) but this is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with a clear description of the 'model' parameter as 'Model id, key, path, or identifier.' The tool description does not add further parameter details, but the baseline of 3 applies because schema coverage is high and the parameter meaning is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and identifies the resource ('all discoverable local metadata') for a specific model. It also distinguishes two aspects (static capability vs runtime configuration), setting it apart from sibling tools like lmstudio_list_models which list all models.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for a single model's metadata, but it does not explicitly mention when to prefer this over alternatives such as lmstudio_list_models or lmstudio_capabilities. There are no explicit exclusions or 'use X instead' guidance, so the usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_list_loaded_modelsList loaded LM Studio modelsA
List model instances currently loaded in memory. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| models | Yes | |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses 'Read-only', which is a key behavioral trait, but with no annotations, it carries the full burden. It does not mention return format, possible empty lists, or any side effects, though the operation is simple and safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the primary action and clearly worded. Every word is purposeful with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool, the description adequately covers the core purpose. The output schema presumably handles return values, so no further detail is required. However, it lacks broader context about how 'loaded in memory' relates to other LM Studio operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the baseline is 4. The description doesn't add parameter-specific information, but none is needed since the tool requires no inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List model instances currently loaded in memory' using a specific verb and resource. It distinguishes itself from sibling tools like lmstudio_list_models by emphasizing 'loaded in memory' and the 'Read-only' nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to see currently loaded models) but does not explicitly mention alternatives or exclusions. It lacks a direct comparison to lmstudio_list_models or guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_list_modelsList downloaded LM Studio modelsA
List locally downloaded models and discoverable metadata. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| models | Yes | |
| source | Yes | |
| warnings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It explicitly states 'Read-only', which is a key behavioral disclosure. It also clarifies that it lists models that are 'locally downloaded' (not necessarily loaded), adding contextual nuance. This goes beyond a bare restatement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action ('List'). It contains no filler, repetition, or unnecessary detail. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and the presence of an output schema, the description is complete. It conveys the essential purpose and the read-only nature, while the sibling tools help contextualize its niche. No additional information is needed for a user to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no need for parameter explanations. Per the baseline guidance, 0 parameters warrant a score of 4. The description avoids overcomplicating things with irrelevant parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and identifies the resource as 'locally downloaded models', which clearly distinguishes it from sibling tools like lmstudio_list_loaded_models. It also explicitly mentions 'discoverable metadata', defining the scope of the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool (when you need a list of downloaded models) but does not explicitly mention when to avoid it or use an alternative, such as lmstudio_list_loaded_models for loaded models. It lacks explicit exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_load_modelLoad an LM Studio modelA
MUTATING and disabled by default. Validates a downloaded model and context before invoking lms load; never downloads.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | ||
| identifier | No | ||
| estimate_only | No | ||
| context_length | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the mutating nature, disabled-by-default status, validation behavior, and that it never downloads. This is strong behavioral disclosure, though it does not detail all side effects or error paths.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence. The key warnings are front-loaded, and every clause adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers core behavior but lacks parameter semantics, usage alternatives, and any description of return values or failure modes. Given the mutating nature and four parameters, this is insufficient for an agent to invoke it correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description provides no explanation of the four parameters (model, identifier, estimate_only, context_length). The description's action context does not compensate for this gap, leaving the agent without guidance on what each parameter means or how to use them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool loads a model via 'lms load' after validation, and the title reinforces the resource. It distinguishes from siblings like unload/list by focusing on the loading action. The MUTATING and disabled-by-default prefix adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for loading validated models and warns it is disabled by default, but it does not explicitly state when to use this over alternatives or when not to use it. No alternative tools are named, and the 'disabled by default' is more a caution than a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_security_auditAudit local LM Studio securityA
Read-only audit of loopback binding, LAN exposure, CORS, authentication, sensitive logging, and remote destinations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| success | Yes | |
| findings | Yes | |
| readOnly | Yes | |
| corsEnabled | Yes | |
| localhostOnly | Yes | |
| changedSettings | Yes | |
| lanExposureDetected | Yes | |
| authenticationRequired | Yes | |
| sensitiveLoggingEnabled | Yes | |
| remoteDestinationConfigured | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It explicitly labels the operation as 'Read-only audit', which is a key behavioral disclosure. It also enumerates audit focus areas, though it could add context about network interactions or interpretation of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence front-loads the key verb and security scope, then efficiently lists specific audit dimensions. Every phrase earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool that has an output schema, the description provides a solid overview of the security domains covered. It is complete enough for basic selection, though it could mention expected outputs or typical use cases given the breadth of an audit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema is empty, so parameter-level explanation is unnecessary. The baseline for zero-parameter tools applies; the description adds no conflicting or missing parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('audit') and resource ('local LM Studio security'), listing six concrete security dimensions (loopback binding, LAN exposure, CORS, authentication, sensitive logging, remote destinations). This clearly differentiates it from sibling tools like lmstudio_diagnose or lmstudio_test_endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. It implies a read-only audit use case but does not mention exclusions, prerequisites, or direct sibling references, leaving selection largely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_statusLM Studio statusA
Return a read-only local LM Studio health summary, including API and model counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| port | Yes | |
| warnings | Yes | |
| cliStatus | Yes | |
| lmsVersion | Yes | |
| modelSource | Yes | |
| localhostOnly | Yes | |
| serverRunning | Yes | |
| apiReachability | Yes | |
| lmStudioVersion | Yes | |
| loadedModelCount | Yes | |
| downloadedModelCount | Yes | |
| authenticationRequired | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It does disclose 'read-only' and 'health summary', which implies safety, but it does not mention error handling (e.g., when LM Studio is not running), potential latency, or whether the counts are active/running models. Since an output schema exists, return structure is covered, but behavior beyond that is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and clearly states the content. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params) and presence of an output schema, the description provides the essential information: it's a local, read-only health summary. However, it could mention how it differs from 'lmstudio_diagnose' to help an agent choose correctly among the many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty with 100% coverage. The description does not need to explain parameters, so baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and names the resource ('local LM Studio health summary') with concrete content ('API and model counts'). It distinguishes from sibling list tools by being a summary, but does not clearly separate it from 'lmstudio_diagnose', which may also provide health-related info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus siblings like lmstudio_diagnose or lmstudio_capabilities. It only implies a read-only, quick status check but does not state alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_test_endpointsTest LM Studio API endpointsC
Classify native chat, OpenAI chat completions, and Responses API as passed, unsupported, or failed.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the classification outcome but does not disclose side effects, whether it makes network calls, requires a running server, or has any prerequisites. The verb 'test' implies activity, but the lack of behavioral detail leaves significant ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is appropriately concise. Every word contributes to defining the tool's purpose, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists (partially covering return values), the description lacks essential operational context: no usage timing, no prerequisites, no explanation of how the optional model parameter affects behavior, and no note on potential side effects. For a testing tool, this is minimal and leaves gaps that an agent would need to resolve externally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one optional parameter 'model' with no description (0% schema description coverage). The description does not mention this parameter at all, failing to explain how 'model' influences the test or whether it is required. Description adds no meaning beyond the raw schema field name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Classify' and names precise resources ('native chat, OpenAI chat completions, and Responses API') with clear outcome categories ('passed, unsupported, or failed'). This clearly distinguishes it from sibling test tools like lmstudio_test_inference or lmstudio_test_tool_calling, which focus on other aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many sibling test tools (e.g., lmstudio_test_inference, lmstudio_diagnose). It neither states explicit when/when-not conditions nor mentions alternatives, leaving the agent to infer usage from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_test_inferenceTest local LM Studio inferenceA
Run one tiny deterministic inference against an explicitly selected local endpoint. Never falls back to cloud.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| prompt | No | ||
| endpoint | No | ||
| max_tokens | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| model | No | |
| success | Yes | |
| endpoint | Yes | |
| response | No | |
| latencyMs | Yes | |
| reasoning | No | |
| reasoningOnly | No | |
| transportSuccess | No | |
| generationSuccess | No | |
| exactSentinelSuccess | No | |
| visibleAnswerSuccess | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description itself must carry the transparency burden. It reveals two important behavioral traits: the inference is deterministic, and there is no cloud fallback. However, it does not disclose what happens on endpoint failure, what 'tiny' means (token limit?), or any default behavior, leaving gaps in the behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences with no filler. It front-loads the verb and key qualifiers, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four undocumented optional parameters and no annotation support, the description is too sparse to support correct invocation. While the output schema exists (so return values need not be explained), the lack of parameter semantics and behavioral details like error handling leaves significant gaps for an agent trying to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description is completely responsible for explaining parameters. It does not mention 'model', 'prompt', 'max_tokens', or clarify the 'endpoint' options (native, chat_completions, responses). The phrase 'explicitly selected local endpoint' only hints at the endpoint parameter without giving concrete values or guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Run') and clearly names the resource: a tiny deterministic inference against an explicitly selected local endpoint. It also distinguishes from sibling tools by emphasizing 'tiny', 'deterministic', and the explicit 'Never falls back to cloud' behavior, which differentiates it from other testing tools in the LM Studio family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this is for a quick, deterministic local inference test with no cloud fallback. However, it does not explicitly mention alternatives like lmstudio_test_endpoints or state when not to use this tool, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_test_streaming_tool_callingTest streaming LM Studio tool callingA
Verify a real streamed Chat Completions tool-call round trip, including fragmented delta reassembly, strict argument validation, fixture execution, streamed continuation, progress, and cancellation.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | Yes | |
| steps | Yes | |
| errors | Yes | |
| success | Yes | |
| endpoint | Yes | |
| warnings | Yes | |
| latencyMs | Yes | |
| toolExecuted | Yes | |
| toolCallCount | Yes | |
| argumentsValid | Yes | |
| classification | Yes | |
| streamCompleted | Yes | |
| finalAnswerCorrect | Yes | |
| toolResultDelivered | Yes | |
| continuationObserved | Yes | |
| fragmentedToolCallReassembled | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It details multiple internal behaviors (delta reassembly, argument validation, fixture execution, continuation, progress, cancellation) that go beyond a generic 'test' phrase, providing good transparency. It does not address side effects or prerequisites, but the test-oriented nature and output schema mitigate that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently packs a comprehensive list of behaviors without any fluff. Every word contributes meaning, and it is easy to parse the tool's core purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description covers the key functional areas (streaming, tool calling, validation, continuation, cancellation). It lacks explicit usage context or relationship to siblings, but the detailed behavior list makes it sufficiently complete for a test tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one optional parameter 'model' with 0% description coverage, and the tool description does not mention it at all. The parameter name is somewhat self-explanatory, but no semantics or format details are provided beyond the type and length constraints, failing to 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'verify' and clearly identifies the resource: 'a real streamed Chat Completions tool-call round trip.' It further enumerates distinct aspects (fragmented delta reassembly, strict argument validation, fixture execution, etc.), which distinguishes it from sibling tools like lmstudio_test_tool_calling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage for streaming tool-call scenarios, which separates it from non-streaming alternatives. However, it does not explicitly mention when not to use it or reference sibling tools as alternatives, so it narrowly misses a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_test_structured_outputTest LM Studio structured outputA
Test JSON Schema enforcement independently from JSON mode and prompt-only JSON, then validate output with Ajv.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| endpoint | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | Yes | |
| results | Yes | |
| success | Yes | |
| selectedEndpoint | Yes | |
| schemaEnforcedVerified | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden. It discloses the core behavior (testing enforcement and validating with Ajv) but omits operational details such as prerequisites (e.g., running LM Studio), whether it is read-only, or side effects. The mention of Ajv validation adds some transparency, but important behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff, front-loading the purpose and the validation method. Every word earns its place. It is appropriately sized for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters, no annotations, and an output schema, but the description fails to explain the parameters or provide operational context. While the output schema exists and need not be described, the lack of parameter semantics and prerequisites makes the description incomplete for reliable invocation. An agent would struggle to correctly choose values for 'model' and 'endpoint'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not mention the 'model' or 'endpoint' parameters at all. It fails to explain how these parameters affect the test, leaving the agent to guess their meaning and usage. This is a complete lack of compensation for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Test' and names the resource 'JSON Schema enforcement', further clarifying it tests this independently from JSON mode and prompt-only JSON. It clearly distinguishes from sibling tools like lmstudio_test_inference and lmstudio_test_endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use this tool: to test JSON Schema enforcement specifically, excluding JSON mode and prompt-only JSON. However, it does not explicitly name alternative tools or give exclusionary guidance like 'use lmstudio_test_inference for inference tests'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_test_tool_callingTest LM Studio tool callingB
Run a real deterministic local tool-call round trip with argument validation, fixture execution, result delivery, and continuation verification.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| endpoint | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | Yes | |
| results | Yes | |
| success | Yes | |
| selectedEndpoint | Yes | |
| roundTripVerified | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions deterministic, local, and the round-trip steps, providing some transparency, but does not mention potential side effects, prerequisites (e.g., loaded model), or safety (read-only nature), leaving the agent to infer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the main purpose and key steps. While it is somewhat jargon-dense, it does not waste words and is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists to document return values, which lightens the burden. However, the description lacks context about prerequisites, how the parameters affect execution, and how this test relates to sibling tool-calling tests. It is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage (0%) and the description does not mention the 'model' or 'endpoint' parameters at all. The agent gets no guidance on what these optional parameters control or how to choose between enum values, making the tool very difficult to invoke correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a 'real deterministic local tool-call round trip' and enumerates the key phases (argument validation, fixture execution, result delivery, continuation verification), which distinguishes it from sibling tools like test_streaming_tool_calling and test_structured_output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is for testing non-streaming, deterministic tool calls but does not explicitly state when to choose it over alternatives such as the streaming or structured output tests. It lacks explicit exclusionary or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_unload_modelUnload an LM Studio modelA
MUTATING and disabled by default. Requires one explicit loaded identifier and never unloads all models.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behaviors: it labels the operation MUTATING, notes it is disabled by default, requires exactly one loaded identifier, and never unloads all models. This provides essential safety and operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences, front-loaded with 'MUTATING'. Every word adds value—mutation flag, disabled-by-default caveat, parameter requirement, and safety guarantee. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a single parameter, but the description omits what happens on success or failure, and does not reference how to obtain a valid identifier (e.g., from lmstudio_list_loaded_models). The 'disabled by default' note is useful but unexplained. Overall it is adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates by specifying that the identifier must be an explicit 'loaded identifier', which adds crucial meaning beyond the schema's type and length constraints. It also implies the identifier must refer to a currently loaded model.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description implies the tool unloads a specific model via 'never unloads all models' and 'Requires one explicit loaded identifier', while the title explicitly states 'Unload an LM Studio model'. This distinguishes it from load_model but does not name the action in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys usage by requiring one loaded identifier, but it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions. The 'disabled by default' warning is context but not a usage guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lmstudio_validate_mcpValidate LM Studio MCP configurationA
Read and validate LM Studio's MCP JSON without changing it; secret-like values are redacted.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly states that the tool does not change anything ('without changing it') and that secret-like values are redacted, which are two important safety behaviors. However, it does not describe what 'validate' entails or what the output looks like, leaving some room for improvement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys purpose, read-only behavior, and redaction, with no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description provides core purpose and key behaviors, but it omits details about the return value or what validation checks. Given the tool's low complexity (0 parameters), the description is mostly sufficient, though a note on output format would push it to full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description correctly avoids any parameter details since none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb (read and validate) and a specific resource (LM Studio's MCP JSON), and it differentiates from sibling tools like lmstudio_diagnose or lmstudio_security_audit by focusing narrowly on MCP configuration validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the tool's context evident (read and validate MCP JSON) but provides no explicit guidance on when to choose this over sibling tools, nor does it mention any exclusions. Usage is implied rather than directly stated, so it falls short of a higher score.
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.
18 tool updates
v0.3.0-beta.0- First observed
lmstudio_benchmark - First observed
lmstudio_capabilities - First observed
lmstudio_capture_logs - First observed
lmstudio_diagnose - First observed
lmstudio_export_capability_snapshot - First observed
lmstudio_inspect_model - First observed
lmstudio_list_loaded_models - First observed
lmstudio_list_models - First observed
lmstudio_load_model - First observed
lmstudio_security_audit - First observed
lmstudio_status - First observed
lmstudio_test_endpoints - First observed
lmstudio_test_inference - First observed
lmstudio_test_streaming_tool_calling - First observed
lmstudio_test_structured_output - First observed
lmstudio_test_tool_calling - First observed
lmstudio_unload_model - First observed
lmstudio_validate_mcp
TDQS
Each tool has a clearly distinct purpose: status, diagnostics, validation, model listing, inspection, various tests, security audit, snapshot export, log capture, and load/unload actions. Even the testing tools are separated by specific API features (inference, endpoints, tool calling, streaming, structured output), leaving no real ambiguity.
All tools share the lmstudio_ prefix and use snake_case, but there is a mix of bare nouns (status, capabilities, benchmark) and verb_noun compounds (list_models, load_model, test_inference). This is mostly consistent and readable, but not perfectly uniform.
With 18 tools, the server is slightly above the typical well-scoped range, but the breadth is justified by its comprehensive diagnostic and testing mission. The tools cover distinct aspects of local LM Studio management and verification, so the count feels reasonable rather than bloated.
The toolset covers the full lifecycle of interacting with a local LM Studio: listing and inspecting models, loading/unloading, testing core API paths (inference, tool calling, structured output, streaming), health/diagnostics, security auditing, configuration validation, and log capture. No critical dead ends or missing operations are apparent for the stated purpose.
Maintenance
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
Read-only MCP server for the OPERANT AI operating-agent calibration benchmark.
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Related MCP Servers
AlicenseAqualityAmaintenanceA fail-closed MCP server for Msty Studio on macOS that provides read-only diagnostics and an optional bounded local-generation tool, without accessing chats, keys, or configuration.4MIT- AlicenseNot gradedqualityAmaintenanceA secure, local-first MCP server for read-only inspection and troubleshooting of development environments, exposing narrow, typed, auditable capabilities for repository inspection, log summarization, Docker review, and security scanning without granting unrestricted machine access.MIT
- AlicenseNot gradedqualityAmaintenanceA local MCP server that enables Codex and other MCP clients to orchestrate native external coding-agent harnesses through a normalized lifecycle, with guarded execution and deterministic testing.MIT
- FlicenseNot gradedqualityCmaintenanceEnables local text analysis, statistical calculations, and system information retrieval via the Model Context Protocol over stdio.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Ka1y0/Tool_MCP_LMStudio'
If you have feedback or need assistance with the MCP directory API, please join our Discord server