mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-18 14:44:21 +01:00
fix: correct deep link install link format (#1830)
This commit is contained in:
@@ -1,5 +1,30 @@
|
||||
import type { MCPServer } from "../types/server";
|
||||
|
||||
export function getGooseInstallLink(server: MCPServer): string {
|
||||
return `goose://install/${encodeURIComponent(server.command)}`;
|
||||
if (server.is_builtin) {
|
||||
const queryParams = [
|
||||
'cmd=goosed',
|
||||
'arg=mcp',
|
||||
`arg=${encodeURIComponent(server.id)}`,
|
||||
`description=${encodeURIComponent(server.id)}`
|
||||
].join('&');
|
||||
return `goose://extension?${queryParams}`;
|
||||
}
|
||||
const parts = server.command.split(" ");
|
||||
const baseCmd = parts[0]; // npx or uvx
|
||||
const args = parts.slice(1); // remaining arguments
|
||||
const queryParams = [
|
||||
`cmd=${encodeURIComponent(baseCmd)}`,
|
||||
...args.map((arg) => `arg=${encodeURIComponent(arg)}`),
|
||||
`id=${encodeURIComponent(server.id)}`,
|
||||
`name=${encodeURIComponent(server.name)}`,
|
||||
`description=${encodeURIComponent(server.description)}`,
|
||||
...server.environmentVariables
|
||||
.filter((env) => env.required)
|
||||
.map(
|
||||
(env) => `env=${encodeURIComponent(`${env.name}=${env.description}`)}`
|
||||
),
|
||||
].join("&");
|
||||
|
||||
return `goose://extension?${queryParams}`;
|
||||
}
|
||||
Reference in New Issue
Block a user