Startseite / Artikel

Verbindung von LM Studio zu MCP-Servers für Dateien, GitHub und einen Browser.

Schritt-für-Schritt-Anleitungen für mcp.json-Konfigurationen, die es einem lokalen Modell ermöglichen, den Dateisystemzugriff, GitHub OAuth-Tools sowie Playwright zu nutzen, inklusive Modellauswahl und Lösungen für häufige Fehler.

Verlag: REACTAPP.TOP7 Min. Lesezeit1665 Wörter

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

Modelle, die vollständig auf dem eigenen Rechner laufen, können nun tatsächlich echte Tools aufrufen anstatt nur darüber zu sprechen. Früher bedeutete die Verbindung eines lokalen Modells mit einer Plattform wie GitHub, dass man manuell ein persönliches Zugriffstoken erstellen und hoffen musste, dass es im richtigen JSON-Feld landete. Der größte Teil dieser Hürden existiert nicht mehr. LM Studio kann mit drei MCP-Servern verbunden werden – für das Dateisystem, GitHub und die Browsersteuerung – wobei für jeden Server eine funktionierende Konfiguration vorhanden ist.

Was Sie vorbereiten müssen

Vor der Bearbeitung von mcp.json müssen einige Voraussetzungen erfüllt sein.

LM Studio 0.4.10 oder neuer. In dieser Version wurde OAuth für MCP-Server hinzugefügt, und sie umfasst auch problemlos die Version 0.3.17, in der LM Studio erstmals zu einem MCP-Host wurde. Updates kommen häufig – in letzter Zeit mehrere punktuelle Versionen pro Monat – daher ist es am einfachsten, die aktuellste Version zu verwenden.

Ein Modell, das Toolaufrufe ausführen kann. Nicht jedes lokale Modell tut dies zuverlässig. Für eine GPU mit 20 GB Video-RAM gibt es drei solide Optionen:

  • Qwen3-Coder-30B-A3B-Instruct verfügt über insgesamt 30 Milliarden Parameter, doch aufgrund seines MoE-Designs sind nur etwa 3,3 Milliarden pro Token aktiv. Im 4-Bit-Modus benötigt es rund 17 bis 20 GB und bietet ein Kontextfenster von 262.000 Token.
  • gpt-oss-20b hat einen geringeren Speicherbedarf von etwa 14 GB und ist deutlich schneller, was hilft, wenn die Karte mit anderen Anwendungen geteilt wird.
  • Qwen3.5-9B ist das leichteste Modell – ein dichtes 9B-Modell, das im 4-Bit-Format etwa 6 GB Speicher benötigt – wodurch eine Karte mittlerer Klasse ausreichend Kapazität hat. Es teilt den 262K großen nativen Kontext des Coder-Modells, ruft Tools direkt auf und weist eine solide BFCL-V4-Bewertung auf; außerdem ist es das Modell, das in den hier gezeigten Screenshoten verwendet wird. Es ist der richtige Ausgangspunkt, wenn unklar ist, ob die Karte die beiden größeren Modelle bewältigen kann.

Basismodelle ohne Anpassungen für Anweisungen oder Chatfunktionen erzeugen in der Regel überhaupt keine strukturierten Toolaufrufe. Wenn eine Modellbeschreibung nichts über die Verwendung von Tools oder Funktionsaufrufen sagt, wählen Sie lieber eine Variante mit Anweisungsfunktionen.

Node.js 18 oder neuer. Sowohl der Dateisystemserver als auch der Browser-Steuerungsserver werden über npx gestartet. Überprüfen Sie zunächst die Version:

node --version

Alles, was mit v18 oder neuer beginnt, funktioniert. Wenn der Befehl nicht gefunden wird, ist Node nicht installiert, und npx existiert ebenfalls nicht. Eine weitere schnelle Überprüfung bezieht sich auf npx selbst:

npx --version

Es wird zusammen mit Node ausgeliefert, sodass es fast immer bestanden hat, wenn die erste Überprüfung erfolgreich war – doch es handelt sich dabei um einen einfachen Sinntest, bevor man darauf für die Dateisystem- und Browserkonfigurationen vertraut.

Nichts davon bestätigt die eigene Version von LM Studio. Die Titelleiste oben im Programm zeigt sie an, und dort sollte 0.4.10 oder eine neuere Version angezeigt werden.

Das obige Screenshot zeigt eine Installation, bei der in der Titelleiste 0.4.23 angegeben wurde – das war die aktuelle Version zu diesem Zeitpunkt.

Öffnen der Konfigurationsdatei

Öffnen Sie den Reiter Integrations in der rechten Seitenleiste von LM Studio, klicken Sie auf Installieren und anschließend auf mcp.json bearbeiten. Dort befindet sich der Editor, in dem jeder Server eine Eintragung erhält.

Konfiguration 1: Dateisystem

