Kurz gesagt: OpenCode LSP verbindet den Coding-Agent mit Sprachservern, die ein Projekt verstehen. Dadurch kann eine Sitzung Diagnosen, Definitionen, Referenzen und Symbole nutzen. LSP ist kein MCP und ersetzt weder Formatter noch Tests. Beginne mit dem offiziellen Schema, ordne Dateiendungen dem richtigen Server zu und teste mit einer risikoarmen Aufgabe.
Die Suche was ist LSP in OpenCode meint meist mehr als die Abkürzung: Was ändert sich im Agent-Workflow, warum fehlen Diagnosen, wo liegt die Konfiguration und wie wird ein deaktivierter Server repariert? Diese Anleitung beantwortet die Fragen zusammen und hält Installation, Provider und MCP getrennt.
Die offizielle OpenCode-LSP-Seite wurde am 10.08.2026 geprüft. Sie heißt LSP Servers und beschreibt die Integration von LSP-Servern. Dokumentiert werden das lsp-Objekt, Command- und Extension-Felder, Initialisierung, globale Deaktivierung, einzelne deaktivierte Server und eigene Server. Konkrete Befehle müssen mit der Dokumentation des jeweiligen Servers übereinstimmen.

Was ist LSP in OpenCode? Eine Sprachebene für Kontext
LSP steht für Language Server Protocol. Ein Sprachserver läuft neben dem Projekt und liefert Diagnosen, Symbole, Definitionen, Referenzen und Hover-Informationen. OpenCode kann diese Daten in der Sitzung nutzen, statt jede Datei als isolierten Text zu behandeln.
Der praktische Nutzen ist besserer Kontext. Versteht ein TypeScript-Server einen Import, hat der Agent beim Erklären eines Typfehlers oder beim Umbenennen mehr Belege. Trotzdem garantiert LSP keine richtige Antwort: Der Server kann fehlen, das Projekt kann nicht laden oder das Paket benötigt eigene Einstellungen. LSP ergänzt den Workflow, ersetzt aber keine Tests oder Diff-Prüfung.
Das passende Modell
Sieh OpenCode als Verbraucher, den LSP-Server als Sprachspezialisten und das Repository als gemeinsame Quelle der Wahrheit. Prüfe zuerst die fehlerhafte Ebene, bevor du Berechtigungen oder das Modell änderst.
| Ebene | Liefert | Ersetzt nicht |
|---|---|---|
| LSP | Diagnosen, Symbole, Definitionen und Referenzen | Tests, Formatter oder Review |
| MCP | Externe Tools und Daten | Den Sprachserver |
| Formatter | Stil und Formatierung | Semantische Diagnosen |
| Provider/Modell | Reasoning und Generierung | Die Projekt-Toolchain |
Wie OpenCode den passenden LSP-Server findet
Ein LSP-Eintrag braucht ein ausführbares Kommando und eine klare Zuordnung zu Dateiendungen. Das Kommando startet den Server, die Extension-Liste beschreibt die betroffenen Dateien. Ausführbare Datei, Argumente und Installation kommen aus der Server-Dokumentation; errate kein Paket.
Beginne mit einer Sprache in einem kleinen Repository. Öffne eine passende Datei, prüfe den Prozessstart und stelle dann eine reine Leseanfrage. Bei einer falschen Endung kann ein funktionierender Server defekt wirken, weil OpenCode ihn nicht an die Datei bindet.

| Prüfung | Beleg | Erster Check |
|---|---|---|
| Kommando | Programm startet mit den Argumenten | PATH, Runtime, Paket und stderr |
| Endung | Datei passt zum Eintrag | Dokumentierte Erweiterungen |
| Workspace | Richtiges Projekt wird geöffnet | Git-Root und Projektkonfiguration |
| Ergebnis | Diagnosen oder Symbole kommen zurück | Server-Logs und Konfiguration |
Eine minimale lsp-Konfiguration hinzufügen
Gemeinsame LSP-Entscheidungen gehören in eine geprüfte Projektkonfiguration. Persönliche Experimente bleiben zunächst global, bis Kommando, Endungen und Projekt-Root klar sind. Die JSONC-Anleitung behandelt Scope und Schema; diese Seite bleibt beim Sprachserver.
Ein kleiner Eintrag ist leichter zu debuggen als ein großes Verzeichnis. Nutze einen verständlichen Namen, ein explizites Kommando-Array und nur unterstützte Endungen. Initialisierung kommt erst nach einem funktionierenden Basisprozess. Valides JSON bedeutet nicht, dass Programm oder Workspace stimmen.
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"typescript": {
"command": ["typescript-language-server", "--stdio"],
"extensions": [".ts", ".tsx"]
}
}
}Schema-förmiges Beispiel; prüfe Kommando und Endungen in der offiziellen Serverquelle.
LSP-Server aktivieren, deaktivieren oder anpassen
Die aktuelle offizielle Dokumentation sagt: Fehlt lsp, sind alle LSP-Server deaktiviert. Nach einer aktivierenden Konfiguration kannst du mit lsp: false alle Server abschalten; für einen einzelnen Server gilt disabled: true. Das hilft bei langsamen, lauten oder inkompatiblen Servern.
Eigene Server decken weitere Sprachen und Endungen ab. Definiere zuerst Kommando und Endungen, ergänze Initialisierung nur laut Dokumentation und ändere pro Test genau eine Sache. Bewahre die letzte funktionierende Konfiguration für den Rollback auf.
{
"$schema": "https://opencode.ai/config.json",
"lsp": false
}
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"custom-lsp": {
"command": ["custom-lsp-server", "--stdio"],
"extensions": [".custom"],
"initialization": { "preferences": { "mode": "strict" } }
}
}
}Das eigene Kommando ist ein Platzhalter. Ersetze es durch den offiziellen Wert und speichere keine Secrets in Git.
OpenCode LSP mit einem risikoarmen Test prüfen
Beginne nicht mit dem Umschreiben eines großen Moduls. Nutze ein sauberes Repository, öffne eine bekannte Datei und stelle eine Leseanfrage: Symbol, Definition oder Diagnose. Vergleiche das Ergebnis mit Editor, Compiler oder dem vertrauenswürdigen Server.
Wenn das funktioniert, ändere eine kleine Stelle, die leicht zurückzunehmen ist, und prüfe den Diff. Notiere System, Kommando, Endungen, Root und Prompt. Damit wird der Test reproduzierbar und die nächste Störung leichter zuzuordnen.
- SauberMit bekanntem Branch und Arbeitsbaum starten.
- ZuordnenDatei mit konfigurierter Endung öffnen.
- LesenSymbol, Definition, Referenz oder Diagnose anfragen.
- ÄndernKleine reversible Änderung machen und Diff prüfen.
- NotierenKommando, Modell, Server und Rollback speichern.
opencode lsps are disabled und fehlende Diagnosen beheben
Wenn OpenCode meldet, dass LSP deaktiviert ist, prüfe zuerst die Konfigurationspriorität. Eine andere Datei kann lsp: false setzen, das Projekt kann den Servernamen nicht enthalten oder ein Eintrag kann disabled aktivieren. Vergleiche Projektordner und tatsächlich gewinnende Konfiguration.
Ist der Server aktiv, fehlen aber Diagnosen, prüfe Kommando und Endung. Starte ihn möglichst in derselben Shell, kontrolliere Runtime und PATH und kläre Lockfile, Compilerkonfiguration und Workspace-Root. Ein langsames erstes Ergebnis kann vom Indexieren stammen.
Halte Berechtigungen eng. LSP benötigt Prozess und Projektkontext, aber nicht automatisch eine breite Shell, mehr MCP-Tools oder Auto-Approval. Nutze die Berechtigungs- und MCP-Anleitung, sobald das Problem die Ebene wechselt.

| Symptom | Wahrscheinliche Ebene | Erster Fix |
|---|---|---|
| Alle LSP deaktiviert | Priorität oder lsp: false | Gewinnende Konfiguration finden |
| Ein Server deaktiviert | Server-Flag | Name und disabled prüfen |
| Keine Diagnosen | Endung oder Prozess | Endung abgleichen und Kommando starten |
| Erstes Ergebnis langsam | Index oder Workspace | Kleines Repo und Logs testen |
| Nur im Editor erfolgreich | Andere Root oder Config | Editor-, Git- und OpenCode-Root vergleichen |
LSP, MCP, Formatter und VS Code sind verschiedene Ebenen
LSP liefert Sprachintelligenz im Repository. MCP verbindet externe Tools und Daten. Formatter ändern Stil und Tests liefern ausführbare Belege. VS Code kann eigene Diagnosen anzeigen; das beweist nicht, dass OpenCode denselben Server oder dieselbe Root nutzt.
Verlinke je nach Symptom die passende Anleitung: MCP für lokale und entfernte Tool-Server, VS Code für Editor- und Terminalkontext, Permissions für Freigaben. So bleibt LSP in OpenCode eine fokussierte Seite.
opencode.jsonc-Konfiguration:Scope und Schema prüfen.
OpenCode in VS Code:Editor- und Terminalpfad vergleichen.
OpenCode-Berechtigungen:Rechte eng halten.
OpenCode MCP:Externe Tools von LSP trennen.
Häufige Fragen zu OpenCode LSP
Was ist LSP in OpenCode?
Die Language-Server-Protocol-Schicht liefert Diagnosen, Symbole, Definitionen und Referenzen aus einem Sprachserver.
Wie aktiviere ich LSP in OpenCode?
Füge unter lsp Kommando und unterstützte Endungen hinzu und prüfe Kommando und Root mit einer Leseanfrage.
Warum sind OpenCode-LSPs deaktiviert?
Laut aktueller Dokumentation deaktiviert ein fehlendes lsp alle Server. Zusätzlich können lsp: false oder disabled: true wirken. Prüfe die Priorität.
Ersetzt LSP MCP?
Nein. LSP liefert Sprachwissen, MCP verbindet externe Tools und Daten. Konfiguration und Berechtigungen haben andere Grenzen.
Kann ich einen eigenen LSP-Server hinzufügen?
Ja. Definiere Kommando und Endungen unter lsp, ergänze dokumentierte Initialisierung und teste in einem kleinen Repository.
Warum funktioniert LSP in VS Code, aber nicht in OpenCode?
Root, Kommando, Endungen, Runtime oder Konfigurationsdatei können abweichen. Vergleiche diese Eingaben.
Geprüfte offizielle Quellen
OpenCode-LSP-Referenzen
Die offizielle LSP-Seite wurde am 10.08.2026 geprüft; Kommandos, Endungen und Felder können sich ändern.