Skip to content

feat(agent): implement mcp server of multi-tab participant meeting for topic-based discussions #550

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jun 21, 2025
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
9 changes: 8 additions & 1 deletion src/main/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ export const CONVERSATION_EVENTS = {

ACTIVATED: 'conversation:activated', // 替代 conversation-activated
DEACTIVATED: 'conversation:deactivated', // 替代 active-conversation-cleared
MESSAGE_EDITED: 'conversation:message-edited' // 替代 message-edited
MESSAGE_EDITED: 'conversation:message-edited', // 替代 message-edited

MESSAGE_GENERATED: 'conversation:message-generated' // 主进程内部事件,一条完整的消息已生成
}

// 通信相关事件
Expand Down Expand Up @@ -157,3 +159,8 @@ export const TRAY_EVENTS = {
SHOW_HIDDEN_WINDOW: 'tray:show-hidden-window', // 从托盘显示/隐藏窗口
CHECK_FOR_UPDATES: 'tray:check-for-updates' // 托盘检查更新
}

// MCP会议专用事件
export const MEETING_EVENTS = {
INSTRUCTION: 'mcp:meeting-instruction', // 主进程向渲染进程发送指令
}
10 changes: 10 additions & 0 deletions src/main/presenter/configPresenter/mcpConfHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,16 @@ const DEFAULT_INMEMORY_SERVERS: Record<string, MCPServerConfig> = {
command: 'deepchat-inmemory/conversation-search-server',
env: {},
disable: false
},
'deepchat-inmemory/meeting-server': {
args: [],
descriptions: 'DeepChat内置会议服务,用于组织多Agent讨论',
icons: '👥',
autoApprove: ['all'],
type: 'inmemory' as MCPServerType,
command: 'deepchat-inmemory/meeting-server',
env: {},
disable: false
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/presenter/configPresenter/modelDefaultSettings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ export const defaultModelsSettings: DefaultModelSetting[] = [
id: 'deepseek-chat',
name: 'DeepSeek chat',
temperature: 1,
maxTokens: 16000,
maxTokens: 8192,
contextLength: 65536,
match: ['deepseek-chat'],
vision: false,
Expand Down
3 changes: 3 additions & 0 deletions src/main/presenter/mcpPresenter/inMemoryServers/builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { CustomPromptsServer } from './customPromptsServer'
import { DeepResearchServer } from './deepResearchServer'
import { AutoPromptingServer } from './autoPromptingServer'
import { ConversationSearchServer } from './conversationSearchServer'
import { MeetingServer } from './meetingServer'

export function getInMemoryServer(
serverName: string,
Expand Down Expand Up @@ -76,6 +77,8 @@ export function getInMemoryServer(
return new AutoPromptingServer()
case 'deepchat-inmemory/conversation-search-server':
return new ConversationSearchServer()
case 'deepchat-inmemory/meeting-server':
return new MeetingServer()
default:
throw new Error(`Unknown in-memory server: ${serverName}`)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { zodToJsonSchema } from 'zod-to-json-schema'
import { Transport } from '@modelcontextprotocol/sdk/shared/transport'
import { presenter } from '@/presenter' // 导入全局的 presenter 对象
import { eventBus } from '@/eventbus' // 引入 eventBus
import { TAB_EVENTS } from '@/events' // 引入 TAB_EVENTS
import { TAB_EVENTS } from '@/events'

// Schema definitions
const SearchConversationsArgsSchema = z.object({
Expand Down Expand Up @@ -659,4 +659,4 @@ export class ConversationSearchServer {
}
})
}
}
}
Loading