Commit 4afe9fc
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