agent: Improve the UX around interacting with MCP servers (#32622)

Still a work in progress! Todos before merging:

- [x] Allow to delete (not just turn off) an MCP server from the panel's
settings view
- [x] Also uninstall the extension upon deleting the server (check if
the extension just provides MCPs)
- [x] Resolve repository URL again
- [x] Add a button to open the configuration modal from the panel's
settings view
- [x] Improve modal UX to install and configure a non-extension MCP

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
This commit is contained in:
Danilo Leal
2025-06-18 22:52:40 +00:00
committed by GitHub
co-authored by Bennet Bo Fenner Ben Brandt
parent 526faf287d
commit 804b91aa8c
16 changed files with 926 additions and 728 deletions
@@ -235,6 +235,13 @@ impl ContextServerStore {
self.servers.get(id).map(ContextServerStatus::from_state)
}
pub fn configuration_for_server(
&self,
id: &ContextServerId,
) -> Option<Arc<ContextServerConfiguration>> {
self.servers.get(id).map(|state| state.configuration())
}
pub fn all_server_ids(&self) -> Vec<ContextServerId> {
self.servers.keys().cloned().collect()
}