lmstudio-ollama-mcp
lmstudio-ollama-mcp
npm install -g lmstudio-ollama-mcp
lmstudio-ollama-mcp doctor # or: forge doctor
lmstudio-ollama-mcp "add unit tests for src/utils/logger.ts"Локально прежде всего. Приватно. Бесплатно. Без API-ключей. Фронтирные модели (GPT-4o, Claude 4) необязательны — используются только как планировщики, пока небольшие локальные модели выполняют работу. Алиас
forge/forgecodeсохраняет мышечную память.
Зачем lmstudio-ollama-mcp
Claude Code / Codex | lmstudio-ollama-mcp | |
Работает на | Облачный API (платно, данные покидают машину) | LM Studio · Ollama · llama.cpp (офлайн, приватно) |
Стоимость | $ за токен | $0 после загрузки модели |
Субагенты | Однопоточность или облачный параллелизм | Аппаратно-ориентированный локальный параллелизм |
Выбор модели | Привязка к вендору | Любая GGUF / OpenAI-совместимая модель |
Гибридный режим | — | Фронтир планирует, локальная выполняет (опционально) |
Песочница | Облачный контейнер | Ваша файловая система, ваши правила |
MCP | — | Готово: мост локальных рантаймов как MCP-инструменты |
Одной фразой: lmstudio-ollama-mcp приносит агентный цикл Claude Code — читать → планировать → редактировать → проверять инструментами — на ваш MacBook, с интеллектуальным маршрутизатором, который отправляет простые задачи локальной 7B, а сложные рассуждения — фронтирной модели, только когда это нужно.
Related MCP server: Shared Workspace MCP
Демо
# 1 — Diagnose
lmstudio-ollama-mcp doctor
# Hardware: Apple M3 (8 cores / 16GB) • Recommended: 8 agents
# ● lmstudio (LM Studio) http://localhost:1234/v1 available
# models: gemma-3-12b-qat, qwen3-27b-ud-iq2_s …
lmstudio-ollama-mcp models
# ● lmstudio ▸ gemma-3-12b-qat 6.5GB Q4_0
# ▸ qwen3-27b 7.8GB IQ2_S
# 2 — One-shot
lmstudio-ollama-mcp "refactor src/providers into a registry + add tests. keep public API stable"
# 3 — Parallel (auto-splits into sub-agents)
lmstudio-ollama-mcp --parallel 4 "implement auth module, write tests, and update docs"
# forge alias also works:
forge --parallel 4 "implement auth module, write tests, and update docs"
# 4 — Force a specific model
lmstudio-ollama-mcp --model ollama:qwen2.5-coder:14b "explain this repo's error handling"
lmstudio-ollama-mcp --provider lmstudio --model gemma-3-12b "fix the failing test in tests/tools.test.ts"
# 5 — Interactive
lmstudio-ollama-mcp
# lmstudio-ollama-mcp> add dark mode to docs/index.htmlБыстрый старт
Предварительные требования
Node.js >= 18
Одно из:
Установка
npm install -g lmstudio-ollama-mcp
# aliases also available: forge, forgecode
# or one-off
npx lmstudio-ollama-mcp doctorПервый запуск
git clone https://github.com/your-org/your-project && cd your-project
lmstudio-ollama-mcp init # creates lmstudio-ollama-mcp.json (also reads forgecode.json for compat)
lmstudio-ollama-mcp doctor # verify providers + hardware
lmstudio-ollama-mcp "list the codebase structure and suggest 3 small improvements"Для режима local-only API-ключи не нужны. Для гибридного режима (фронтир + локальная) задайте переменные окружения:
export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...Архитектура
┌─────────────────────────────────────────────────────────┐
│ CLI lmstudio-ollama-mcp "task" • doctor • models │
│ aliases: forge, forgecode │
├─────────────────────────────────────────────────────────┤
│ Router (strategy: auto | local-first | frontier-first)│
│ ├─ classify(prompt) → trivial | small | medium | large │
│ └─ thresholds.preferLocalFor: lint/format/test/search │
├─────────────────────────────────────────────────────────┤
│ Orchestrator (decompose → batch by deps → schedule) │
│ ├─ Planner LLM decomposes goal → SubTasks[] │
│ └─ Scheduler (hardware-aware p-limit, preserves order) │
├─────────────────────────────────────────────────────────┤
│ Agent Loop (provider.chat ↔ tool executor) │
│ ├─ Tools: read_file, write_file, edit_file, bash, │
│ │ glob, grep, list_dir │
│ └─ Max 25 tool turns, exact-string edits │
├─────────────────────────────────────────────────────────┤
│ Providers (OpenAI-compatible) │
│ ├─ LM Studio http://localhost:1234/v1 (+ fs scan) │
│ ├─ Ollama http://localhost:11434 (+ /api/tags) │
│ ├─ llama.cpp http://localhost:8080/v1 │
│ └─ Frontier OpenAI / Anthropic (optional) │
├─────────────────────────────────────────────────────────┤
│ Hardware Detector • Scheduler │
│ cores × overcommit, free mem / perAgent → maxParallel │
│ Apple Silicon bonus, clamp 1..16 │
└─────────────────────────────────────────────────────────┘Поток данных:
User prompt
→ Router.classify → pick provider+model (local for small, frontier for large)
→ If parallel & non-trivial: Orchestrator.decompose → 2-6 SubTasks
→ Scheduler.runAll(SubTasks) with maxParallel = f(cores, RAM)
→ Each SubTask → Agent(provider, model, ToolExecutor) → tool loop
→ Synthesis agent merges results
→ Final summaryПровайдеры
Provider | URL по умолчанию | Обнаружение | Примечания |
LM Studio |
| сканирование | Поддерживает |
Ollama |
| нативный | требуется |
llama.cpp |
|
| Любая GGUF через |
OpenAI |
| API | Установите |
Anthropic |
| API | Установите |
Все провайдеры работают через OpenAI-совместимые Chat Completions с tools (вызов функций). reasoning_content (Qwen/Gemma) нормализуется автоматически.
Добавление собственного эндпоинта
// lmstudio-ollama-mcp.json
{
"providers": {
"my-local": { "type": "openai", "baseUrl": "http://192.168.1.10:1234/v1", "enabled": true }
}
}Параллельные субагенты
Разбивает сложные цели на 2–6 независимых подзадач с помощью LLM-планировщика (фронтир, если доступен, иначе локальная). Выполнение ограничено аппаратными ресурсами:
// hardware/detector.ts — recommendParallelism()
cpuLimit = floor(cores * overcommit) - 1
memLimit = floor((totalGb*1024 - 2048) / perAgentMb)
maxParallel = min(cpuLimit, memLimit) + appleSiliconBonus
// clamp: 1..8 default, up to 16 on 64GB machineslmstudio-ollama-mcp --parallel 8 "migrate codebase from Jest to Vitest"
# Decomposed:
# t1 Explore & plan → search (routed to local 7B)
# t2 Implement → code (routed to local or frontier)
# t3 Verify → test (routed to local)
# Runner: Scheduler.runAll with p-limit = 8Задачи с dependsOn группируются топологически — пачка N запускается только после завершения пачки N-1.
Дружелюбно к локальным моделям: простые задачи (lint, format, summarize, explain) всегда маршрутизируются локально независимо от стратегии.
Конфигурация
Порядок разрешения конфигурации: DEFAULT < ~/.lmstudio-ollama-mcp/config.json < ./lmstudio-ollama-mcp.json < переменные окружения.
Устаревшие ~/.forgecode/config.json и forgecode.json / forge.json по-прежнему читаются для обратной совместимости (новый путь имеет приоритет).
lmstudio-ollama-mcp config --show # resolved JSON
lmstudio-ollama-mcp config --path # file locations
lmstudio-ollama-mcp init # scaffold lmstudio-ollama-mcp.jsonСправочник lmstudio-ollama-mcp.json
{
"version": 1,
"providers": {
"lmstudio": { "type": "lmstudio", "baseUrl": "http://localhost:1234/v1", "enabled": true },
"ollama": { "type": "ollama", "baseUrl": "http://localhost:11434", "enabled": true },
"llamacpp": { "type": "llamacpp", "baseUrl": "http://localhost:8080", "enabled": true },
"openai": { "type": "openai", "baseUrl": "https://api.openai.com/v1", "apiKey": "sk-..." }
},
"router": {
"strategy": "auto", // auto | local-first | frontier-first | local-only
"frontierProvider": "openai",
"frontierModel": "gpt-4o-mini",
"thresholds": {
"smallTaskMaxTokens": 2000,
"preferLocalFor": ["lint","format","test","search","summarize","explain"]
}
},
"hardware": {
"maxParallelAgents": 4, // auto if omitted
"maxMemoryPerAgentMb": 1200,
"cpuOvercommit": 1
},
"permissions": {
"allowBash": true,
"allowWriteOutsideWorkspace": false,
"allowNetwork": true
}
}Стратегии:
auto— простые/маленькие → локально, средние/большие → фронтир, если доступен, иначе локально. (рекомендуется)local-first— только средние/большие идут к фронтиру.local-only— никогда не вызывать фронтир (изолированная среда).frontier-first— всегда предпочитать фронтир.
Инструменты
У агентов 7 инструментов — та же поверхность, что и у Claude Code, в песочнице рабочей области:
Tool | Описание |
| Читает файл (лимит 2 МБ) |
| Создаёт/перезаписывает файл (mkdir -p автоматически) |
| Замена точной строки (должна совпасть ровно один раз) |
| Выполняет команду ( |
| Поиск через |
| Поиск по регулярному выражению (пропускает |
| Вывод содержимого каталога |
Безопасность: выход за пределы рабочей директории блокируется, если только permissions.allowWriteOutsideWorkspace=true; опасные команды (rm -rf /) отклоняются; большие выводы усекаются (30k).
Сравнение: когда использовать какую модель
Задача | Почему локальная модель выигрывает | Пример |
Lint / format / grep | 0.2s против 2s RTT |
|
Explain / summarize | Приватная кодовая база остаётся локальной |
|
Мелкие правки | Без очереди, без затрат |
|
Крупный рефакторинг | Фронтир планирует, локальные выполняют параллельно |
|
Сложные рассуждения | Нужны 70B / фронтир |
|
Разработка
npm install
npm run build # tsc
npm test # vitest
npm run dev -- doctorКарта проекта:
src/
cli/ commander CLI + commands (doctor, models, config, init)
config/ Zod schema + layered store (global ↔ project)
hardware/ detector (cores/RAM/GPU) + p-limit scheduler
providers/ base + openai-compatible + lmstudio/ollama/llamacpp + registry + router
core/ Agent (tool loop) + Orchestrator (decompose + parallel)
tools/ definitions + executor (fs/glob/grep/bash)
utils/ logger, format
tests/ vitest suites (hardware, tools, router, config, providers)
docs/ GitHub Pages landing (WizardZ-inspired, lime/black)Дорожная карта
Потоковый вывод (
--stream)MCP (Model Context Protocol) сервер — предоставить локальные модели как MCP-инструменты для других агентов
Постоянная память (
.lmstudio-ollama-mcp/memory.md)lmstudio-ollama-mcp plan— пробный прогон декомпозиции без выполненияМодели зрения (Gemma 12B, мультимодальные) для работы с UI по скриншотам
hooks— пред/пост хуки инструментовПодсказки планировщика для Windows / Linux GPU (CUDA/Vulkan)
Вклад в проект
PR приветствуются. Придерживайтесь основных принципов: локально прежде всего, минимальные зависимости, учёт аппаратного обеспечения, без ИИ-мусора.
npm run build && npm testКлючевые слова
lm-studio lmstudio ollama llama.cpp local-llm local-first coding-agent autonomous-agent claude-code codex sub-agents parallel-agents mcp model-context-protocol hardware-aware openai-compatible gguf agentic dev-tools ai-coding on-device-ai privacy
Лицензия
MIT — см. LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
AI-native programming language and toolchain for accountable, verifiable agent-driven development.
AI work orchestration for plans, tasks, teams, and coding-agent dispatch.
AI-powered spec-to-task decomposition and execution orchestration for coding agents.
Autonomous AI developers on your own infrastructure: assign a task, get a pull request.
Related MCP Servers
- AlicenseAqualityAmaintenanceA fully featured coding agent that uses symbolic operations (enabled by language servers) and works well even in large code bases. Essentially a free to use alternative to Cursor and Windsurf Agents, Cline, Roo Code and others.2935,035 PyPI30,830GPL 3.0
- AlicenseNot gradedqualityDmaintenanceLocal-first memory, pipelines, learning, feedback, and safe code tools for AI coding agents.MIT
- AlicenseAqualityBmaintenanceEnables Claude Code to delegate agent tasks to local LLMs via llama.cpp or vLLM servers on your own hardware, reducing API usage while maintaining full agent capabilities.1113MIT
- AlicenseAqualityBmaintenanceEnables zero-cost autonomous coding and dual-agent verification by connecting AI IDEs to DeepSeek Harness and local or free model backends.62 npmMIT