A Model Control Protocol (MCP) server that allows Claude to communicate with locally running LLM models via LM Studio
Four tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. Tool names follow verb_noun convention (health_check, list_models, get_current_model, chat_completion). Descriptions exist but are generic and lack LLM-optimization guidance. The chat_completion tool has the most detailed description and schema, but parameters lack constraint documentation (e.g., temperature range 0.0-1.0 stated in description but not in schema; max_tokens default 1024 with no bounds). No output schemas documented for any tool. Error handling and recovery guidance absent. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Parameter descriptions are minimal or missing for several fields.
Generate a completion from the current LM Studio model, with optional image inputs. Args: prompt: The user's text prompt to send to the model system_prompt: Optional system instructions for the model temperature: Controls randomness (0.0 to 1.0) max_tokens: Maximum number of tokens to generate images: List of images to include with the prompt. Pass [] for text-only. Each item can be: - A local file path (e.g. "C:/Users/chris/photo.png") - An HTTP/HTTPS URL (e.g. "https://example.com/img.jpg") - A data URL (e.g. "data:image/png;base64,...") Requires a vision-capable model loaded in LM Studio (e.g. LLaVA, Qwen-VL). The server reads local files and encodes them — LM Studio does not need direct filesystem access. Returns: The model's response to the prompt
Get the currently loaded model in LM Studio. Returns: The name of the currently loaded model.
Check if LM Studio API is accessible. Returns: A message indicating whether the LM Studio API is running.
List all available models in LM Studio. Returns: A formatted list of available models.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
chat_completion parameter descriptions lack constraint details. Temperature range (0.0-1.0) and max_tokens bounds stated in docstring but not in schema. LLMs cannot read docstrings reliably, constraints must be in schema or parameter descriptions.
Tool descriptions are generic and under 50 characters (health_check, list_models, get_current_model). Descriptions lack WHEN to use, prerequisites, or differentiation from similar tools. Baseline for A+ tools is 194 chars average.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
No error handling or recovery guidance. Tools return success/failure but do not tell LLM what to do on failure (retry, ask user, check prerequisites). Missing pattern:recovery-guide.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in schema. Agents cannot distinguish safe-to-retry tools from destructive ones.