Inicio / Artículos

Conectar LM Studio a servidores MCP para archivos, GitHub y un navegador.

Configuraciones paso a paso de mcp.json que permiten a un modelo local utilizar el sistema de archivos, las herramientas OAuth de GitHub y Playwright, con selección de modelos y soluciones para errores comunes.

Editor: REACTAPP.TOP7 min de lectura1665 palabras

Fuentes: Connect LM Studio to MCP Servers: Filesystem, GitHub, and Browser Control (3 Working Configs)

Los modelos que funcionan exclusivamente en tu propia máquina ahora pueden utilizar herramientas reales en lugar de solo hablar de ellas. Conectar un modelo local a servicios como GitHub solía significar crear manualmente un token de acceso personal y esperar que se colocara en el campo JSON correcto. La mayor parte de esas complicaciones ya no existen. LM Studio puede conectarse a tres servidores MCP: para el sistema de archivos, GitHub y el control del navegador, con una configuración funcional para cada uno.

Qué debe tener listo

Hay varios elementos que deben estar preparados antes de modificar mcp.json.

LM Studio 0.4.10 o una versión más reciente. Esa es la versión que introdujo el soporte OAuth para servidores MCP, y cubre perfectamente también a la 0.3.17, cuando LM Studio se convirtió por primera vez en un anfitrión MCP. Las actualizaciones son frecuentes, con varias versiones menores al mes últimamente, por lo que lo más sencillo es obtener la versión actual.

Un modelo que puede emitir llamadas a herramientas. No todos los modelos locales lo hacen de manera fiable. Para una GPU con 20 GB de memoria de video, existen tres opciones sólidas:

  • Qwen3-Coder-30B-A3B-Instruct tiene 30 mil millones de parámetros en total, pero solo unos 3.3 mil millones activos por token debido a su diseño MoE. En formato de 4 bits necesita aproximadamente 17 a 20 GB y ofrece una ventana de contexto de 262 K.
  • gpt-oss-20b ocupa menos espacio, alrededor de 14 GB, y es notablemente más rápido, lo cual es útil cuando la tarjeta se comparte con otra aplicación.
  • Qwen3.5-9B es el más ligero: se trata de un modelo denso de 9 mil millones de parámetros que necesita aproximadamente 6 GB en formato de 4 bits, por lo que una tarjeta de gama media tiene suficiente capacidad. Comparte el contexto nativo de 262K del modelo Coder, llama a las herramientas de forma nativa con una sólida puntuación en BFCL-V4 y es el modelo que se muestra en las capturas de pantalla aquí. Es el punto de partida ideal si no está claro si la tarjeta puede manejar los dos modelos más grandes.

Los modelos base sin ajustes de tipo instruct o chat casi no generarán llamadas estructuradas a herramientas. Si la ficha del modelo no menciona nada sobre el uso de herramientas o llamadas a funciones, elija en su lugar una variante con soporte instruct.

Node.js 18 o superior. Tanto el servidor del sistema de archivos como el servidor de control del navegador se inician mediante npx. Verifique primero la versión:

node --version

Cualquier versión que comience con v18 o superior funciona. Si no se encuentra la orden, significa que Node no está instalado y npx tampoco existirá. Una segunda verificación rápida abarca a npx en sí:

npx --version

Viene con Node, por lo que casi siempre pasa la verificación inicial, pero es una prueba sencilla de funcionalidad antes de confiar en él para las configuraciones del sistema de archivos y del navegador.

Nada de eso confirma la versión propia de LM Studio. La barra de título en la parte superior de la aplicación lo muestra, y debería indicar 0.4.10 o una versión posterior.

La captura de pantalla anterior muestra una instalación que indicaba 0.4.23 en la barra de título, que era la versión actual en ese momento.

Abriendo el archivo de configuración

Abra la pestaña Integrations en la barra lateral derecha de LM Studio, haga clic en Install y luego en Edit mcp.json. Ese es el editor donde cada servidor tiene su entrada correspondiente.

Configuración 1: sistema de archivos

