MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / dispatch_tool

Function dispatch_tool

src/mcp/mcp.c:11104–11165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11102/* ── Tool dispatch ────────────────────────────────────────────── */
11103
11104static char *dispatch_tool(cbm_mcp_server_t *srv, const char *tool_name, const char *args_json) {
11105 if (!tool_name) {
11106 return cbm_mcp_text_result("missing tool name", true);
11107 }
11108 if (srv && !mcp_tool_allowed(srv->tool_profile, tool_name)) {
11109 char message[CBM_SZ_256];
11110 snprintf(message, sizeof(message), "tool '%s' is not available in the %s tool profile",
11111 tool_name, mcp_tool_profile_name(srv->tool_profile));
11112 return cbm_mcp_text_result(message, true);
11113 }
11114
11115 if (strcmp(tool_name, "list_projects") == 0) {
11116 return handle_list_projects(srv, args_json);
11117 }
11118 if (strcmp(tool_name, "get_graph_schema") == 0) {
11119 return handle_get_graph_schema(srv, args_json);
11120 }
11121 if (strcmp(tool_name, "search_graph") == 0) {
11122 return handle_search_graph(srv, args_json);
11123 }
11124 if (strcmp(tool_name, "query_graph") == 0) {
11125 return handle_query_graph(srv, args_json);
11126 }
11127 if (strcmp(tool_name, "index_status") == 0) {
11128 return handle_index_status(srv, args_json);
11129 }
11130 if (strcmp(tool_name, "check_index_coverage") == 0) {
11131 return handle_check_index_coverage(srv, args_json);
11132 }
11133 if (strcmp(tool_name, "delete_project") == 0) {
11134 return handle_delete_project(srv, args_json);
11135 }
11136 if (strcmp(tool_name, "trace_path") == 0 || strcmp(tool_name, "trace_call_path") == 0) {
11137 return handle_trace_call_path(srv, args_json);
11138 }
11139 if (strcmp(tool_name, "get_architecture") == 0) {
11140 return handle_get_architecture(srv, args_json);
11141 }
11142
11143 /* Pipeline-dependent tools */
11144 if (strcmp(tool_name, "index_repository") == 0) {
11145 return handle_index_repository(srv, args_json);
11146 }
11147 if (strcmp(tool_name, "get_code_snippet") == 0) {
11148 return handle_get_code_snippet(srv, args_json);
11149 }
11150 if (strcmp(tool_name, "search_code") == 0) {
11151 return handle_search_code(srv, args_json);
11152 }
11153 if (strcmp(tool_name, "detect_changes") == 0) {
11154 return handle_detect_changes(srv, args_json);
11155 }
11156 if (strcmp(tool_name, "manage_adr") == 0) {
11157 return handle_manage_adr(srv, args_json);
11158 }
11159 if (strcmp(tool_name, "ingest_traces") == 0) {
11160 return handle_ingest_traces(srv, args_json);
11161 }

Callers 1

cbm_mcp_handle_toolFunction · 0.85

Calls 15

cbm_mcp_text_resultFunction · 0.85
mcp_tool_allowedFunction · 0.85
mcp_tool_profile_nameFunction · 0.85
handle_list_projectsFunction · 0.85
handle_get_graph_schemaFunction · 0.85
handle_search_graphFunction · 0.85
handle_query_graphFunction · 0.85
handle_trace_call_pathFunction · 0.85
handle_get_architectureFunction · 0.85
handle_index_repositoryFunction · 0.85
handle_get_code_snippetFunction · 0.85

Tested by

no test coverage detected