From 025181287be7641445deb685d6c6ef563129f5e3 Mon Sep 17 00:00:00 2001 From: cryo Date: Sun, 20 Apr 2025 09:05:29 +0000 Subject: [PATCH 1/2] pre-allocate memory for memory efficiency --- server/server.go | 4 ++-- server/sse.go | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/server/server.go b/server/server.go index 0ad73773f..7f9a3248b 100644 --- a/server/server.go +++ b/server/server.go @@ -492,7 +492,7 @@ func (s *MCPServer) AddTools(tools ...ServerTool) { // SetTools replaces all existing tools with the provided list func (s *MCPServer) SetTools(tools ...ServerTool) { s.toolsMu.Lock() - s.tools = make(map[string]ServerTool) + s.tools = make(map[string]ServerTool, len(tools)) s.toolsMu.Unlock() s.AddTools(tools...) } @@ -714,7 +714,7 @@ func (s *MCPServer) handleReadResource( matched = true matchedVars := template.URITemplate.Match(request.Params.URI) // Convert matched variables to a map - request.Params.Arguments = make(map[string]interface{}) + request.Params.Arguments = make(map[string]interface{}, len(matchedVars)) for name, value := range matchedVars { request.Params.Arguments[name] = value.V } diff --git a/server/sse.go b/server/sse.go index cc294f40e..c0797492d 100644 --- a/server/sse.go +++ b/server/sse.go @@ -179,10 +179,7 @@ func NewSSEServer(server *MCPServer, opts ...SSEOption) *SSEServer { // NewTestServer creates a test server for testing purposes func NewTestServer(server *MCPServer, opts ...SSEOption) *httptest.Server { - sseServer := NewSSEServer(server) - for _, opt := range opts { - opt(sseServer) - } + sseServer := NewSSEServer(server, opts...) testServer := httptest.NewServer(sseServer) sseServer.baseURL = testServer.URL From 8d6b65b3c9d9dc65fc1a6a66cfdc23bd4b18da7f Mon Sep 17 00:00:00 2001 From: cryo Date: Sun, 20 Apr 2025 09:10:32 +0000 Subject: [PATCH 2/2] fix bug for calling func SendNotificationToAllClients --- server/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/server.go b/server/server.go index 7f9a3248b..12ba8de81 100644 --- a/server/server.go +++ b/server/server.go @@ -429,7 +429,7 @@ func (s *MCPServer) RemoveResource(uri string) { // Send notification to all initialized sessions if listChanged capability is enabled if s.capabilities.resources != nil && s.capabilities.resources.listChanged { - s.sendNotificationToAllClients("resources/list_changed", nil) + s.SendNotificationToAllClients("resources/list_changed", nil) } }