MCP server for querying local Ollama models and processing files with AI prompts
Two tools with complete input schemas and descriptions, but significant gaps in output documentation and error guidance. Tool names follow verb_noun pattern (query_ollama, query_ollama_with_files). Descriptions are adequate (100-150 chars) but lack WHEN/WHY context. Parameters are typed and described, but output schemas are not documented, LLMs cannot plan downstream calls or extract structured data. Error handling returns strings rather than structured errors with recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite both tools being read-only. The second tool relies on deprecated Roots feature for file access, which is a significant architectural issue.
Send a prompt to a local Ollama model and get the response. Useful for testing prompts against small local models.
Run a prompt template against one or more files inside configured roots and return model responses. Supports wildcards for batch processing.
Output schemas not documented. LLMs cannot infer what fields to expect from tool responses, forcing unstructured parsing and preventing downstream tool chaining.
Error handling returns plain strings instead of structured errors with recovery guidance. 'Error: Model not found' gives LLM no actionable next step; should suggest 'Try calling list_models() to see available options.'
Tool descriptions lack WHEN/WHY context. 'Send a prompt to a local Ollama model' does not explain when to use this vs other LLM tools, or what prerequisites exist (Ollama must be running locally).
Reliance on deprecated Roots feature for file access in query_ollama_with_files. RootsState parameter indicates stateful file system configuration; should migrate to passing file paths via tool parameters or resource URIs.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
No tool annotations despite both tools being read-only. Missing readOnlyHint annotation prevents clients from optimizing caching and retry strategies.