@@ -181,6 +181,7 @@ def execute(self, message_list: List[BaseMessage],
181181 mcp_source = "referencing" ,
182182 tool_enable = False ,
183183 tool_ids = None ,
184+ mcp_output_enable = True ,
184185 ** kwargs ):
185186 chat_model = get_model_instance_by_model_workspace_id (model_id , workspace_id ,
186187 ** model_params_setting ) if model_id is not None else None
@@ -190,13 +191,13 @@ def execute(self, message_list: List[BaseMessage],
190191 manage , padding_problem_text , chat_user_id , chat_user_type ,
191192 no_references_setting ,
192193 model_setting ,
193- mcp_enable , mcp_tool_ids , mcp_servers , mcp_source , tool_enable , tool_ids )
194+ mcp_enable , mcp_tool_ids , mcp_servers , mcp_source , tool_enable , tool_ids , mcp_output_enable )
194195 else :
195196 return self .execute_block (message_list , chat_id , problem_text , post_response_handler , chat_model ,
196197 paragraph_list ,
197198 manage , padding_problem_text , chat_user_id , chat_user_type , no_references_setting ,
198199 model_setting ,
199- mcp_enable , mcp_tool_ids , mcp_servers , mcp_source , tool_enable , tool_ids )
200+ mcp_enable , mcp_tool_ids , mcp_servers , mcp_source , tool_enable , tool_ids , mcp_output_enable )
200201
201202 def get_details (self , manage , ** kwargs ):
202203 # 删除临时生成的MCP代码文件
@@ -229,7 +230,7 @@ def reset_message_list(message_list: List[BaseMessage], answer_text):
229230 return result
230231
231232 def _handle_mcp_request (self , mcp_enable , tool_enable , mcp_source , mcp_servers , mcp_tool_ids , tool_ids ,
232- chat_model , message_list ):
233+ mcp_output_enable , chat_model , message_list ):
233234 if not mcp_enable and not tool_enable :
234235 return None
235236
@@ -269,7 +270,7 @@ def _handle_mcp_request(self, mcp_enable, tool_enable, mcp_source, mcp_servers,
269270 mcp_servers_config [str (tool .id )] = tool_config
270271
271272 if len (mcp_servers_config ) > 0 :
272- return mcp_response_generator (chat_model , message_list , json .dumps (mcp_servers_config ))
273+ return mcp_response_generator (chat_model , message_list , json .dumps (mcp_servers_config ), mcp_output_enable )
273274
274275 return None
275276
@@ -284,7 +285,8 @@ def get_stream_result(self, message_list: List[BaseMessage],
284285 mcp_servers = '' ,
285286 mcp_source = "referencing" ,
286287 tool_enable = False ,
287- tool_ids = None ):
288+ tool_ids = None ,
289+ mcp_output_enable = True ):
288290 if paragraph_list is None :
289291 paragraph_list = []
290292 directly_return_chunk_list = [AIMessageChunk (content = paragraph .content )
@@ -302,7 +304,7 @@ def get_stream_result(self, message_list: List[BaseMessage],
302304 else :
303305 # 处理 MCP 请求
304306 mcp_result = self ._handle_mcp_request (
305- mcp_enable , tool_enable , mcp_source , mcp_servers , mcp_tool_ids , tool_ids , chat_model , message_list ,
307+ mcp_enable , tool_enable , mcp_source , mcp_servers , mcp_tool_ids , tool_ids , mcp_output_enable , chat_model , message_list ,
306308 )
307309 if mcp_result :
308310 return mcp_result , True
@@ -324,9 +326,11 @@ def execute_stream(self, message_list: List[BaseMessage],
324326 mcp_servers = '' ,
325327 mcp_source = "referencing" ,
326328 tool_enable = False ,
327- tool_ids = None ):
329+ tool_ids = None ,
330+ mcp_output_enable = True ):
328331 chat_result , is_ai_chat = self .get_stream_result (message_list , chat_model , paragraph_list ,
329- no_references_setting , problem_text , mcp_enable , mcp_tool_ids , mcp_servers , mcp_source , tool_enable , tool_ids )
332+ no_references_setting , problem_text , mcp_enable , mcp_tool_ids , mcp_servers , mcp_source , tool_enable , tool_ids ,
333+ mcp_output_enable )
330334 chat_record_id = uuid .uuid7 ()
331335 r = StreamingHttpResponse (
332336 streaming_content = event_content (chat_result , chat_id , chat_record_id , paragraph_list ,
@@ -348,7 +352,9 @@ def get_block_result(self, message_list: List[BaseMessage],
348352 mcp_servers = '' ,
349353 mcp_source = "referencing" ,
350354 tool_enable = False ,
351- tool_ids = None ):
355+ tool_ids = None ,
356+ mcp_output_enable = True
357+ ):
352358 if paragraph_list is None :
353359 paragraph_list = []
354360 directly_return_chunk_list = [AIMessageChunk (content = paragraph .content )
@@ -365,7 +371,8 @@ def get_block_result(self, message_list: List[BaseMessage],
365371 else :
366372 # 处理 MCP 请求
367373 mcp_result = self ._handle_mcp_request (
368- mcp_enable , tool_enable , mcp_source , mcp_servers , mcp_tool_ids , tool_ids , chat_model , message_list ,
374+ mcp_enable , tool_enable , mcp_source , mcp_servers , mcp_tool_ids , tool_ids , mcp_output_enable ,
375+ chat_model , message_list ,
369376 )
370377 if mcp_result :
371378 return mcp_result , True
@@ -386,7 +393,8 @@ def execute_block(self, message_list: List[BaseMessage],
386393 mcp_servers = '' ,
387394 mcp_source = "referencing" ,
388395 tool_enable = False ,
389- tool_ids = None ):
396+ tool_ids = None ,
397+ mcp_output_enable = True ):
390398 reasoning_content_enable = model_setting .get ('reasoning_content_enable' , False )
391399 reasoning_content_start = model_setting .get ('reasoning_content_start' , '<think>' )
392400 reasoning_content_end = model_setting .get ('reasoning_content_end' , '</think>' )
@@ -396,7 +404,7 @@ def execute_block(self, message_list: List[BaseMessage],
396404 # 调用模型
397405 try :
398406 chat_result , is_ai_chat = self .get_block_result (message_list , chat_model , paragraph_list ,
399- no_references_setting , problem_text , mcp_enable , mcp_tool_ids , mcp_servers , mcp_source , tool_enable , tool_ids )
407+ no_references_setting , problem_text , mcp_enable , mcp_tool_ids , mcp_servers , mcp_source , tool_enable , tool_ids , mcp_output_enable )
400408 if is_ai_chat :
401409 request_token = chat_model .get_num_tokens_from_messages (message_list )
402410 response_token = chat_model .get_num_tokens (chat_result .content )
0 commit comments