Con esta función, averiguar qué contiene una carpeta deja de ser una tarea tediosa de copiar y pegar para convertirse en una sola solicitud. El servidor de sistema de archivos oficial permite al modelo leer, escribir, buscar y listar directorios, pero solo dentro de las rutas que se le indiquen.

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/you/projects"
      ]
    }
  }
}

Sustituya /Users/you/projects por la carpeta que el modelo debe explorar. Se pueden añadir más rutas; todo lo que esté fuera de ellas queda oculto para el modelo, y esa es precisamente la restricción deseada. Hay dos aspectos importantes en esta entrada:

  • command y args corresponden a ejecutar npx -y @modelcontextprotocol/server-filesystem seguido de la carpeta permitida, como un subproceso gestionado por LM Studio.
  • El parámetro allowed-directory define los límites totales a los que puede acceder el modelo. Un proyecto que abarca varias carpetas puede listarlas una tras otra.

Después de guardar, LM Studio detectará la nueva entrada. Cargue un modelo que soporte llamadas a herramientas (Qwen 3.5 9B sirve), inicie una nueva conversación y active mcp/filesystem en la barra lateral.

Una buena prueba inicial es solicitar que se encuentre un archivo TODO.md dentro de la carpeta de proyectos y se resuma el trabajo restante. El modelo ejecuta automáticamente list_directory y read_file. Antes de que se ejecute cada llamada, LM Studio muestra un cuadro de diálogo de confirmación, y es recomendable seguir leyendo esos mensajes, ya que un modelo local con acceso de escritura al disco no debería ejecutarse sin supervisión.

Configuración 2: GitHub

Esta configuración requiere LM Studio 0.4.10 o una versión posterior. El endpoint MCP remoto de GitHub carece de Registro Dinámico de Clientes, que es el método mediante el cual un cliente normalmente se registraría por sí mismo para OAuth. Como consecuencia, es necesario crear primero una aplicación OAuth a mano. LM Studio no es excepción en este aspecto, ya que VS Code y la CLI Copilot de GitHub enfrentan la misma limitación. La configuración tarda aproximadamente dos minutos:

  1. Abra github.com/settings/developers, elija OAuth Apps y haga clic en New OAuth App.
  2. Introduzca cualquier nombre y URL de página principal, ya que no son importantes aquí. Establezca la Redirect URI exactamente en http://127.0.0.1:33389/mcp-oauth-callback.
  3. Haga clic en Register application y luego en generate a new client secret en la página siguiente. Guarde el ID de cliente y la clave secreta en un lugar seguro, ya que esta última solo se muestra una vez.

Con ambos valores en mano, la configuración se verá así:

{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "auth": {
        "CLIENT_ID": "<your Client ID>",
        "CLIENT_SECRET": "<your client secret>"
      }
    }
  }
}

Guarde el archivo, active el servidor y luego presione Authenticate, seguido de Trust, and Open in Browser. Se abrirá una ventana del navegador en la página OAuth de GitHub. Una vez que se conceda el acceso con Authorize <username> en la parte inferior de la página, el token se almacenará como lo haría con cualquier otro servidor basado en OAuth.

La página de consentimiento de GitHub solo ofrece opciones de aprobar o rechazar, sin selector de alcance. Un control más detallado se encuentra dentro de LM Studio. Abra el panel Integrations y busque la lista de Herramientas perteneciente al servidor mcp/github. Cada herramienta que expone está listada por separado, entre ellas create_pull_request, delete_file, push_files y merge_pull_request, además de docenas más; cada una cuenta con una casilla de verificación y un interruptor para seleccionar entre “Ask” o “Allow”.

Esa lista merece una atención especial. Desactive todo aquello con lo que el modelo no debería interactuar; delete_file y push_files son los candidatos obvios en primer lugar si el objetivo es únicamente leer y resumir.

En la captura de pantalla final de este grupo, get_me se invocó una vez y search_repositories dos veces contra GitHub en tiempo real, con un filtrado correcto según las fechas de creación y actualización. Las herramientas de solo lectura y los repositorios propios del modelo permanecen marcados, mientras que herramientas destructivas como delete_file y push_files están desmarcadas.

