Skip to content

Commit 4cca302

Browse files
authored
Replace Prompts/Resources/Resource Templates (#518)
* Replace all Prompts Signed-off-by: David Gageot <[email protected]> * Replace all Resources Signed-off-by: David Gageot <[email protected]> * Replace all Resource Templates Signed-off-by: David Gageot <[email protected]> --------- Signed-off-by: David Gageot <[email protected]>
1 parent cf35264 commit 4cca302

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

server/server.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,14 @@ func (s *MCPServer) AddResources(resources ...ServerResource) {
348348
}
349349
}
350350

351+
// SetResources replaces all existing resources with the provided list
352+
func (s *MCPServer) SetResources(resources ...ServerResource) {
353+
s.resourcesMu.Lock()
354+
s.resources = make(map[string]resourceEntry, len(resources))
355+
s.resourcesMu.Unlock()
356+
s.AddResources(resources...)
357+
}
358+
351359
// AddResource registers a new resource and its handler
352360
func (s *MCPServer) AddResource(
353361
resource mcp.Resource,
@@ -391,6 +399,14 @@ func (s *MCPServer) AddResourceTemplates(resourceTemplates ...ServerResourceTemp
391399
}
392400
}
393401

402+
// SetResourceTemplates replaces all existing resource templates with the provided list
403+
func (s *MCPServer) SetResourceTemplates(templates ...ServerResourceTemplate) {
404+
s.resourcesMu.Lock()
405+
s.resourceTemplates = make(map[string]resourceTemplateEntry, len(templates))
406+
s.resourcesMu.Unlock()
407+
s.AddResourceTemplates(templates...)
408+
}
409+
394410
// AddResourceTemplate registers a new resource template and its handler
395411
func (s *MCPServer) AddResourceTemplate(
396412
template mcp.ResourceTemplate,
@@ -422,6 +438,15 @@ func (s *MCPServer) AddPrompt(prompt mcp.Prompt, handler PromptHandlerFunc) {
422438
s.AddPrompts(ServerPrompt{Prompt: prompt, Handler: handler})
423439
}
424440

441+
// SetPrompts replaces all existing prompts with the provided list
442+
func (s *MCPServer) SetPrompts(prompts ...ServerPrompt) {
443+
s.promptsMu.Lock()
444+
s.prompts = make(map[string]mcp.Prompt, len(prompts))
445+
s.promptHandlers = make(map[string]PromptHandlerFunc, len(prompts))
446+
s.promptsMu.Unlock()
447+
s.AddPrompts(prompts...)
448+
}
449+
425450
// DeletePrompts removes prompts from the server
426451
func (s *MCPServer) DeletePrompts(names ...string) {
427452
s.promptsMu.Lock()

0 commit comments

Comments
 (0)