diff --git a/mcp/server.go b/mcp/server.go index 5020823..c144033 100644 --- a/mcp/server.go +++ b/mcp/server.go @@ -345,13 +345,9 @@ func (s *Server) RemoveTools(names ...string) { func (s *Server) AddResource(r *Resource, h ResourceHandler) { s.changeAndNotify(notificationResourceListChanged, &ResourceListChangedParams{}, func() bool { - u, err := url.Parse(r.URI) - if err != nil { + if _, err := url.Parse(r.URI); err != nil { panic(err) // url.Parse includes the URI in the error } - if !u.IsAbs() { - panic(fmt.Errorf("URI %s needs a scheme", r.URI)) - } s.resources.add(&serverResource{r, h}) return true }) @@ -374,14 +370,6 @@ func (s *Server) AddResourceTemplate(t *ResourceTemplate, h ResourceHandler) { if err != nil { panic(fmt.Errorf("URI template %q is invalid: %w", t.URITemplate, err)) } - // Ensure the URI template has a valid scheme - u, err := url.Parse(t.URITemplate) - if err != nil { - panic(err) // url.Parse includes the URI in the error - } - if !u.IsAbs() { - panic(fmt.Errorf("URI template %q needs a scheme", t.URITemplate)) - } s.resourceTemplates.add(&serverResourceTemplate{t, h}) return true }) diff --git a/mcp/server_test.go b/mcp/server_test.go index cb1c05d..7db4073 100644 --- a/mcp/server_test.go +++ b/mcp/server_test.go @@ -381,8 +381,6 @@ func TestServerAddResourceTemplate(t *testing.T) { }{ {"ValidFileTemplate", "file:///{a}/{b}", false}, {"ValidCustomScheme", "myproto:///{a}", false}, - {"MissingScheme1", "://example.com/{path}", true}, - {"MissingScheme2", "/api/v1/users/{id}", true}, {"EmptyVariable", "file:///{}/{b}", true}, {"UnclosedVariable", "file:///{a", true}, }