Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions cmd/thv/app/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ Valid clients:
- claude-code: Claude Code CLI
- cline: Cline extension for VS Code
- cursor: Cursor editor
- lm-studio: LM Studio application
- roo-code: Roo Code extension for VS Code
- vscode: Visual Studio Code
- vscode-insider: Visual Studio Code Insiders edition
Expand All @@ -77,6 +78,7 @@ Valid clients:
- claude-code: Claude Code CLI
- cline: Cline extension for VS Code
- cursor: Cursor editor
- lm-studio: LM Studio application
- roo-code: Roo Code extension for VS Code
- vscode: Visual Studio Code
- vscode-insider: Visual Studio Code Insiders edition
Expand Down Expand Up @@ -183,12 +185,12 @@ func clientRegisterCmdFunc(cmd *cobra.Command, args []string) error {
// Validate the client type
switch clientType {
case "roo-code", "cline", "cursor", "claude-code", "vscode-insider", "vscode", "windsurf", "windsurf-jetbrains",
"amp-cli", "amp-vscode", "amp-vscode-insider", "amp-cursor", "amp-windsurf":
"amp-cli", "amp-vscode", "amp-vscode-insider", "amp-cursor", "amp-windsurf", "lm-studio":
// Valid client type
default:
return fmt.Errorf(
"invalid client type: %s (valid types: roo-code, cline, cursor, claude-code, vscode, vscode-insider, "+
"windsurf, windsurf-jetbrains, amp-cli, amp-vscode, amp-vscode-insider, amp-cursor, amp-windsurf)",
"windsurf, windsurf-jetbrains, amp-cli, amp-vscode, amp-vscode-insider, amp-cursor, amp-windsurf, lm-studio)",
clientType)
}

Expand All @@ -201,12 +203,12 @@ func clientRemoveCmdFunc(cmd *cobra.Command, args []string) error {
// Validate the client type
switch clientType {
case "roo-code", "cline", "cursor", "claude-code", "vscode-insider", "vscode", "windsurf", "windsurf-jetbrains",
"amp-cli", "amp-vscode", "amp-vscode-insider", "amp-cursor", "amp-windsurf":
"amp-cli", "amp-vscode", "amp-vscode-insider", "amp-cursor", "amp-windsurf", "lm-studio":
// Valid client type
default:
return fmt.Errorf(
"invalid client type: %s (valid types: roo-code, cline, cursor, claude-code, vscode, vscode-insider, "+
"windsurf, windsurf-jetbrains, amp-cli, amp-vscode, amp-vscode-insider, amp-cursor, amp-windsurf)",
"windsurf, windsurf-jetbrains, amp-cli, amp-vscode, amp-vscode-insider, amp-cursor, amp-windsurf, lm-studio)",
clientType)
}

Expand Down
17 changes: 17 additions & 0 deletions pkg/client/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ const (
AmpVSCodeInsider MCPClient = "amp-vscode-insider"
// AmpWindsurf represents the Sourcegraph Amp extension for Windsurf.
AmpWindsurf MCPClient = "amp-windsurf"
// LMStudio represents the LM Studio application.
LMStudio MCPClient = "lm-studio"
)

// Extension is extension of the client config file.
Expand Down Expand Up @@ -325,6 +327,21 @@ var supportedClientIntegrations = []mcpClientConfig{
},
IsTransportTypeFieldSupported: true,
},
{
ClientType: LMStudio,
Description: "LM Studio application",
SettingsFile: "mcp.json",
MCPServersPathPrefix: "/mcpServers",
RelPath: []string{".lmstudio"},
Extension: JSON,
SupportedTransportTypesMap: map[types.TransportType]string{
types.TransportTypeStdio: "sse",
types.TransportTypeSSE: "sse",
types.TransportTypeStreamableHTTP: "http",
},
IsTransportTypeFieldSupported: true,
MCPServersUrlLabel: "url",
},
}

// ConfigFile represents a client configuration file
Expand Down
Loading