ConnectServer 连接指定的 MCP Server 并注册工具
(ctx context.Context, serverID string)
| 47 | |
| 48 | // ConnectServer 连接指定的 MCP Server 并注册工具 |
| 49 | func (m *MCPManager) ConnectServer(ctx context.Context, serverID string) error { |
| 50 | m.mu.RLock() |
| 51 | server, exists := m.servers[serverID] |
| 52 | m.mu.RUnlock() |
| 53 | |
| 54 | if !exists { |
| 55 | return fmt.Errorf("server not found: %s", serverID) |
| 56 | } |
| 57 | |
| 58 | // 连接并发现工具 |
| 59 | if err := server.Connect(ctx); err != nil { |
| 60 | return fmt.Errorf("connect to server: %w", err) |
| 61 | } |
| 62 | |
| 63 | // 注册工具到 Registry |
| 64 | if err := server.RegisterTools(); err != nil { |
| 65 | return fmt.Errorf("register tools: %w", err) |
| 66 | } |
| 67 | |
| 68 | return nil |
| 69 | } |
| 70 | |
| 71 | // ConnectAll 连接所有已添加的 MCP Server |
| 72 | func (m *MCPManager) ConnectAll(ctx context.Context) error { |