Durch diesen Eingang wird das Erkunden des Inhalts einer Dateiordner nicht mehr zu einer mühsamen Kopier- und Einfügeaufgabe, sondern erfordert nur noch eine einzige Anfrage. Der offizielle Dateisystemserver ermöglicht es dem Modell, Verzeichnisse zu lesen, zu schreiben, darin zu suchen und sie aufzulisten – allerdings nur innerhalb der von Ihnen festgelegten Pfade.

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

Ersetzen Sie /Users/you/projects durch den Ordner, den das Modell erkunden soll. Es können weitere Pfade hinzugefügt werden. Alles außerhalb dieser Pfade bleibt für das Modell unsichtbar – genau das ist der Zweck dieser Einschränkung. Zwei Aspekte der Eingabe sind wichtig:

  • command und args bedeuten die Ausführung von npx -y @modelcontextprotocol/server-filesystem gefolgt vom zulässigen Verzeichnis, wobei LM Studio dies als Unterprozess verarbeitet.
  • Der Parameter allowed-directory definiert die vollständigen Grenzen dessen, was das Modell erreichen kann. Ein Projekt, das mehrere Ordner umfasst, kann diese nacheinander aufzählen.

Nach der Speicherung erkennt LM Studio die neue Eingabe. Laden Sie ein Modell, das Toolaufrufe unterstützt (Qwen 3.5 9B eignet sich hierfür), starten Sie ein neues Chat-Gespräch und aktivieren Sie mcp/filesystem in der Seitenleiste.

Ein guter erster Test ist die Anfrage, ein TODO.md-Datei im Projektkatalog zu finden und die verbleibende Arbeit zusammenzufassen. Das Modell ruft automatisch list_directory und read_file auf. Vor jedem Aufruf zeigt LM Studio ein Bestätigungsdialogfeld an, und es ist ratsam, diese stets zu lesen – schließlich sollte ein lokales Modell mit Schreibzugriff auf die Festplatte nicht unbeaufsichtigt laufen.

Konfiguration 2: GitHub

Diese Konfiguration erfordert LM Studio 0.4.10 oder neuer. GitHubs entfernter MCP-Endpunkt verfügt nicht über die dynamische Client-Registrierung, mit der ein Client normalerweise selbst für OAuth registriert werden würde. Infolgedessen muss eine OAuth-Anwendung zunächst manuell erstellt werden. LM Studio weist in dieser Hinsicht keine Besonderheiten auf, da auch VS Code sowie GitHubs Copilot CLI mit derselben Einschränkung konfrontiert sind. Die Einrichtung dauert etwa zwei Minuten:

  1. Gehen Sie zu github.com/settings/developers, wählen Sie OAuth Apps aus und klicken Sie auf New OAuth App.
  2. Geben Sie einen beliebigen Namen sowie eine Homepage-URL ein, da diese hier keine Bedeutung haben. Setzen Sie den Redirect URI exakt auf http://127.0.0.1:33389/mcp-oauth-callback.
  3. Klicken Sie auf Register application und anschließend auf generate a new client secret auf der nächsten Seite. Bewahren Sie die Client ID sowie das Geheimnis an einem sicheren Ort auf, da dieses nur einmal angezeigt wird.

Sobald Sie beide Werte haben, sieht die Konfiguration wie folgt aus:

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

Speichern Sie die Datei, aktivieren Sie den Server und klicken Sie anschließend auf Authenticate, gefolgt von Trust, and Open in Browser. Ein Browserfenster öffnet sich auf GitHubs OAuth-Seite. Sobald mit Authorize <username> am unteren Ende der Seite Zugang gewährt wird, wird das Token genauso gespeichert wie bei jedem anderen OAuth-basierten Server.

Die GitHub-Zustimmungsseite bietet nur die Optionen „Zustimmen“ oder „Verweigern“, ohne Auswahlmöglichkeit für den Zugriffsbereich. Eine genauere Steuerung findet sich stattdessen in LM Studio. Öffnen Sie das Integrations-Panel und suchen Sie die Tools-Liste für den Server mcp/github. Jedes von ihm bereitgestellte Tool wird separat aufgelistet, darunter create_pull_request, delete_file, push_files und merge_pull_request, sowie Dutzende weitere. Jedes Tool verfügt über ein Kontrollkästchen sowie einen Schalter für „Fragen“ oder „Erlauben“.

Diese Liste verdient eine kurze Betrachtung. Deaktivieren Sie alles, was das Modell nicht berühren sollte; delete_file und push_files sind die offensichtlichsten Kandidaten, wenn das Ziel lediglich das Lesen und Zusammenfassen ist.

Auf dem letzten Screenshot dieser Gruppe wurde get_me einmal und search_repositories zweimal gegen einen aktiven GitHub-Server aufgerufen, wobei eine korrekte Filterung nach Erstellungs- und Aktualisierungsdaten erfolgte. Nur-Lese-Tools sowie die eigenen Repositorien des Modells bleiben aktiviert, während zerstörerische Tools wie delete_file und push_files deaktiviert sind.

Config 3: Browsersteuerung

