MCPcopy Create free account
hub / github.com/Microck/opencode-studio / parseInput

Function parseInput

client-next/src/components/add-mcp-dialog.tsx:29–117  ·  view source on GitHub ↗
(input: string)

Source from the content-addressed store, hash-verified

27}
28
29function parseInput(input: string): { name: string; config: MCPConfig } | null {
30 const trimmed = input.trim();
31 if (!trimmed) return null;
32
33 if (trimmed.startsWith("{")) {
34 try {
35 const parsed = JSON.parse(trimmed);
36
37 if (parsed.mcpServers && typeof parsed.mcpServers === "object") {
38 const serverNames = Object.keys(parsed.mcpServers);
39 if (serverNames.length > 0) {
40 const serverName = serverNames[0];
41 const serverConfig = parsed.mcpServers[serverName];
42 const command = normalizeCommand(serverConfig.command);
43 if (serverConfig.args && Array.isArray(serverConfig.args)) {
44 command.push(...serverConfig.args);
45 }
46 return {
47 name: serverName,
48 config: {
49 command,
50 enabled: serverConfig.enabled ?? true,
51 type: serverConfig.type || "local",
52 ...((serverConfig.env || serverConfig.environment) && {
53 environment: serverConfig.env || serverConfig.environment
54 }),
55 ...(serverConfig.url && { url: serverConfig.url }),
56 ...(serverConfig.timeout && { timeout: serverConfig.timeout }),
57 ...(serverConfig.oauth && { oauth: serverConfig.oauth }),
58 },
59 };
60 }
61 }
62
63 if (parsed.command !== undefined || parsed.url !== undefined) {
64 const command = normalizeCommand(parsed.command);
65 if (parsed.args && Array.isArray(parsed.args)) {
66 command.push(...parsed.args);
67 }
68 return {
69 name: "mcp-server",
70 config: {
71 command,
72 enabled: parsed.enabled ?? true,
73 type: parsed.type || "local",
74 ...((parsed.env || parsed.environment) && {
75 environment: parsed.env || parsed.environment
76 }),
77 ...(parsed.url && { url: parsed.url }),
78 ...(parsed.timeout && { timeout: parsed.timeout }),
79 ...(parsed.oauth && { oauth: parsed.oauth }),
80 },
81 };
82 }
83 } catch {}
84 }
85
86 const parts = trimmed.split(/\s+/);

Callers 1

AddMCPDialogFunction · 0.85

Calls 1

normalizeCommandFunction · 0.85

Tested by

no test coverage detected