Ollama-Omega
Усиленный MCP-сервер, который связывает полную экосистему Ollama — как локальные модели, так и облачные гиганты — с любой IDE, поддерживающей MCP. Никаких скриптов-оберток. Никаких раздутых SDK. Только один файл Python с двумя зависимостями.
ПРИНЦИП ПРОЕКТИРОВАНИЯ: Ollama-Omega не абстрагирует Ollama. Он предоставляет полный API Ollama через 6 проверенных инструментов с обработкой ошибок без потери информации.
Архитектура
┌─────────────────────────────────────────────────────┐
│ MCP Client (IDE) │
│ Claude Desktop / Antigravity / etc. │
└──────────────────────┬──────────────────────────────┘
│ stdio (JSON-RPC 2.0)
┌──────────────────────▼──────────────────────────────┐
│ ollama_mcp_server.py │
│ ┌──────────┐ ┌──────────┐ ┌───────────────────┐ │
│ │ Validator│ │ Dispatch │ │ Singleton httpx │ │
│ │ + Schema │→│ Router │→│ AsyncClient │ │
│ └──────────┘ └──────────┘ │ (no redirects) │ │
│ └─────────┬─────────┘ │
└───────────────────────────────────────┼──────────────┘
│ HTTP
┌───────────────────────────────────────▼──────────────┐
│ Ollama Daemon │
│ Local models (GPU) │ Cloud models (API proxy) │
└───────────────────────────────────────────────────────┘Related MCP server: Mcp-Omega-Brain
Инструменты (6)
Инструмент | Назначение |
| Проверка соединения и список запущенных/загруженных моделей |
| Список всех доступных моделей с размером, статусом загрузки и датой изменения |
| Отправка запроса на завершение чата с историей сообщений и системным промптом |
| Генерация ответа на заданный промпт без истории чата |
| Отображение подробной информации о конкретной модели (лицензия, параметры) |
| Загрузка модели из библиотеки Ollama |
Аудит безопасности
# | Категория | Мера защиты |
1 | SSRF | Перенаправления отключены в клиенте httpx ( |
2 | Утечка ресурсов | Синглтон |
3 | Валидация ввода | Проверка |
4 | Безопасность JSON | Обертка |
5 | Структурированное логирование | Весь вывод stderr через модуль |
6 | DRY-полезные нагрузки |
|
7 | Санитизация ошибок | Хелпер |
Быстрый старт
Требования
Python 3.11+
pip install mcp httpx
Настройка в Claude Desktop / Antigravity
{
"mcpServers": {
"ollama": {
"command": "uv",
"args": [
"--directory",
"path/to/ollama-mcp",
"run",
"python",
"ollama_mcp_server.py"
],
"env": {
"PYTHONUTF8": "1",
"OLLAMA_HOST": "http://localhost:11434",
"OLLAMA_TIMEOUT": "300"
}
}
}
}Переменные окружения
Переменная | По умолчанию | Описание |
|
| URL демона Ollama |
|
| Тайм-аут запроса в секундах (длительный для загрузки больших моделей/облачного вывода) |
| — | Установите в |
Облачные модели
Ollama-Omega не зависит от версии. Если ваш демон Ollama предоставляет доступ к облачным моделям (например, qwen3.5:397b-cloud через API-прокси), они доступны через те же 6 инструментов — изменение конфигурации не требуется.
Структура файлов
Ollama-Omega/
ollama_mcp_server.py # MCP server (~307 lines) — hardened, single-file
pyproject.toml # Package metadata, CLI entry, PyPI classifiers
requirements.txt # mcp>=1.0.0, httpx>=0.27.0
glama.json # Glama MCP directory registration
LICENSE # MIT
CHANGELOG.md # Version history
tests/
test_server.py # 48 tests — tools, dispatch, errors, SSRF, config
examples/
basic_usage.py # Programmatic MCP client example
docs/
BUILD_SPEC.md # Internal build specificationТестирование
pip install pytest
python -m pytest tests/ -v48 тестов, охватывающих:
Определения инструментов — валидация схемы, обязательные поля, описания
Вспомогательные функции — построитель опций, валидация, безопасность JSON, форматирование ошибок
Диспетчер — все 6 путей инструментов с мокированными HTTP-ответами
Обработка ошибок — соединение, тайм-аут, HTTP-статус, санитизация исключений
Конфигурация — значения по умолчанию, защита от SSRF, идентификация сервера
Сопутствующий сервер
Ollama-Omega является транспортным уровнем для Omega Brain MCP — эпизодическая память между сессиями + 10-шлюзовый конвейер сборки VERITAS. Вместе они образуют суверенный стек интеллекта.
Лицензия
MIT
Available Tools
6 toolsollama_chatARead-only
Send a multi-turn chat completion request to an Ollama model. Use this tool for conversational interactions where message history matters — for example, follow-up questions, multi-step reasoning, or dialogue with context. Do not use this for single-prompt completions without history; use ollama_generate instead to avoid the overhead of the messages array. Prerequisites: The 'model' must already be installed locally. Call ollama_list_models to verify availability; use ollama_pull_model to download if missing. Behavior: Read-only (no state changes on the server), not idempotent — each call generates a new response even with identical inputs. No authentication required. No rate limits. Network-dependent; response time varies from seconds to minutes based on model size and prompt length. Safe to retry on timeout. On model-not-found error, returns an error object without throwing.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Exact Ollama model identifier. Must match a 'name' value from ollama_list_models output (e.g., 'llama3.1:8b', 'qwen2.5:7b'). Cloud-hosted models use a '-cloud' suffix (e.g., 'deepseek-v3:671b-cloud'). If unsure which models are available, call ollama_list_models first. | |
| system | No | System prompt prepended before the messages array. Use this as a shortcut to set model behavior without adding a system-role message to the 'messages' array. If both this field and a system-role message are provided, this field takes precedence. | |
| messages | Yes | Ordered conversation history sent to the model. Place system instructions first (role 'system'), then alternate user/assistant turns. The model sees all messages in order. If you only need a system prompt with one user message, consider using the 'system' parameter instead of a system-role message. | |
| max_tokens | No | Maximum number of tokens to generate in the response. Maps to Ollama's internal 'num_predict' parameter. Use -1 for unlimited generation (model stops at its natural end token). Default is model-dependent, typically ~2048. | |
| temperature | No | Sampling temperature controlling output randomness. 0.0 = deterministic (always pick the most likely token), 2.0 = maximum creativity. Default is model-dependent, typically ~0.7. Use low values (0.0–0.3) for factual tasks, higher (0.7–1.0) for creative tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if the request failed (e.g., model not found). Only present on failure. |
| model | Yes | The model that generated the response. |
| message | No | The assistant's response message. |
| eval_count | No | Number of tokens generated in the response. |
| total_duration | No | Total time in nanoseconds including load and inference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, non-idempotent, non-destructive), the description adds: 'Read-only (no state changes on the server)', 'not idempotent', 'No authentication required', 'No rate limits', 'Network-dependent; response time varies', 'Safe to retry on timeout', and error behavior. No contradiction with annotations.
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 concise and well-structured: purpose, usage, prerequisites, behavior notes. Each sentence serves a clear purpose, no redundant or filler content. Front-loaded with key information.
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 (5 params, 2 required), high schema coverage, and existence of output schema, the description covers all essential aspects: purpose, usage context, prerequisites, behavioral quirks, and parameter hints. Return values are not needed due to output schema.
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 100%, but the description adds contextual meaning: explains 'system' field as a shortcut with precedence, describes 'messages' array ordering, and gives temperature guidance (low for factual, high for creative). While schema already defines parameters, the description enriches operational understanding.
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 verb ('Send'), resource ('multi-turn chat completion request to an Ollama model'), and specifies the use case (conversational interactions with history). It explicitly differentiates from sibling tool 'ollama_generate' by advising against single-prompt usage, making the purpose distinct.
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?
Provides explicit when to use (multi-turn, follow-up, multi-step reasoning) and when not to use (single-prompt, use ollama_generate). Includes prerequisites: model must be installed, with references to ollama_list_models and ollama_pull_model. Also describes error behavior (returns error without throwing on model-not-found), guiding safe handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ollama_generateARead-only
Generate a single-turn text completion from an Ollama model without conversation history. Use this tool for one-shot tasks: code generation, text transformation, summarization, translation, or any prompt that does not require prior context. Do not use this for multi-turn conversations where message history matters; use ollama_chat instead. Prerequisites: The 'model' must already be installed. Call ollama_list_models to verify; use ollama_pull_model to download if missing. Behavior: Read-only, not idempotent — each call produces a different generation even with identical inputs. No authentication required. No rate limits. Network-dependent; response time varies with model size and prompt length. Safe to retry on timeout. On model-not-found error, returns an error object without throwing.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Exact Ollama model identifier. Must match a 'name' from ollama_list_models (e.g., 'llama3.1:8b', 'codellama:13b'). If unsure, call ollama_list_models first. | |
| prompt | Yes | The input text prompt to generate a completion from. Can be any length — the model's context window is the only limit. | |
| system | No | System prompt to set model behavior, persona, or output format constraints for this generation. | |
| max_tokens | No | Maximum tokens to generate. Maps to Ollama 'num_predict'. Use -1 for unlimited (model stops at its natural end token). | |
| temperature | No | Sampling temperature. 0.0 = deterministic, 2.0 = maximum randomness. Default is model-dependent. Use low values for factual/code tasks. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if the request failed. Only present on failure. |
| model | Yes | The model that generated the response. |
| response | No | The generated text completion. |
| eval_count | No | Number of tokens generated. |
| total_duration | No | Total time in nanoseconds including load and inference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states read-only, not idempotent (each call produces different output), no authentication, no rate limits, network-dependent, safe to retry on timeout, and error handling. This adds significant context beyond annotations (readOnlyHint: true, etc.) and does not contradict them.
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?
Description is a single paragraph but well-structured: starts with purpose, then use cases, prerequisites, behavioral details. Every sentence adds unique value. Slightly longer than minimal but no redundancy, and front-loaded.
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 (5 params), presence of output schema, and sibling tools, the description covers purpose, usage guidelines, prerequisites, behavior, and error handling. With output schema existing, it doesn't need to explain return values. Complete for selecting and invoking.
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 100%, but the description adds valuable context: suggests calling ollama_list_models for model parameter, explains prompt length is context-window limited, maps max_tokens to Ollama 'num_predict', and gives usage tips for temperature. Goes beyond schema but is not essential since schema already covers basics.
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?
Clearly states 'Generate a single-turn text completion from an Ollama model without conversation history.' Uses specific verb and resource, lists use cases (code generation, etc.), and explicitly distinguishes from sibling ollama_chat (multi-turn).
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?
Explicitly tells when to use (one-shot tasks) and when not to (multi-turn conversations), directing to ollama_chat. Also provides prerequisites: model must be installed, with instructions to verify via ollama_list_models and pull via ollama_pull_model.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ollama_healthARead-onlyIdempotent
Check Ollama daemon connectivity and list currently running models. Use this tool as the first call to verify the Ollama service is reachable before calling any other tool in this server. Do not use this to list all installed models — use ollama_list_models instead. Behavior: Read-only, idempotent, safe to retry. No authentication required. No rate limits. Makes a single HTTP GET to the Ollama daemon. On connection failure returns an error object without throwing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | The Ollama host URL that was checked (e.g., 'http://localhost:11434'). |
| error | No | Error message if connection failed. Only present on failure. |
| connected | No | True if the Ollama daemon responded to the health check. |
| running_models | No | Models currently loaded in GPU/CPU memory. Empty array if none are loaded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral traits beyond annotations: 'Read-only, idempotent, safe to retry. No authentication required. No rate limits. Makes a single HTTP GET... On connection failure returns an error object without throwing.' This provides rich context for safe usage.
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?
Four sentences with clear front-loading. Could be slightly trimmed but all information earns its place.
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 zero parameters, rich annotations, and an output schema, the description fully covers usage context, behavior, and error handling. Nothing essential is missing.
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?
No parameters exist, so baseline 4 applies. Description does not need to add param details as there are none.
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?
Clearly states it checks Ollama daemon connectivity and lists running models. Explicitly distinguishes from ollama_list_models by specifying it does not list all installed 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?
Explicitly recommends using this as the first call to verify service reachability before other tools. Also states to not use for listing all installed models, with alternative provided (ollama_list_models).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ollama_list_modelsARead-onlyIdempotent
List all Ollama models installed on the local machine with their memory load status. Use this tool to discover available model names before calling ollama_chat, ollama_generate, or ollama_show_model. Do not use this to check if the Ollama daemon is running — use ollama_health instead. Behavior: Read-only, idempotent, safe to retry. No authentication required. No rate limits. Returns an empty models array if no models are installed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| models | Yes | All locally installed models. Empty array if none are installed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond annotations: 'No authentication required. No rate limits. Returns an empty models array if no models are installed.' This fully discloses behavior and aligns with annotations (readOnlyHint, idempotentHint).
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?
Three concise sentences each serving a distinct purpose: function, usage guidance, and behavioral note. No redundant 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?
For a simple list tool with good annotations and an output schema, the description covers all necessary aspects: purpose, when to use, behavior, and return states. Complete for agent decision-making.
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?
Tool has 0 parameters, baseline is 4. Description clarifies no input needed, and schema is empty. No further parameter detail required.
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?
Description clearly states verb 'List' and resource 'Ollama models installed on the local machine with their memory load status.' It distinguishes from sibling tools by specifying its role in discovering model names before using other tools.
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?
Explicitly advises when to use (before ollama_chat, ollama_generate, etc.) and when not to use (for checking daemon status, recommends ollama_health instead). Also notes idempotency and safe retry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ollama_pull_modelAIdempotent
Download a model from the Ollama library to the local machine. Use this tool when a model is needed but not yet installed locally. Do not use this if the model is already available — call ollama_list_models first to check. Do not use this to run inference — use ollama_chat or ollama_generate after pulling. Behavior: WRITE operation — downloads large files (1–100+ GB) and stores them on disk. Idempotent — re-pulling an already-installed model is safe and verifies integrity. No authentication required. No rate limits. Execution time ranges from seconds to hours depending on model size and network bandwidth. Not destructive (does not delete existing data). On network failure, returns an error object without throwing.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model identifier to download from the Ollama library. Use the format 'name:tag' (e.g., 'llama3.1:8b', 'mistral:latest', 'codellama:13b-instruct'). The tag selects a specific size or quantization variant. Omitting the tag defaults to ':latest'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if the download failed (e.g., network error, model not found in library). Only present on failure. |
| status | No | Download result status (e.g., 'success'). Indicates the model is now available for inference. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate write, idempotent, non-destructive. Description adds file size range, idempotency verification, authentication, rate limits, execution time, error behavior. No contradictions with annotations.
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?
Description is eight sentences, each adding value, with front-loaded purpose and clear structure. No redundancy or fluff.
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?
Covers usage, behavior, constraints, and error handling. Output schema exists, so return value details are not required. Comprehensive for a download 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?
Schema coverage is 100% with detailed parameter description. The tool description does not add meaning beyond the schema, so baseline score of 3 applies.
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 specifies downloading a model from the Ollama library to the local machine, using a clear verb and resource. It distinguishes from sibling tools by stating when not to use it (e.g., for inference or when model is already present).
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?
Explicitly states when to use (model needed but not installed) and when not to use (if already installed, use ollama_list_models first; for inference, use ollama_chat or ollama_generate). Provides clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ollama_show_modelARead-onlyIdempotent
Retrieve detailed metadata about a specific installed Ollama model. Use this tool to inspect a model's architecture, license, quantization level, prompt template, and default parameters before using it with ollama_chat or ollama_generate. Do not use this to list all models — use ollama_list_models instead. Do not use this to download new models — use ollama_pull_model instead. Prerequisites: The model must already be installed locally (verify with ollama_list_models). Behavior: Read-only, idempotent, safe to retry. No authentication required. No rate limits. Returns the same metadata for the same model every time. On model-not-found error, returns an error object without throwing.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Exact Ollama model identifier to inspect (e.g., 'llama3.1:8b', 'mistral:latest'). Must match a 'name' from ollama_list_models output. If unsure which models are installed, call ollama_list_models first. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if the model was not found. Only present on failure. |
| details | No | Model architecture details. |
| template | No | Go template string used for prompt formatting. |
| modelfile | No | The full Modelfile content defining this model's configuration. |
| parameters | No | Runtime parameter defaults (e.g., temperature, context length) as a formatted string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds read-only, idempotent, safe to retry, no auth, no rate limits, consistent returns, and error handling behavior. No contradiction.
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?
Concise, well-structured, front-loaded with purpose, bullet-like guidelines, every sentence adds value. No unnecessary 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?
Covers purpose, usage, prerequisites, behavior, error handling. With good annotations and output schema, nothing missing. Complete for a simple inspection 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?
Schema coverage is 100%, baseline 3. Description adds value by explaining the parameter is an exact identifier from ollama_list_models, provides examples, and suggests calling that tool first if unsure.
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 it retrieves detailed metadata about a specific installed Ollama model, including architecture, license, etc. It clearly distinguishes from sibling tools like ollama_list_models and ollama_pull_model.
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?
Explicitly states when to use (before ollama_chat/generate), when not to use (listing or downloading models), prerequisites (model installed), and alternative tool names are provided.
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.
6 tool updates
- Added
ollama_chat - Added
ollama_generate - Added
ollama_health - Added
ollama_list_models - Added
ollama_pull_model - Added
ollama_show_model
6 tool updates
v1.0.4- Removed
ollama_chat - Removed
ollama_generate - Removed
ollama_health - Removed
ollama_list_models - Removed
ollama_pull_model - Removed
ollama_show_model
6 tool updates
v1.0.3- Changed
ollama_chat16 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / max_tokens / descriptionPrevious value: -"Max tokens to generate (maps to num_predict)"New value: +"Maximum number of tokens to generate in the response. Maps to Ollama's internal 'num_predict' parameter. Use -1 for unlimited generation (model stops at its natural end token). Default is model-dependent, typically ~2048." - added
Input schema / properties / max_tokens / minimumAdded value: +-1 - changed
Input schema / properties / messages / descriptionPrevious value: -"List of message objects with 'role' and 'content'"New value: +"Ordered conversation history sent to the model. Place system instructions first (role 'system'), then alternate user/assistant turns. The model sees all messages in order. If you only need a system prompt with one user message, consider using the 'system' parameter instead of a system-role message." - added
Input schema / properties / messages / items / additionalPropertiesAdded value: +false - added
Input schema / properties / messages / items / properties / content / descriptionAdded value: +"The text content of this message." - added
Input schema / properties / messages / items / properties / role / descriptionAdded value: +"Message author: 'system' for instructions, 'user' for queries, 'assistant' for prior model responses." - added
Input schema / properties / messages / items / properties / role / enumAdded value: +[ + "user", + "assistant", + "system" +] - added
Input schema / properties / messages / minItemsAdded value: +1 - changed
Input schema / properties / model / descriptionPrevious value: -"Model name (e.g., 'llama3')"New value: +"Exact Ollama model identifier. Must match a 'name' value from ollama_list_models output (e.g., 'llama3.1:8b', 'qwen2.5:7b'). Cloud-hosted models use a '-cloud' suffix (e.g., 'deepseek-v3:671b-cloud'). If unsure which models are available, call ollama_list_models first." - added
Input schema / properties / model / minLengthAdded value: +1 - changed
Input schema / properties / system / descriptionPrevious value: -"System prompt"New value: +"System prompt prepended before the messages array. Use this as a shortcut to set model behavior without adding a system-role message to the 'messages' array. If both this field and a system-role message are provided, this field takes precedence." - changed
Input schema / properties / temperature / descriptionPrevious value: -"Sampling temperature"New value: +"Sampling temperature controlling output randomness. 0.0 = deterministic (always pick the most likely token), 2.0 = maximum creativity. Default is model-dependent, typically ~0.7. Use low values (0.0–0.3) for factual tasks, higher (0.7–1.0) for creative tasks." - added
Input schema / properties / temperature / maximumAdded value: +2 - added
Input schema / properties / temperature / minimumAdded value: +0 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "error": { + "description": "Error message if the request failed (e.g., model not found). Only present on failure.", + "type": "string" + }, + "eval_count": { + "description": "Number of tokens generated in the response.", + "type": "integer" + }, + "message": { + "description": "The assistant's response message.", + "properties": { + "content": { + "description": "The generated text content of the response.", + "type": "string" + }, + "role": { + "description": "Always 'assistant' for chat responses.", + "enum": [ + "assistant" + ], + "type": "string" + } + }, + "required": [ + "role", + "content" + ], + "type": "object" + }, + "model": { + "description": "The model that generated the response.", + "type": "string" + }, + "total_duration": { + "description": "Total time in nanoseconds including load and inference.", + "type": "integer" + } + }, + "required": [ + "model" + ], + "type": "object" +}
- Changed
ollama_generate12 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / max_tokens / descriptionPrevious value: -"Max tokens to generate"New value: +"Maximum tokens to generate. Maps to Ollama 'num_predict'. Use -1 for unlimited (model stops at its natural end token)." - added
Input schema / properties / max_tokens / minimumAdded value: +-1 - changed
Input schema / properties / model / descriptionPrevious value: -"Model name"New value: +"Exact Ollama model identifier. Must match a 'name' from ollama_list_models (e.g., 'llama3.1:8b', 'codellama:13b'). If unsure, call ollama_list_models first." - added
Input schema / properties / model / minLengthAdded value: +1 - changed
Input schema / properties / prompt / descriptionPrevious value: -"The prompt to generate from"New value: +"The input text prompt to generate a completion from. Can be any length — the model's context window is the only limit." - added
Input schema / properties / prompt / minLengthAdded value: +1 - changed
Input schema / properties / system / descriptionPrevious value: -"System prompt"New value: +"System prompt to set model behavior, persona, or output format constraints for this generation." - changed
Input schema / properties / temperature / descriptionPrevious value: -"Sampling temperature"New value: +"Sampling temperature. 0.0 = deterministic, 2.0 = maximum randomness. Default is model-dependent. Use low values for factual/code tasks." - added
Input schema / properties / temperature / maximumAdded value: +2 - added
Input schema / properties / temperature / minimumAdded value: +0 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "error": { + "description": "Error message if the request failed. Only present on failure.", + "type": "string" + }, + "eval_count": { + "description": "Number of tokens generated.", + "type": "integer" + }, + "model": { + "description": "The model that generated the response.", + "type": "string" + }, + "response": { + "description": "The generated text completion.", + "type": "string" + }, + "total_duration": { + "description": "Total time in nanoseconds including load and inference.", + "type": "integer" + } + }, + "required": [ + "model" + ], + "type": "object" +}
- Changed
ollama_health2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "connected": { + "description": "True if the Ollama daemon responded to the health check.", + "type": "boolean" + }, + "error": { + "description": "Error message if connection failed. Only present on failure.", + "type": "string" + }, + "host": { + "description": "The Ollama host URL that was checked (e.g., 'http://localhost:11434').", + "type": "string" + }, + "running_models": { + "description": "Models currently loaded in GPU/CPU memory. Empty array if none are loaded.", + "items": { + "properties": { + "expires_at": { + "type": "string" + }, + "name": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "host" + ], + "type": "object" +}
- Changed
ollama_list_models2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "models": { + "description": "All locally installed models. Empty array if none are installed.", + "items": { + "properties": { + "digest": { + "description": "SHA256 digest of the model blob.", + "type": "string" + }, + "loaded": { + "description": "True if the model is currently loaded in GPU/CPU memory.", + "type": "boolean" + }, + "modified_at": { + "description": "ISO 8601 timestamp of last modification.", + "type": "string" + }, + "name": { + "description": "Model identifier — use this exact value as the 'model' parameter in other tools.", + "type": "string" + }, + "size": { + "description": "Model size in bytes on disk.", + "type": "integer" + } + }, + "required": [ + "name", + "size", + "modified_at" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "models" + ], + "type": "object" +}
- Changed
ollama_pull_model4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / model / descriptionPrevious value: -"Model name to pull"New value: +"Model identifier to download from the Ollama library. Use the format 'name:tag' (e.g., 'llama3.1:8b', 'mistral:latest', 'codellama:13b-instruct'). The tag selects a specific size or quantization variant. Omitting the tag defaults to ':latest'." - added
Input schema / properties / model / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "error": { + "description": "Error message if the download failed (e.g., network error, model not found in library). Only present on failure.", + "type": "string" + }, + "status": { + "description": "Download result status (e.g., 'success'). Indicates the model is now available for inference.", + "type": "string" + } + }, + "type": "object" +}
- Changed
ollama_show_model4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / model / descriptionPrevious value: -"Model name"New value: +"Exact Ollama model identifier to inspect (e.g., 'llama3.1:8b', 'mistral:latest'). Must match a 'name' from ollama_list_models output. If unsure which models are installed, call ollama_list_models first." - added
Input schema / properties / model / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "details": { + "description": "Model architecture details.", + "properties": { + "families": { + "items": { + "type": "string" + }, + "type": "array" + }, + "family": { + "description": "Model family (e.g., 'llama', 'qwen2').", + "type": "string" + }, + "format": { + "description": "Model format (e.g., 'gguf').", + "type": "string" + }, + "parameter_size": { + "description": "Human-readable parameter count (e.g., '8B', '70B').", + "type": "string" + }, + "quantization_level": { + "description": "Quantization format (e.g., 'Q4_K_M', 'F16').", + "type": "string" + } + }, + "required": [ + "family", + "parameter_size", + "quantization_level" + ], + "type": "object" + }, + "error": { + "description": "Error message if the model was not found. Only present on failure.", + "type": "string" + }, + "modelfile": { + "description": "The full Modelfile content defining this model's configuration.", + "type": "string" + }, + "parameters": { + "description": "Runtime parameter defaults (e.g., temperature, context length) as a formatted string.", + "type": "string" + }, + "template": { + "description": "Go template string used for prompt formatting.", + "type": "string" + } + }, + "type": "object" +}
6 tool updates
v1.0.2- First observed
ollama_chat - First observed
ollama_generate - First observed
ollama_health - First observed
ollama_list_models - First observed
ollama_pull_model - First observed
ollama_show_model
TDQS
Each tool targets a distinct operation: multi-turn chat, single-turn generation, health check, model listing, model pulling, and model metadata. No two tools overlap in purpose.
All tools follow the 'ollama_' prefix with snake_case and clear verb_noun pattern (chat, generate, health, list_models, pull_model, show_model). Consistent and predictable.
Six tools cover the essential operations for interacting with the Ollama service: health check, model management, and inference in two modes. The count is well-scoped for the domain.
The set covers read operations (health, list, show), inference (chat, generate), and model download. Missing a delete or update tool for models, which is a minor gap but doesn't hinder basic workflows.
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
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
31Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Related MCP Servers
- AlicenseBqualityFmaintenanceA bridge that enables seamless integration of Ollama's local LLM capabilities into MCP-powered applications, allowing users to manage and run AI models locally with full API coverage.101,14474AGPL 3.0
- AlicenseAqualityCmaintenanceAI agent provenance, trust, and auditability layer. VERITAS multi-gate scoring, Cortex approval gates, S.E.A.L. hash-chain audit ledger, and semantic RAG with cryptographic provenance tracking for every decision an agent makes.275MIT
- AlicenseNot gradedqualityBmaintenanceMCP server wrapping local Ollama models for offload from API-priced orchestrators. Nine stdio tools - generation, summarisation, analysis, drafting, code tasks (docstring/test/explain/review/types/refactor-suggest), diff-driven tasks (commit-message/pr-description/changelog/summary/impact), mechanical transforms, and model management (list/pull). Apache-2.0.20Apache 2.0
- AlicenseNot gradedqualityAmaintenanceA Python MCP server that exposes local Ollama models as tools for AI assistants, enabling chat, generation, embeddings, and model management without cloud APIs.5MIT
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/VrtxOmega/Ollama-Omega'
If you have feedback or need assistance with the MCP directory API, please join our Discord server