feat(mcp): enhance MCP server registration with error handling and improve transport process management
refactor: update various tools for better error handling and path resolution fix: improve markdown rendering and input display in TUI
This commit is contained in:
@@ -32,7 +32,13 @@ impl Default for McpManager {
|
||||
|
||||
impl McpManager {
|
||||
|
||||
pub fn register(&mut self, name: &str, transport: &str) {
|
||||
/// Register an MCP server by name and transport string.
|
||||
///
|
||||
/// Returns an error if a server with the same name is already registered.
|
||||
pub fn register(&mut self, name: &str, transport: &str) -> anyhow::Result<()> {
|
||||
if self.servers.contains_key(name) {
|
||||
anyhow::bail!("MCP server '{name}' is already registered");
|
||||
}
|
||||
self.servers.insert(
|
||||
name.to_string(),
|
||||
McpServerHandle {
|
||||
@@ -40,10 +46,12 @@ impl McpManager {
|
||||
transport: transport.to_string(),
|
||||
},
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn unregister(&mut self, name: &str) {
|
||||
self.servers.remove(name);
|
||||
/// Remove a registered MCP server and return its handle, if it existed.
|
||||
pub fn unregister(&mut self, name: &str) -> Option<McpServerHandle> {
|
||||
self.servers.remove(name)
|
||||
}
|
||||
|
||||
pub fn list(&self) -> Vec<McpServerHandle> {
|
||||
|
||||
Reference in New Issue
Block a user