Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions pkg/inventory/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ const (
// - MCPMethodToolsList: All available tools (no resources/prompts)
// - MCPMethodToolsCall: Only the named tool
// - MCPMethodResourcesList, MCPMethodResourcesTemplatesList: All available resources (no tools/prompts)
// - MCPMethodResourcesRead: Only the named resource template
// - MCPMethodResourcesRead: All resources (SDK handles URI template matching)
// - MCPMethodPromptsList: All available prompts (no tools/resources)
// - MCPMethodPromptsGet: Only the named prompt
// - Unknown methods: Empty (no items registered)
Expand Down Expand Up @@ -134,10 +134,8 @@ func (r *Inventory) ForMCPRequest(method string, itemName string) *Inventory {
case MCPMethodResourcesList, MCPMethodResourcesTemplatesList:
result.tools, result.prompts = nil, nil
case MCPMethodResourcesRead:
// Keep all resources registered - SDK handles URI template matching internally
result.tools, result.prompts = nil, nil
if itemName != "" {
result.resourceTemplates = r.filterResourcesByURI(itemName)
}
case MCPMethodPromptsList:
result.tools, result.resourceTemplates = nil, nil
case MCPMethodPromptsGet:
Expand Down
12 changes: 5 additions & 7 deletions pkg/inventory/registry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -775,17 +775,15 @@ func TestForMCPRequest_ResourcesRead(t *testing.T) {
}

reg := NewBuilder().SetResources(resources).WithToolsets([]string{"all"}).Build()
filtered := reg.ForMCPRequest(MCPMethodResourcesRead, "repo://{owner}/{repo}")
// Pass a concrete URI - all resources remain registered, SDK handles matching
filtered := reg.ForMCPRequest(MCPMethodResourcesRead, "repo://owner/repo")

// All resources should be available - SDK handles URI template matching internally
available := filtered.AvailableResourceTemplates(context.Background())
if len(available) != 1 {
t.Fatalf("Expected 1 resource for resources/read, got %d", len(available))
}
if available[0].Template.URITemplate != "repo://{owner}/{repo}" {
t.Errorf("Expected URI template 'repo://{owner}/{repo}', got %q", available[0].Template.URITemplate)
if len(available) != 2 {
t.Fatalf("Expected 2 resources for resources/read (SDK handles matching), got %d", len(available))
}
}

func TestForMCPRequest_PromptsList(t *testing.T) {
tools := []ServerTool{
mockTool("tool1", "repos", true),
Expand Down
Loading