From 003cd1bce172bc5caf1e64925e83fd5c71fac5c5 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Mon, 3 Mar 2025 10:46:54 -0500 Subject: [PATCH] Exclude MCP from system prompt if mode does not support it --- .changeset/fluffy-pumpkins-sip.md | 5 +++++ src/core/prompts/system.ts | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .changeset/fluffy-pumpkins-sip.md diff --git a/.changeset/fluffy-pumpkins-sip.md b/.changeset/fluffy-pumpkins-sip.md new file mode 100644 index 0000000000..9b44d7950e --- /dev/null +++ b/.changeset/fluffy-pumpkins-sip.md @@ -0,0 +1,5 @@ +--- +"roo-cline": patch +--- + +Exclude MCP instructions from the prompt if the mode doesn't support MCP diff --git a/src/core/prompts/system.ts b/src/core/prompts/system.ts index 90791f6358..3147c97ae3 100644 --- a/src/core/prompts/system.ts +++ b/src/core/prompts/system.ts @@ -7,6 +7,7 @@ import { defaultModeSlug, ModeConfig, getModeBySlug, + getGroupName, } from "../../shared/modes" import { DiffStrategy } from "../diff/DiffStrategy" import { McpHub } from "../../services/mcp/McpHub" @@ -50,15 +51,17 @@ async function generatePrompt( // If diff is disabled, don't pass the diffStrategy const effectiveDiffStrategy = diffEnabled ? diffStrategy : undefined - const [mcpServersSection, modesSection] = await Promise.all([ - getMcpServersSection(mcpHub, effectiveDiffStrategy, enableMcpServerCreation), - getModesSection(context), - ]) - // Get the full mode config to ensure we have the role definition const modeConfig = getModeBySlug(mode, customModeConfigs) || modes.find((m) => m.slug === mode) || modes[0] const roleDefinition = promptComponent?.roleDefinition || modeConfig.roleDefinition + const [modesSection, mcpServersSection] = await Promise.all([ + getModesSection(context), + modeConfig.groups.some((groupEntry) => getGroupName(groupEntry) === "mcp") + ? getMcpServersSection(mcpHub, effectiveDiffStrategy, enableMcpServerCreation) + : Promise.resolve(""), + ]) + const basePrompt = `${roleDefinition} ${getSharedToolUseSection()}