@@ -15,6 +15,7 @@ import (
1515 "github.com/SimplyLiz/CodeMCP/internal/index"
1616 "github.com/SimplyLiz/CodeMCP/internal/mcp"
1717 "github.com/SimplyLiz/CodeMCP/internal/project"
18+ "github.com/SimplyLiz/CodeMCP/internal/query"
1819 "github.com/SimplyLiz/CodeMCP/internal/repos"
1920 "github.com/SimplyLiz/CodeMCP/internal/repostate"
2021 "github.com/SimplyLiz/CodeMCP/internal/slogutil"
@@ -118,10 +119,9 @@ func runMCP(cmd *cobra.Command, args []string) error {
118119 repoName = mcpRepo
119120 fmt .Fprintf (os .Stderr , "Repository: %s (%s) [%s]\n " , repoName , repoRoot , state )
120121
121- // Use multi-repo mode
122- server = mcp .NewMCPServerWithRegistry (version .Version , registry , logger )
123- engine := mustGetEngine (repoRoot , logger )
124- server .SetActiveRepo (repoName , repoRoot , engine )
122+ // Skip multi-repo mode - use lazy loading path instead
123+ // TODO: Add lazy loading support to multi-repo mode
124+ _ = registry // silence unused warning
125125 }
126126 } else {
127127 // No --repo flag - use smart resolution
@@ -160,13 +160,9 @@ func runMCP(cmd *cobra.Command, args []string) error {
160160 }
161161 }
162162
163- // Use multi-repo mode if registry is available
164- registry , err := repos .LoadRegistry ()
165- if err == nil && resolved .Source != repos .ResolvedFromCWDGit {
166- server = mcp .NewMCPServerWithRegistry (version .Version , registry , logger )
167- engine := mustGetEngine (repoRoot , logger )
168- server .SetActiveRepo (repoName , repoRoot , engine )
169- }
163+ // Skip multi-repo mode for now - use lazy loading path instead
164+ // TODO: Add lazy loading support to multi-repo mode
165+ _ = repos .LoadRegistry // silence unused warning
170166 } else {
171167 // No repo found - fall back to current directory
172168 repoRoot = mustGetRepoRoot ()
@@ -199,11 +195,12 @@ func runMCP(cmd *cobra.Command, args []string) error {
199195 logger = slogutil .NewTeeLogger (fileLogger .Handler (), stderrHandler )
200196 }
201197
202- // Create server if not already created (legacy single-engine mode)
203- if server == nil {
204- engine := mustGetEngine (repoRoot , logger )
205- server = mcp .NewMCPServer (version .Version , engine , logger )
206- }
198+ // Use lazy loading for fast MCP handshake
199+ // Capture repoRoot and logger for the closure
200+ root , log := repoRoot , logger
201+ server = mcp .NewMCPServerLazy (version .Version , func () (* query.Engine , error ) {
202+ return getEngine (root , log )
203+ }, logger )
207204
208205 // Apply preset configuration
209206 if err := server .SetPreset (mcpPreset ); err != nil {
0 commit comments