(
State(_state): State<Arc<ServerState>>,
Json(req): Json<AddMcpRequest>,
)
| 2567 | } |
| 2568 | |
| 2569 | async fn add_mcp_server( |
| 2570 | State(_state): State<Arc<ServerState>>, |
| 2571 | Json(req): Json<AddMcpRequest>, |
| 2572 | ) -> Result<Json<HashMap<String, McpStatusInfo>>> { |
| 2573 | let manager = get_mcp_oauth_manager(); |
| 2574 | let (runtime, enabled) = parse_runtime_from_request(req.config)?; |
| 2575 | manager.add_server(req.name.clone(), runtime, enabled).await; |
| 2576 | if enabled { |
| 2577 | manager |
| 2578 | .connect(&req.name) |
| 2579 | .await |
| 2580 | .map_err(mcp_error_to_api_error)?; |
| 2581 | } |
| 2582 | |
| 2583 | let servers = manager.list_servers().await; |
| 2584 | let mut result = HashMap::new(); |
| 2585 | for server in servers { |
| 2586 | result.insert(server.name.clone(), McpStatusInfo::from(server)); |
| 2587 | } |
| 2588 | Ok(Json(result)) |
| 2589 | } |
| 2590 | |
| 2591 | async fn start_mcp_auth(Path(name): Path<String>) -> Result<Json<serde_json::Value>> { |
| 2592 | let manager = get_mcp_oauth_manager(); |
nothing calls this directly
no test coverage detected