Skip to content
Merged
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
14 changes: 14 additions & 0 deletions src/main/mcp/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,20 @@ const DEFAULT_MCP_SERVERS = {
disable: false,
type: 'http' as MCPServerType,
baseUrl: 'https://api.you.com/mcp?profile=free'
},
'serply-search': {
command: '',
args: [],
env: {},
descriptions:
'Serply web search MCP (Google, Bing, News, Scholar, Jobs, Maps, Videos, Amazon Shopping, and page scraping). Requires an API key from https://serply.io, set in the X-Api-Key header. Tool reference: https://serply.io/docs.',
icons: '🔍',
disable: false,
type: 'http' as MCPServerType,
baseUrl: 'https://api.serply.io/mcp',
customHeaders: {
'X-Api-Key': 'YOUR_SERPLY_API_KEY'
}
}
} satisfies Record<string, Omit<MCPServerConfig, 'enabled'>>,
mcpEnabled: false // MCP functionality is disabled by default
Expand Down
19 changes: 19 additions & 0 deletions test/main/mcp/settings.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,25 @@ describe('McpSettings', () => {
})
})

it('adds the disabled Serply search MCP server with a key placeholder for existing users', async () => {
const { McpSettings } = await loadHelper('darwin')
const helper = new McpSettings()
const mcpStore = (helper as any).mcpStore

mcpStore.set('mcpServers', {})

const servers = await helper.getMcpServers()

expect(servers['serply-search']).toMatchObject({
type: 'http',
baseUrl: 'https://api.serply.io/mcp',
customHeaders: {
'X-Api-Key': 'YOUR_SERPLY_API_KEY'
},
enabled: false
})
})

it('does not recreate the Apple built-in server after the user removed it', async () => {
const { McpSettings } = await loadHelper('darwin')
const helper = new McpSettings()
Expand Down