Skip to main content
Glama
lmstudio-ollama-mcp

lmstudio-ollama-mcp

by fthsrbst

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"

Local-first. Privado. Gratis. Sin claves de API. Los modelos de vanguardia (GPT-4o, Claude 4) son opcionales: se usan solo como planificadores mientras los modelos locales pequeños hacen el trabajo. El alias forge / forgecode mantiene la memoria muscular.


Por qué lmstudio-ollama-mcp

Claude Code / Codex

lmstudio-ollama-mcp

Se ejecuta en

API en la nube (de pago, los datos salen del equipo)

LM Studio · Ollama · llama.cpp (sin conexión, privado)

Coste

$ por token

$0 tras descargar el modelo

Subagentes

Paralelismo de un solo hilo o en la nube

Paralelismo local consciente del hardware

Elección de modelo

Bloqueado por el proveedor

Cualquier modelo GGUF / compatible con OpenAI

Modo híbrido

—

Los modelos de vanguardia planifican, los locales ejecutan (opcional)

Entorno aislado

Contenedor en la nube

Tu sistema de archivos, tus reglas

MCP

—

Listo: conecta los runtimes locales como herramientas MCP

En una frase: lmstudio-ollama-mcp lleva el bucle de agente de Claude Code — leer → planificar → editar → verificar con herramientas — a tu MacBook, con un enrutador inteligente que envía las tareas triviales a un 7B local y el razonamiento complejo a un modelo de vanguardia solo cuando es necesario.


Related MCP server: Shared Workspace MCP

Demostración

# 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

Inicio rápido

Requisitos previos

  • Node.js >= 18

  • Una de estas opciones:

    • LM Studio — Developer → Local Server → Start (puerto 1234)

    • Ollama — ejecuta ollama serve y luego ollama pull qwen2.5-coder:7b

    • llama.cpp — ./llama-server -m model.gguf --port 8080

Instalación

npm install -g lmstudio-ollama-mcp
# aliases also available: forge, forgecode
# or one-off
npx lmstudio-ollama-mcp doctor

Primera ejecución

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"

No se necesitan claves de API para el modo solo local. Para el modo híbrido (modelos de vanguardia + local), configura las variables de entorno:

export OPENAI_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-ant-...

Arquitectura

┌─────────────────────────────────────────────────────────┐
│  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                       │
└─────────────────────────────────────────────────────────┘

Flujo de datos:

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

Proveedores

Proveedor

URL por defecto

Detección

Notas

LM Studio

http://localhost:1234/v1

escaneo de /v1/models + ~/.lmstudio/models/**/*.gguf

Compatible con reasoning_content (Gemma)

Ollama

http://localhost:11434

/api/tags nativo, alternativa /v1/models

requiere ollama pull <model>

llama.cpp

http://localhost:8080

/health + /v1/models

Cualquier GGUF mediante llama-server

OpenAI

https://api.openai.com/v1

API

Configura OPENAI_API_KEY

Anthropic

https://api.anthropic.com

API

Configura ANTHROPIC_API_KEY

Todos los proveedores hablan Chat Completions compatible con OpenAI con tools (llamada a funciones). Normaliza reasoning_content (Qwen/Gemma) automáticamente.

Añadir un endpoint personalizado

// lmstudio-ollama-mcp.json
{
  "providers": {
    "my-local": { "type": "openai", "baseUrl": "http://192.168.1.10:1234/v1", "enabled": true }
  }
}

Subagentes paralelos

Divide los objetivos complejos en 2–6 subtareas independientes mediante un LLM planificador (de vanguardia si está disponible; si no, local). La ejecución está limitada por el hardware:

// 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 machines
lmstudio-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

Las tareas con dependsOn se agrupan en lotes de forma topológica: el lote N solo comienza cuando el lote N-1 termina.

Amigable con los modelos locales: las tareas triviales (lint, format, summarize, explain) se enrutan siempre a nivel local, independientemente de la estrategia.


Configuración

Resolución de configuración: DEFAULT < ~/.lmstudio-ollama-mcp/config.json < ./lmstudio-ollama-mcp.json < variables de entorno.
Las rutas heredadas ~/.forgecode/config.json y forgecode.json / forge.json se siguen leyendo por compatibilidad con versiones anteriores (la nueva ruta tiene prioridad).

lmstudio-ollama-mcp config --show   # resolved JSON
lmstudio-ollama-mcp config --path   # file locations
lmstudio-ollama-mcp init            # scaffold lmstudio-ollama-mcp.json

Referencia de 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
  }
}

Estrategias:

  • auto — trivial/pequeña → local; mediana/grande → de vanguardia si está disponible; si no, local. (recomendada)

  • local-first — solo las medianas/grandes van al modelo de vanguardia.

  • local-only — nunca llama a un modelo de vanguardia (aislado).

  • frontier-first — prefiere siempre un modelo de vanguardia.


Herramientas

Los agentes disponen de 7 herramientas — la misma superficie que Claude Code, aisladas en el espacio de trabajo:

Herramienta

Descripción

read_file

Leer un archivo (límite de 2 MB; si no, usa grep)

write_file

Crear/sobrescribir un archivo (mkdir -p automático)

edit_file

Reemplazo de cadena exacta (debe coincidir una vez)

bash

Ejecutar un comando (timeout 30s, búfer de 5 MB)

glob

Búsqueda con fast-glob

grep

Búsqueda regex (omite node_modules/dist/.git)

list_dir

Listado del directorio

Seguridad: el escape de la ruta está bloqueado salvo que permissions.allowWriteOutsideWorkspace=true; los comandos peligrosos (rm -rf /) se rechazan; las salidas grandes se truncan (30k).


Comparativa: cuándo usar cada modelo

Tarea

Por qué gana lo local

Ejemplo

Lint / format / grep

0.2s vs 2s RTT

lmstudio-ollama-mcp "format src/**/*.ts with prettier"

Explicar / resumir

El código privado permanece local

lmstudio-ollama-mcp "explain how auth works"

Ediciones pequeñas

Sin colas, sin coste

lmstudio-ollama-mcp "add zod validation to src/config/schema.ts"

Refactorización grande

Los modelos de vanguardia planifican, los locales ejecutan en paralelo

lmstudio-ollama-mcp "migrate to ESM"

Razonamiento complejo

Se requiere 70B / un modelo de vanguardia

lmstudio-ollama-mcp --model openai:gpt-4o "design CRDT sync"


Desarrollo

npm install
npm run build        # tsc
npm test             # vitest
npm run dev -- doctor

Mapa del proyecto:

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)

Hoja de ruta

  • Salida en streaming (--stream)

  • Servidor MCP (Model Context Protocol): exponer modelos locales como herramientas MCP para otros agentes

  • Memoria persistente (.lmstudio-ollama-mcp/memory.md)

  • lmstudio-ollama-mcp plan — descomposición de prueba sin ejecución

  • Modelos de visión (Gemma 12B multimodal) para trabajo de UI guiado por capturas de pantalla

  • hooks — ganchos de herramientas pre/post

  • Sugerencias de planificador para GPU en Windows / Linux (CUDA/Vulkan)


Contribuciones

Se aceptan PRs. Mantén los principios fundamentales: local-first, dependencias mínimas, consciente del hardware, sin basura de IA.

npm run build && npm test

Palabras clave

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


Licencia

MIT — consulta LICENSE.

Related MCP Connectors

Related MCP Servers