@@ -50,6 +50,11 @@ export const createSearchCodebaseTool = (server: McpServer): void => {
5050 . optional ( )
5151 . describe ( `Length of code snippets to include (default: ${ DEFAULTS . codeSnippetLength } )` )
5252 . default ( DEFAULTS . codeSnippetLength ) ,
53+ useWeightedTraversal : z
54+ . boolean ( )
55+ . optional ( )
56+ . describe ( 'Use weighted traversal strategy that scores each node for relevance (default: false)' )
57+ . default ( true ) ,
5358 } ,
5459 } ,
5560 async ( {
@@ -60,6 +65,7 @@ export const createSearchCodebaseTool = (server: McpServer): void => {
6065 skip = 0 ,
6166 includeCode = true ,
6267 snippetLength = DEFAULTS . codeSnippetLength ,
68+ useWeightedTraversal = true ,
6369 } ) => {
6470 try {
6571 await debugLog ( 'Search codebase started' , { query, limit } ) ;
@@ -71,7 +77,7 @@ export const createSearchCodebaseTool = (server: McpServer): void => {
7177 const embedding = await embeddingsService . embedText ( query ) ;
7278
7379 const vectorResults = await neo4jService . run ( QUERIES . VECTOR_SEARCH , {
74- limit,
80+ limit : parseInt ( limit . toString ( ) ) ,
7581 embedding,
7682 } ) ;
7783
@@ -93,7 +99,7 @@ export const createSearchCodebaseTool = (server: McpServer): void => {
9399 snippetLength,
94100 } ) ;
95101
96- return await traversalHandler . traverseFromNode ( nodeId , {
102+ return await traversalHandler . traverseFromNode ( nodeId , embedding , {
97103 maxDepth,
98104 direction : 'BOTH' , // Show both incoming (who calls this) and outgoing (what this calls)
99105 includeCode,
@@ -102,6 +108,7 @@ export const createSearchCodebaseTool = (server: McpServer): void => {
102108 summaryOnly : false ,
103109 snippetLength,
104110 title : `Exploration from Node: ${ nodeId } ` ,
111+ useWeightedTraversal,
105112 } ) ;
106113 } catch ( error ) {
107114 console . error ( 'Search codebase error:' , error ) ;
0 commit comments