setupHandlers() — mcp Function Reference
Architecture documentation for the setupHandlers() function in server.ts from the mcp codebase.
Entity Profile
Dependency Diagram
graph TD 4646463d_3032_7be4_79ae_2b8f22f309dd["setupHandlers()"] fb3524f1_6068_fb0f_15f3_83e2b15a3f3f["constructor()"] fb3524f1_6068_fb0f_15f3_83e2b15a3f3f -->|calls| 4646463d_3032_7be4_79ae_2b8f22f309dd c652ed9f_2901_0635_2a5b_fc305e9cd6c1["has()"] 4646463d_3032_7be4_79ae_2b8f22f309dd -->|calls| c652ed9f_2901_0635_2a5b_fc305e9cd6c1 b965d3cf_dacd_81fc_77e7_dbe9bdef8bbc["set()"] 4646463d_3032_7be4_79ae_2b8f22f309dd -->|calls| b965d3cf_dacd_81fc_77e7_dbe9bdef8bbc 55bde18a_7860_173e_f211_5874970475e3["get()"] 4646463d_3032_7be4_79ae_2b8f22f309dd -->|calls| 55bde18a_7860_173e_f211_5874970475e3 8e9da006_7e8b_e75f_f70b_e874951820d2["handler()"] 4646463d_3032_7be4_79ae_2b8f22f309dd -->|calls| 8e9da006_7e8b_e75f_f70b_e874951820d2 style 4646463d_3032_7be4_79ae_2b8f22f309dd fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
src/server.ts lines 150–201
private setupHandlers() {
const experiment = process.env.SUPERMODEL_EXPERIMENT;
// Experiment variants: swap tool definitions to test parallel calling behavior
let allTools: typeof symbolContextTool[];
switch (experiment) {
case 'minimal-schema':
allTools = [{ tool: symbolContextMinimalTool, handler: symbolContextTool.handler }];
break;
case 'search-symbol':
allTools = [searchSymbolEndpoint];
break;
case 'split-tools':
allTools = [findDefinitionEndpoint, traceCallsEndpoint];
break;
case 'annotate':
allTools = [annotateEndpoint];
break;
case 'graphrag':
allTools = [exploreFunctionEndpoint];
break;
default:
allTools = [symbolContextTool];
break;
}
// Create a map for quick handler lookup
const toolMap = new Map<string, typeof allTools[0]>();
for (const t of allTools) {
if (toolMap.has(t.tool.name)) {
throw new Error(`Duplicate tool name: ${t.tool.name}`);
}
toolMap.set(t.tool.name, t);
}
this.server.server.setRequestHandler(ListToolsRequestSchema, async () => {
return {
tools: allTools.map(t => t.tool),
};
});
this.server.server.setRequestHandler(CallToolRequestSchema, async (request) => {
const { name, arguments: args } = request.params;
const tool = toolMap.get(name);
if (tool) {
return tool.handler(this.client, args, this.defaultWorkdir);
}
throw new Error(`Unknown tool: ${name}`);
});
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does setupHandlers() do?
setupHandlers() is a function in the mcp codebase.
What does setupHandlers() call?
setupHandlers() calls 4 function(s): get, handler, has, set.
What calls setupHandlers()?
setupHandlers() is called by 1 function(s): constructor.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free