diff --git a/pkg/github/__toolsnaps__/search_repositories.snap b/pkg/github/__toolsnaps__/search_repositories.snap index f350c8e2b..05e00e005 100644 --- a/pkg/github/__toolsnaps__/search_repositories.snap +++ b/pkg/github/__toolsnaps__/search_repositories.snap @@ -6,6 +6,11 @@ "description": "Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.", "inputSchema": { "properties": { + "include_archived": { + "default": true, + "description": "Include archived repositories in search results (default: true). When false, excludes archived repositories.", + "type": "boolean" + }, "minimal_output": { "default": true, "description": "Return minimal repository information (default: true). When false, returns full GitHub API repository objects.", diff --git a/pkg/github/search.go b/pkg/github/search.go index 55e4cf8b4..d9c32b3f5 100644 --- a/pkg/github/search.go +++ b/pkg/github/search.go @@ -30,6 +30,10 @@ func SearchRepositories(getClient GetClientFn, t translations.TranslationHelperF mcp.Description("Return minimal repository information (default: true). When false, returns full GitHub API repository objects."), mcp.DefaultBool(true), ), + mcp.WithBoolean("include_archived", + mcp.Description("Include archived repositories in search results (default: true). When false, excludes archived repositories."), + mcp.DefaultBool(true), + ), WithPagination(), ), func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { @@ -45,6 +49,15 @@ func SearchRepositories(getClient GetClientFn, t translations.TranslationHelperF if err != nil { return mcp.NewToolResultError(err.Error()), nil } + includeArchived, err := OptionalBoolParamWithDefault(request, "include_archived", true) + if err != nil { + return mcp.NewToolResultError(err.Error()), nil + } + // Modify query to exclude archived repositories if requested + if !includeArchived && !hasFilter(query, "archived") { + query = query + " archived:false" + } + opts := &github.SearchOptions{ ListOptions: github.ListOptions{ Page: pagination.Page,