diff --git a/documentation/src/utils/install-links.ts b/documentation/src/utils/install-links.ts index e5b27dadf61..156fee79f6f 100644 --- a/documentation/src/utils/install-links.ts +++ b/documentation/src/utils/install-links.ts @@ -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}`; } \ No newline at end of file diff --git a/documentation/src/utils/install-links.tsx b/documentation/src/utils/install-links.tsx deleted file mode 100644 index 156fee79f6f..00000000000 --- a/documentation/src/utils/install-links.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import type { MCPServer } from "../types/server"; - -export function getGooseInstallLink(server: MCPServer): string { - 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}`; -} \ No newline at end of file