Diese Konfiguration verleiht einem lokalen Modell die Möglichkeit, eine aktive Webseite zu inspizieren, anstatt aus Trainingsdaten zu schließen. Der Playwright MCP-Server startet einen echten Browser und liefert strukturierten Seiteninhalt anstelle von Screenshoten, wodurch selbst ein kleines lokales Modell zuverlässig navigieren und Text extrahieren kann.

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

Zwei Dinge, die man vor dem Einfügen wissen sollte. Der Server öffnet standardmäßig ein sichtbares Browserfenster, das als „Headed Mode“ bezeichnet wird, und die Flagge --headless in der Konfiguration deaktiviert das. Auf einem Gerät mit Anzeige ermöglicht das Entfernen dieser Flagge es, die Klicks des Modells in Echtzeit mitzverfolgen – nützlich, wenn ein Selektor Probleme macht. Auch hier gilt Node 18 oder neuer, genauso wie bei Konfiguration 1, und beim ersten Start kann es vorkommen, dass angeboten wird, Browser-Binärdateien über npx playwright install herunterzuladen, falls diese fehlen.

Ein einfacher Test besteht darin, das Modell zu bitten, die Startseite von Hacker News zu öffnen und die fünf wichtigsten Artikel zusammenzufassen. Dabei wird browser_navigate aufgerufen, anschließend wird der Zugänglichkeitsbaum der Seite nach Titeln und Links durchsucht, wobei im Lauf des Prozesses weder ein Vision-Modell noch eine Screenshot-Analyse zum Einsatz kommt.

Browser-Automatisierung, die absichtlich der Fingerabdruckerkennung widersteht – zum Beispiel für Forschungszwecke oder Arbeiten im Stil von OSINT – ist eine andere Aufgabe. Server, die auf Camoufox basieren wie Camofox-MCP, decken dies ab. Diese Konfiguration stellt die allgemeine Grundlage dar.

Fehlerbehebung

Das sind die wahrscheinlichsten Probleme, grob von am häufigsten bis am seltensten.

Das Modell führt niemals Tool-Aufrufe durch. Die übliche Ursache ist, dass ein Basis- oder Kompletionsmodell geladen wurde, anstelle eines für Anweisungen oder Chat-Szenarien optimierten Modells. Lesen Sie die Modellbeschreibung – falls dort weder Tool-Nutzung noch Funktionsaufrufe erwähnt werden, ersetzen Sie das Modell. Qwen 3.5 9B ist eine gute lokale Wahl für Tool-Aufrufe.

Der Server erscheint nach einer Änderung von mcp.json nicht in der Chat-Seitenleiste. Laden Sie zunächst die Serverliste über die Registerkarte „Programm“ neu, und falls das nicht hilft, starten Sie LM Studio vollständig neu. Dateien, die direkt auf der Festplatte geändert werden und nicht im integrierten Editor, neigen offenbar stärker dazu, einen Neustart zu erfordern.

Corruptes JSON für Toolaufrufe oder erfundene Argumente. Verringern Sie die Sampling-Temperatur, da Toolaufrufe zu den wenigen Aufgaben gehören, bei denen kreative Einstellungen schädlich sind. Stellen Sie außerdem sicher, dass die Kontextlänge mindestens 4096 Token beträgt. Tool-Schemata verbrauchen den Kontext schnell – insbesondere GitHubs umfangreiches Toolset – und ein zu kleiner Kontext ist ein häufiger versteckter Grund für abgebrochene Aufrufe.

Das Endergebnis

Das Ergebnis sind drei Server, keine API-Aufrufe sowie ein lokales Modell, das in der Lage ist, den Dateisystem zu lesen, an einem echten GitHub-Repository zu arbeiten und einen Live-Browser zu steuern – wobei jeder Aufruf in den Bestätigungsdialogen von LM Studio überprüft und genehmigt wird, sodass nichts unüberwacht läuft.

Allein schon das ist ein nützlicher lokaler Agent, der die Grundlage für einen vollständig autonomen Workflow bildet. Der sinnvolle nächste Schritt besteht darin, die drei Server in einen einzigen Agentenkreislauf zu integrieren, anstatt jeden mit separaten Anweisungen zu steuern.

Referenzdokumente

Die LM Studio-Dokumentationen zur Verwendung von MCP-Servern sowie zu MCP-Integrationen mit OAuth definieren die verwendeten Strukturen command, args, url und auth. Das GitHub-MCP-Server-Repo sowie Gibsons Einrichtungsdokumentation behandeln Config 2, der offizielle modelcontextprotocol-Dateisystemserver umfasst Config 1, und das microsoft/playwright-mcp-Repo dokumentiert das standardmäßig aktivierte Verhalten sowie Flags für Config 3.

Weitere Literatur

  • [Praktische Hinweise: MCP-Server – Von KI-Chats zu produktionsreifen Aktionen Artikel – Detaillierte Anleitung zu den praktischen Hinweisen: MCP-Server – Von KI-Chats zu produktionsreifen Aktionen [Artikel: Verträge, Überprüfungen sowie Code-Blöcke für Teams, die dieses Muster einsetzen.]