Configuración 3: control del navegador

Esta configuración permite que un modelo local inspeccione una página web en tiempo real en lugar de basarse en datos de entrenamiento. El servidor MCP de Playwright ejecuta un navegador real y proporciona contenido estructurado de la página en lugar de capturas de pantalla, lo que permite que incluso un modelo local pequeño navegue y extraiga texto de manera fiable.

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest",
        "--headless"
      ]
    }
  }
}

Dos cosas que debe saber antes de pegarlo. El servidor abre una ventana del navegador visible por defecto, en lo que se conoce como modo con interfaz gráfica, y la bandera --headless en la configuración desactiva esa función. En una máquina con pantalla, eliminar dicha bandera le permite seguir en tiempo real los clics del modelo, lo cual es útil cuando un selector deja de funcionar. Aquí también se aplica Node 18 o una versión más reciente, al igual que en Config 1; la primera ejecución podría ofrecer descargar los binarios del navegador mediante npx playwright install si faltan.

Una prueba sencilla es pedirle al modelo que abra la página principal de Hacker News y resuma las cinco noticias más importantes. Se ejecuta browser_navigate, luego se lee el árbol de accesibilidad de la página en busca de títulos y enlaces, sin utilizar ningún modelo de visión ni analizar capturas de pantalla durante el proceso.

La automatización de navegadores que se resiste deliberadamente a la identificación por huellas dactilares, para fines de investigación o trabajo de tipo OSINT, es un caso diferente. Los servidores basados en Camoufox, como Camofox-MCP, cubren esta necesidad. Esta configuración representa el punto de partida genérico.

Solución de problemas

Estos son los problemas más probables, aproximadamente del más común al menos común.

El modelo nunca realiza llamadas a herramientas. La causa habitual es que se haya cargado un modelo base o de completamiento en lugar de uno ajustado para instrucciones o conversaciones. Lea la ficha del modelo; si no se menciona el uso de herramientas o llamadas a funciones, cámbielo. Qwen 3.5 9B es una excelente opción local para realizar llamadas a herramientas.

El servidor no aparece en la barra lateral del chat después de editar mcp.json. Primero, recargue la lista de servidores desde la pestaña Programa; si eso no funciona, reinicie completamente LM Studio. Los archivos editados directamente en el disco, y no en el editor integrado, suelen requerir ese reinicio.

JSON de llamadas a herramientas dañado o argumentos inventados. Reduzca la temperatura de muestreo, ya que las llamadas a herramientas son una de las pocas tareas en las que un ajuste creativo perjudica el funcionamiento. Asegúrese también de que la longitud del contexto sea de al menos 4096 tokens. Los esquemas de herramientas consumen el contexto rápidamente, sobre todo los conjuntos de herramientas grandes de GitHub, y un margen limitado es una causa oculta común para que las llamadas queden truncadas.

Resultado final

El resultado son tres servidores, sin llamadas a API y un modelo local capaz de leer el sistema de archivos, trabajar en un repositorio real de GitHub y controlar un navegador en tiempo real, donde cada llamada se verifica y aprueba mediante los diálogos de confirmación de LM Studio, sin que ninguno funcione sin supervisión.

Por sí solo, esto constituye un agente local útil, y forma la base para un flujo de trabajo completamente autónomo. El siguiente paso lógico es integrar los tres servidores en un único ciclo de agente, en lugar de controlar cada uno con comandos separados.

Documentación de referencia

La documentación de LM Studio sobre el uso de servidores MCP y las integraciones de MCP con OAuth define las estructuras command, args, url y auth que se utilizan en todo el documento. El repositorio del servidor MCP de GitHub y la documentación de configuración de GitHub abordan Config 2; el servidor de sistema de archivos oficial modelcontextprotocol cubre Config 1, mientras que el repositorio microsoft/playwright-mcp documenta el comportamiento por defecto con encabezados y las opciones para Config 3.