mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-29 14:31:35 +08:00
* refactor(types): 将内置MCPServer类型从MCPServer分离并添加类型守卫 将内置MCPServer相关逻辑从通用MCPServer类型中分离,新增BuiltinMCPServer类型和类型守卫函数 * refactor(MCPService): 使用isBuiltinMCPServer检查内置服务器类型 修改传输层创建逻辑,通过isBuiltinMCPServer函数判断是否为内置服务器,并排除特定服务器 * refactor(types): 统一内置MCP服务器名称的键值格式并优化类型定义 将BuiltinMCPServers对象的键改为与值相同的格式,使结构更一致 同时简化BuiltinMCPServerName类型定义和isBuiltinMCPServerName检查逻辑 * refactor(types): 为内置MCP服务器名称添加类型定义 为`MCP_AUTO_INSTALL_SERVER_NAME`和`builtInMcpDescriptionKeyMap`添加`BuiltinMCPServerName`类型定义,提高类型安全性 * refactor(types): 重命名BuiltinMCPServers为BuiltinMCPServerNames以更准确描述用途 * style: 移除 TabContainer 组件中的多余空行 * refactor(mcpServers): 使用类型化的BuiltinMCPServerName替换字符串参数 将createInMemoryMCPServer函数的name参数从string类型改为BuiltinMCPServerName类型,提高类型安全性 * refactor(types): 重构内置MCPServer名称常量及类型定义 将BuiltinMCPServerNames的键名改为驼峰命名,并添加BuiltinMCPServerNamesArray常量 修改isBuiltinMCPServerName函数使用数组进行判断 * refactor(mcp): 使用枚举替换硬编码的服务器名称字符串
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { loggerService } from '@logger'
|
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js'
|
|
import { BuiltinMCPServerName, BuiltinMCPServerNames } from '@types'
|
|
|
|
import BraveSearchServer from './brave-search'
|
|
import DifyKnowledgeServer from './dify-knowledge'
|
|
import FetchServer from './fetch'
|
|
import FileSystemServer from './filesystem'
|
|
import MemoryServer from './memory'
|
|
import PythonServer from './python'
|
|
import ThinkingServer from './sequentialthinking'
|
|
|
|
const logger = loggerService.withContext('MCPFactory')
|
|
|
|
export function createInMemoryMCPServer(
|
|
name: BuiltinMCPServerName,
|
|
args: string[] = [],
|
|
envs: Record<string, string> = {}
|
|
): Server {
|
|
logger.debug(`[MCP] Creating in-memory MCP server: ${name} with args: ${args} and envs: ${JSON.stringify(envs)}`)
|
|
switch (name) {
|
|
case BuiltinMCPServerNames.memory: {
|
|
const envPath = envs.MEMORY_FILE_PATH
|
|
return new MemoryServer(envPath).server
|
|
}
|
|
case BuiltinMCPServerNames.sequentialThinking: {
|
|
return new ThinkingServer().server
|
|
}
|
|
case BuiltinMCPServerNames.braveSearch: {
|
|
return new BraveSearchServer(envs.BRAVE_API_KEY).server
|
|
}
|
|
case BuiltinMCPServerNames.fetch: {
|
|
return new FetchServer().server
|
|
}
|
|
case BuiltinMCPServerNames.filesystem: {
|
|
return new FileSystemServer(args).server
|
|
}
|
|
case BuiltinMCPServerNames.difyKnowledge: {
|
|
const difyKey = envs.DIFY_KEY
|
|
return new DifyKnowledgeServer(difyKey, args).server
|
|
}
|
|
case BuiltinMCPServerNames.python: {
|
|
return new PythonServer().server
|
|
}
|
|
default:
|
|
throw new Error(`Unknown in-memory MCP server: ${name}`)
|
|
}
|
|
}
|