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

Function dispatch_tool

src/mcp/mcp.c:10964–11025  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10962/* ── Tool dispatch ────────────────────────────────────────────── */
10963
10964static char *dispatch_tool(cbm_mcp_server_t *srv, const char *tool_name, const char *args_json) {
10965 if (!tool_name) {
10966 return cbm_mcp_text_result("missing tool name", true);
10967 }
10968 if (srv && !mcp_tool_allowed(srv->tool_profile, tool_name)) {
10969 char message[CBM_SZ_256];
10970 snprintf(message, sizeof(message), "tool '%s' is not available in the %s tool profile",
10971 tool_name, mcp_tool_profile_name(srv->tool_profile));
10972 return cbm_mcp_text_result(message, true);
10973 }
10974
10975 if (strcmp(tool_name, "list_projects") == 0) {
10976 return handle_list_projects(srv, args_json);
10977 }
10978 if (strcmp(tool_name, "get_graph_schema") == 0) {
10979 return handle_get_graph_schema(srv, args_json);
10980 }
10981 if (strcmp(tool_name, "search_graph") == 0) {
10982 return handle_search_graph(srv, args_json);
10983 }
10984 if (strcmp(tool_name, "query_graph") == 0) {
10985 return handle_query_graph(srv, args_json);
10986 }
10987 if (strcmp(tool_name, "index_status") == 0) {
10988 return handle_index_status(srv, args_json);
10989 }
10990 if (strcmp(tool_name, "check_index_coverage") == 0) {
10991 return handle_check_index_coverage(srv, args_json);
10992 }
10993 if (strcmp(tool_name, "delete_project") == 0) {
10994 return handle_delete_project(srv, args_json);
10995 }
10996 if (strcmp(tool_name, "trace_path") == 0 || strcmp(tool_name, "trace_call_path") == 0) {
10997 return handle_trace_call_path(srv, args_json);
10998 }
10999 if (strcmp(tool_name, "get_architecture") == 0) {
11000 return handle_get_architecture(srv, args_json);
11001 }
11002
11003 /* Pipeline-dependent tools */
11004 if (strcmp(tool_name, "index_repository") == 0) {
11005 return handle_index_repository(srv, args_json);
11006 }
11007 if (strcmp(tool_name, "get_code_snippet") == 0) {
11008 return handle_get_code_snippet(srv, args_json);
11009 }
11010 if (strcmp(tool_name, "search_code") == 0) {
11011 return handle_search_code(srv, args_json);
11012 }
11013 if (strcmp(tool_name, "detect_changes") == 0) {
11014 return handle_detect_changes(srv, args_json);
11015 }
11016 if (strcmp(tool_name, "manage_adr") == 0) {
11017 return handle_manage_adr(srv, args_json);
11018 }
11019 if (strcmp(tool_name, "ingest_traces") == 0) {
11020 return handle_ingest_traces(srv, args_json);
11021 }

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