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

Function dispatch_tool

src/mcp/mcp.c:11348–11409  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11346/* ── Tool dispatch ────────────────────────────────────────────── */
11347
11348static char *dispatch_tool(cbm_mcp_server_t *srv, const char *tool_name, const char *args_json) {
11349 if (!tool_name) {
11350 return cbm_mcp_text_result("missing tool name", true);
11351 }
11352 if (srv && !mcp_tool_allowed(srv->tool_profile, tool_name)) {
11353 char message[CBM_SZ_256];
11354 snprintf(message, sizeof(message), "tool '%s' is not available in the %s tool profile",
11355 tool_name, mcp_tool_profile_name(srv->tool_profile));
11356 return cbm_mcp_text_result(message, true);
11357 }
11358
11359 if (strcmp(tool_name, "list_projects") == 0) {
11360 return handle_list_projects(srv, args_json);
11361 }
11362 if (strcmp(tool_name, "get_graph_schema") == 0) {
11363 return handle_get_graph_schema(srv, args_json);
11364 }
11365 if (strcmp(tool_name, "search_graph") == 0) {
11366 return handle_search_graph(srv, args_json);
11367 }
11368 if (strcmp(tool_name, "query_graph") == 0) {
11369 return handle_query_graph(srv, args_json);
11370 }
11371 if (strcmp(tool_name, "index_status") == 0) {
11372 return handle_index_status(srv, args_json);
11373 }
11374 if (strcmp(tool_name, "check_index_coverage") == 0) {
11375 return handle_check_index_coverage(srv, args_json);
11376 }
11377 if (strcmp(tool_name, "delete_project") == 0) {
11378 return handle_delete_project(srv, args_json);
11379 }
11380 if (strcmp(tool_name, "trace_path") == 0 || strcmp(tool_name, "trace_call_path") == 0) {
11381 return handle_trace_call_path(srv, args_json);
11382 }
11383 if (strcmp(tool_name, "get_architecture") == 0) {
11384 return handle_get_architecture(srv, args_json);
11385 }
11386
11387 /* Pipeline-dependent tools */
11388 if (strcmp(tool_name, "index_repository") == 0) {
11389 return handle_index_repository(srv, args_json);
11390 }
11391 if (strcmp(tool_name, "get_code_snippet") == 0) {
11392 return handle_get_code_snippet(srv, args_json);
11393 }
11394 if (strcmp(tool_name, "search_code") == 0) {
11395 return handle_search_code(srv, args_json);
11396 }
11397 if (strcmp(tool_name, "detect_changes") == 0) {
11398 return handle_detect_changes(srv, args_json);
11399 }
11400 if (strcmp(tool_name, "manage_adr") == 0) {
11401 return handle_manage_adr(srv, args_json);
11402 }
11403 if (strcmp(tool_name, "ingest_traces") == 0) {
11404 return handle_ingest_traces(srv, args_json);
11405 }

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