Skip to main content
Glama
fthsrbst

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.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

UpdatingMaintainers
UpdatingResponse time
Release cycle
0Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • Coding agents from Claude Code, Cursor and Codex claim jobs and lock files on one shared board.

  • Coding agents build full-stack apps in persistent workspaces and share them by link.

View all MCP Connectors

Latest Blog Posts

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/fthsrbst/lmstudio-ollama-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server