Commit 4afe9fc

mo khan <mo@mokhan.ca>
2025-08-16 14:42:29
Discover all files at startup
1 parent 8d76079
Changed files (1)
pkg
filesystem
pkg/filesystem/server.go
@@ -1,7 +1,6 @@
 package filesystem
 
 import (
-	"encoding/json"
 	"fmt"
 	"mime"
 	"os"
@@ -159,6 +158,10 @@ func New(allowedDirs []string) *Server {
 				}, nil
 			},
 		))
+		
+		// Discover files in this directory at construction time
+		fileResources := fsServer.discoverFiles(dir)
+		resources = append(resources, fileResources...)
 	}
 
 	var roots []mcp.Root
@@ -173,42 +176,9 @@ func New(allowedDirs []string) *Server {
 
 	fsServer.Server = mcp.NewServer("filesystem", "0.2.0", tools, resources, roots)
 
-	handlers := map[string]func(mcp.JSONRPCRequest) mcp.JSONRPCResponse{
-		"resources/list": func(req mcp.JSONRPCRequest) mcp.JSONRPCResponse {
-			resources := fsServer.ListResources()
-			result := mcp.ListResourcesResult{Resources: resources}
-
-			id := req.ID
-			bytes, _ := json.Marshal(result)
-			rawMsg := json.RawMessage(bytes)
-			resultBytes := &rawMsg
-
-			return mcp.JSONRPCResponse{
-				JSONRPC: "2.0",
-				ID:      id,
-				Result:  resultBytes,
-			}
-		},
-	}
-	fsServer.SetCustomRequestHandler(handlers)
-
 	return fsServer
 }
 
-func (fs *Server) ListResources() []mcp.Resource {
-	var resources []mcp.Resource
-
-	parentResources := fs.Server.ListResources()
-	resources = append(resources, parentResources...)
-
-	for _, dir := range fs.allowedDirectories {
-		fileResources := fs.discoverFiles(dir)
-		resources = append(resources, fileResources...)
-	}
-
-	return resources
-}
-
 func (fs *Server) discoverFiles(dirPath string) []mcp.Resource {
 	var resources []mcp.Resource