The plugins/dotnet/lsp.json doesn't get picked up by Claude Code — the LSP tool reports "No LSP server available for file type: .cs".
The current lsp.json format probably targets Copilot CLI or another coding agent. Claude Code expects a different structure:
- file name should be
.lsp.json, not lsp.json
extensionToLanguage instead of fileExtensions
- server definitions directly in the root object, without the
lspServers wrapper
- possibly other differences
Suggested fix: This probably can be fixed without touching plugins/dotnet/lsp.json. Instead, define lspServers inline in .claude-plugin/marketplace.json, similar to how claude-plugins-official does it for csharp-lsp and other LSP plugins.
For example, add lspServers to the existing dotnet entry:
{
"name": "dotnet",
"source": "./plugins/dotnet",
"description": "Collection of core .NET skills for handling common .NET coding tasks.",
"lspServers": {
"csharp": {
"command": "dotnet",
"args": [
"dnx",
"roslyn-language-server",
"--yes",
"--prerelease",
"--",
"--stdio",
"--autoLoadProjects"
],
"extensionToLanguage": {
".cs": "csharp"
}
}
}
}
Even better, extract the Roslyn LSP into a separate plugin entry (like roslyn-language-server) so users can install it independently from the dotnet skills.
The
plugins/dotnet/lsp.jsondoesn't get picked up by Claude Code — the LSP tool reports "No LSP server available for file type: .cs".The current
lsp.jsonformat probably targets Copilot CLI or another coding agent. Claude Code expects a different structure:.lsp.json, notlsp.jsonextensionToLanguageinstead offileExtensionslspServerswrapperSuggested fix: This probably can be fixed without touching
plugins/dotnet/lsp.json. Instead, definelspServersinline in.claude-plugin/marketplace.json, similar to how claude-plugins-official does it forcsharp-lspand other LSP plugins.For example, add
lspServersto the existingdotnetentry:{ "name": "dotnet", "source": "./plugins/dotnet", "description": "Collection of core .NET skills for handling common .NET coding tasks.", "lspServers": { "csharp": { "command": "dotnet", "args": [ "dnx", "roslyn-language-server", "--yes", "--prerelease", "--", "--stdio", "--autoLoadProjects" ], "extensionToLanguage": { ".cs": "csharp" } } } }Even better, extract the Roslyn LSP into a separate plugin entry (like
roslyn-language-server) so users can install it independently from thedotnetskills.