From 40b4dc407e01bf0ed098b87f40464aca6c9f3345 Mon Sep 17 00:00:00 2001 From: Jan Sandbrink Date: Fri, 6 Feb 2026 15:51:52 +0100 Subject: [PATCH] Limit search_projects to actual Projects This means we are excluding Portfolios and Programs from it. Those will need their own tools. --- app/services/mcp_tools/search_projects.rb | 2 +- spec/requests/mcp/mcp_tools/search_projects_spec.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/services/mcp_tools/search_projects.rb b/app/services/mcp_tools/search_projects.rb index d45859db08b..5fb22c75464 100644 --- a/app/services/mcp_tools/search_projects.rb +++ b/app/services/mcp_tools/search_projects.rb @@ -65,7 +65,7 @@ module McpTools ) def call(page: nil, **filters) - filtered = apply_filters(Project.visible, filters) + filtered = apply_filters(Project.project.visible, filters) projects = apply_pagination(filtered, page) { diff --git a/spec/requests/mcp/mcp_tools/search_projects_spec.rb b/spec/requests/mcp/mcp_tools/search_projects_spec.rb index d04186ec758..18eca9b91df 100644 --- a/spec/requests/mcp/mcp_tools/search_projects_spec.rb +++ b/spec/requests/mcp/mcp_tools/search_projects_spec.rb @@ -56,6 +56,7 @@ RSpec.describe McpTools::SearchProjects, with_flag: { mcp_server: true } do let!(:project_a) { create(:project, identifier: "abc", name: "The ABC Project", status_code: :on_track) } let!(:project_b) { create(:project, identifier: "def", name: "The DEF Project", status_code: :off_track) } + let!(:portfolio) { create(:portfolio, identifier: "ghi", name: "The unrelated Portfolio", status_code: :on_track) } let(:server_config) { create(:mcp_configuration, identifier: "mcp_server") } let(:tool_config) { create(:mcp_configuration, identifier: described_class.qualified_name) }