(&self, server_name: &str)
| 391 | } |
| 392 | |
| 393 | pub async fn authenticate(&self, server_name: &str) -> Result<McpServerInfo, McpOAuthError> { |
| 394 | let managed = self.managed_server(server_name).await?; |
| 395 | if !managed.config.oauth_required() { |
| 396 | return Err(McpOAuthError::OAuthNotSupported(server_name.to_string())); |
| 397 | } |
| 398 | |
| 399 | let current = self.oauth_status_for(server_name).await; |
| 400 | if current == Some(McpOAuthStatus::Authorized) { |
| 401 | self.log_event(server_name, "info", "OAuth already authorized") |
| 402 | .await; |
| 403 | return self.connect(server_name).await; |
| 404 | } |
| 405 | |
| 406 | self.start_oauth(server_name).await?; |
| 407 | self.connect(server_name).await |
| 408 | } |
| 409 | |
| 410 | pub async fn get_server(&self, server_name: &str) -> Option<McpServerInfo> { |
| 411 | if let Some(status) = self.statuses.read().await.get(server_name) { |
no test coverage detected