Skip to content

Commit 8a4fa42

Browse files
committed
Working
1 parent 8aa0256 commit 8a4fa42

2 files changed

Lines changed: 38 additions & 3 deletions

File tree

src/services/mcp/McpHub.ts

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
2+
import { PEARAI_URL } from "../../shared/api"
23
import { StdioClientTransport, StdioServerParameters } from "@modelcontextprotocol/sdk/client/stdio.js"
34
import {
45
CallToolResultSchema,
@@ -98,7 +99,7 @@ export class McpHub {
9899
mcpSettingsFilePath,
99100
`{
100101
"mcpServers": {
101-
102+
102103
}
103104
}`,
104105
)
@@ -136,12 +137,46 @@ export class McpHub {
136137
)
137138
}
138139

140+
private async fetchDefaultSettings(): Promise<Record<string, any>> {
141+
try {
142+
const response = await fetch(`${PEARAI_URL}/getDefaultAgentMCPSettings`)
143+
if (!response.ok) {
144+
throw new Error(`HTTP error! status: ${response.status}`)
145+
}
146+
const data = await response.json()
147+
if (data && data.mcpServers) {
148+
return data.mcpServers
149+
}
150+
return {}
151+
} catch (error) {
152+
console.error("Failed to fetch default MCP settings:", error)
153+
return {}
154+
}
155+
}
156+
139157
private async initializeMcpServers(): Promise<void> {
140158
try {
141159
const settingsPath = await this.getMcpSettingsFilePath()
142160
const content = await fs.readFile(settingsPath, "utf-8")
143161
const config = JSON.parse(content)
144-
await this.updateServerConnections(config.mcpServers || {})
162+
163+
// Fetch default settings
164+
const defaultSettings = await this.fetchDefaultSettings()
165+
166+
console.dir(defaultSettings)
167+
168+
// Only add new servers from default settings that don't exist in current settings
169+
const mergedServers = { ...(config.mcpServers || {}) }
170+
for (const [serverName, serverConfig] of Object.entries(defaultSettings)) {
171+
if (!mergedServers[serverName]) {
172+
mergedServers[serverName] = serverConfig
173+
}
174+
}
175+
176+
// Update the settings file with merged settings
177+
await fs.writeFile(settingsPath, JSON.stringify({ mcpServers: mergedServers }, null, 2))
178+
179+
await this.updateServerConnections(mergedServers)
145180
} catch (error) {
146181
console.error("Failed to initialize MCP servers:", error)
147182
}

src/shared/globalFileNames.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ export const GlobalFileNames = {
44
glamaModels: "glama_models.json",
55
openRouterModels: "openrouter_models.json",
66
requestyModels: "requesty_models.json",
7-
mcpSettings: "cline_mcp_settings.json",
7+
mcpSettings: "pearai_agent_mcp_settings.json",
88
unboundModels: "unbound_models.json",
99
}

0 commit comments

Comments
 (0)