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

Function register_mcp_capabilities

core/src/agent_api/capabilities.rs:226–247  ·  view source on GitHub ↗
(
    tool_executor: &Arc<ToolExecutor>,
    opts: &SessionOptions,
    global_mcp: Option<&Arc<McpManager>>,
    cached_global_mcp_tools: Vec<(String, McpTool)>,
)

Source from the content-addressed store, hash-verified

224}
225
226fn register_mcp_capabilities(
227 tool_executor: &Arc<ToolExecutor>,
228 opts: &SessionOptions,
229 global_mcp: Option<&Arc<McpManager>>,
230 cached_global_mcp_tools: Vec<(String, McpTool)>,
231) {
232 let Some(ref mcp) = opts.mcp_manager else {
233 return;
234 };
235
236 let all_tools = if is_global_mcp(mcp, global_mcp) {
237 cached_global_mcp_tools
238 } else {
239 fetch_session_mcp_tools(mcp)
240 };
241
242 for (server_name, tools) in group_mcp_tools_by_server(all_tools) {
243 for tool in crate::mcp::tools::create_mcp_tools(&server_name, tools, Arc::clone(mcp)) {
244 tool_executor.register_dynamic_tool(tool);
245 }
246 }
247}
248
249fn is_global_mcp(mcp: &Arc<McpManager>, global_mcp: Option<&Arc<McpManager>>) -> bool {
250 std::ptr::eq(

Callers 1

Calls 5

is_global_mcpFunction · 0.85
fetch_session_mcp_toolsFunction · 0.85
create_mcp_toolsFunction · 0.85
register_dynamic_toolMethod · 0.80

Tested by

no test coverage detected