npx claudepluginhub strubio-ray/claude-lsps --plugin pyrightGDScript language server for Godot Engine
LSP plugins for Claude Code.
| Plugin | LSP Server | Description |
|---|---|---|
ansible-language-server | node lib/lsp-proxy.js | Ansible language server (with LSP method compatibility proxy) |
bash-language-server | bash-language-server start | Bash/Shell language server |
cue-lsp | cue lsp serve | CUE language server (built into CUE CLI) |
pyright | pyright-langserver --stdio | Python type checker and language server |
regal-lsp | regal language-server | Rego linter and language server |
vtsls | vtsls --stdio | TypeScript/JavaScript language server |
Add this marketplace to your Claude Code plugins configuration, then install individual plugins.
Each plugin includes a SessionStart hook that automatically installs the LSP binary if it is not already available. Most plugins install via Homebrew. Concurrent installs are serialized with flock to prevent lock conflicts.
Pyright auto-discovers a .venv in the project root, but projects that install dependencies via uv run --with (ephemeral injection) or uv tool won't have them visible to Pyright by default. To fix reportMissingImports errors, add a pyrightconfig.json at the project root pointing to your venv:
{
"venvPath": ".",
"venv": ".venv"
}
If you don't have a .venv yet, create one with the dependencies your scripts need:
uv venv
uv pip install ruamel.yaml # or whatever your scripts import
If your Rego policy files live in a subdirectory (e.g., policy/) rather than at the project root, the Regal language server needs a project.roots entry in .regal/config.yaml to resolve cross-file imports (like import data.zone_isolation in test files). Without this, the LSP reports false unresolved-import and opa-fmt errors because it can't find sibling packages.
# .regal/config.yaml
project:
roots:
- policy # path to your Rego files, relative to project root
regal lint policy/ (CLI, whole-directory) works without this because it scans all files together. The LSP processes files individually, so it needs project.roots to know where to look for other packages.
The ansible-language-server plugin uses an LSP proxy (lsp-proxy.js) that intercepts requests for unsupported methods. This prevents Claude Code's LSP client from entering a broken state when a server returns a JSON-RPC -32601 error. The plugin defines its blocked methods in a proxy.json file. The proxy is launched directly via node using ${CLAUDE_PLUGIN_ROOT} path expansion in .lsp.json — no generated wrappers or PATH dependencies required.
MIT
Perl language support via PerlNavigator LSP
YAML language server
Rust language server
Bash language server
Zig language server plugin for Claude Code with ZLS integration and automated hooks for formatting and building