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

Function dispatch_tool

src/mcp/mcp.c:10963–11024  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

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