MCPcopy Create free account
hub / github.com/AI45Lab/Code / add_mcp_server

Method add_mcp_server

core/src/agent_api/session_extensions.rs:62–97  ·  view source on GitHub ↗
(&self, config: McpServerConfig)

Source from the content-addressed store, hash-verified

60 }
61
62 pub(super) async fn add_mcp_server(&self, config: McpServerConfig) -> Result<usize> {
63 let server_name = config.name.clone();
64 self.session.mcp_manager.register_server(config).await;
65 self.session
66 .mcp_manager
67 .connect(&server_name)
68 .await
69 .map_err(|e| crate::error::CodeError::Tool {
70 tool: server_name.clone(),
71 message: format!("Failed to connect MCP server: {}", e),
72 })?;
73
74 let tools = self
75 .session
76 .mcp_manager
77 .get_server_tools(&server_name)
78 .await;
79 let count = tools.len();
80
81 for tool in crate::mcp::tools::create_mcp_tools(
82 &server_name,
83 tools,
84 Arc::clone(&self.session.mcp_manager),
85 ) {
86 self.session.tool_executor.register_dynamic_tool(tool);
87 }
88
89 tracing::info!(
90 session_id = %self.session.session_id,
91 server = server_name,
92 tools = count,
93 "MCP server added to live session"
94 );
95
96 Ok(count)
97 }
98
99 pub(super) async fn remove_mcp_server(&self, server_name: &str) -> Result<()> {
100 self.session

Callers 1

install_agent_dir_toolsFunction · 0.45

Calls 7

create_mcp_toolsFunction · 0.85
register_serverMethod · 0.80
get_server_toolsMethod · 0.80
register_dynamic_toolMethod · 0.80
cloneMethod · 0.45
connectMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected