@@ -14,6 +14,7 @@ import { createPrompt, generateDefaultPrompt } from "../../create-prompt";
1414import { isEntityContext } from "../../github/context" ;
1515import type { PreparedContext } from "../../create-prompt/types" ;
1616import type { FetchDataResult } from "../../github/data/fetcher" ;
17+ import { parseAllowedTools } from "../agent/parse-tools" ;
1718
1819/**
1920 * Tag mode implementation.
@@ -112,20 +113,10 @@ export const tagMode: Mode = {
112113
113114 await createPrompt ( tagMode , modeContext , githubData , context ) ;
114115
115- // Get our GitHub MCP servers configuration
116- const ourMcpConfig = await prepareMcpConfig ( {
117- githubToken,
118- owner : context . repository . owner ,
119- repo : context . repository . repo ,
120- branch : branchInfo . claudeBranch || branchInfo . currentBranch ,
121- baseBranch : branchInfo . baseBranch ,
122- claudeCommentId : commentId . toString ( ) ,
123- allowedTools : [ ] ,
124- context,
125- mode : "tag" ,
126- } ) ;
127-
128- // Don't output mcp_config separately anymore - include in claude_args
116+ const userClaudeArgs = process . env . CLAUDE_ARGS || "" ;
117+ const userAllowedMCPTools = parseAllowedTools ( userClaudeArgs ) . filter (
118+ ( tool ) => tool . startsWith ( "mcp__github_" ) ,
119+ ) ;
129120
130121 // Build claude_args for tag mode with required tools
131122 // Tag mode REQUIRES these tools to function properly
@@ -141,6 +132,7 @@ export const tagMode: Mode = {
141132 "mcp__github_ci__get_ci_status" ,
142133 "mcp__github_ci__get_workflow_run_details" ,
143134 "mcp__github_ci__download_job_log" ,
135+ ...userAllowedMCPTools ,
144136 ] ;
145137
146138 // Add git commands when not using commit signing
@@ -162,7 +154,18 @@ export const tagMode: Mode = {
162154 ) ;
163155 }
164156
165- const userClaudeArgs = process . env . CLAUDE_ARGS || "" ;
157+ // Get our GitHub MCP servers configuration
158+ const ourMcpConfig = await prepareMcpConfig ( {
159+ githubToken,
160+ owner : context . repository . owner ,
161+ repo : context . repository . repo ,
162+ branch : branchInfo . claudeBranch || branchInfo . currentBranch ,
163+ baseBranch : branchInfo . baseBranch ,
164+ claudeCommentId : commentId . toString ( ) ,
165+ allowedTools : Array . from ( new Set ( tagModeTools ) ) ,
166+ mode : "tag" ,
167+ context,
168+ } ) ;
166169
167170 // Build complete claude_args with multiple --mcp-config flags
168171 let claudeArgs = "" ;
0 commit comments