From 37648d5c718bcb12bd85512e04f1a0aa065e001d Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Tue, 5 Aug 2025 10:51:42 +0800 Subject: [PATCH] fix: mcp not response output (#5388) --- packages/service/common/file/image/controller.ts | 3 ++- packages/service/common/response/index.ts | 7 ++++++- packages/service/core/dataset/image/controller.ts | 5 +++-- packages/service/core/workflow/dispatch/child/runTool.ts | 3 ++- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/service/common/file/image/controller.ts b/packages/service/common/file/image/controller.ts index 54c036611..b3b69e670 100644 --- a/packages/service/common/file/image/controller.ts +++ b/packages/service/common/file/image/controller.ts @@ -7,6 +7,7 @@ import { readFromSecondary } from '../../mongo/utils'; import { addHours } from 'date-fns'; import { imageFileType } from '@fastgpt/global/common/file/constants'; import { retryFn } from '@fastgpt/global/common/system/utils'; +import { UserError } from '@fastgpt/global/common/error/utils'; export const maxImgSize = 1024 * 1024 * 12; const base64MimeRegex = /data:image\/([^\)]+);base64/; @@ -105,7 +106,7 @@ export async function readMongoImg({ id }: { id: string }) { ...readFromSecondary }); if (!data) { - return Promise.reject('Image not found'); + return Promise.reject(new UserError('Image not found')); } return { diff --git a/packages/service/common/response/index.ts b/packages/service/common/response/index.ts index 57ffe9b18..5d2f58db6 100644 --- a/packages/service/common/response/index.ts +++ b/packages/service/common/response/index.ts @@ -4,6 +4,7 @@ import { proxyError, ERROR_RESPONSE, ERROR_ENUM } from '@fastgpt/global/common/e import { addLog } from '../system/log'; import { clearCookie } from '../../support/permission/controller'; import { replaceSensitiveText } from '@fastgpt/global/common/string/tools'; +import { UserError } from '@fastgpt/global/common/error/utils'; export interface ResponseType { code: number; @@ -59,7 +60,11 @@ export const jsonRes = ( msg = error?.error?.message; } - addLog.error(`Api response error: ${url}, ${msg}`, error); + if (error instanceof UserError) { + addLog.info(`Request error: ${url}, ${msg}`); + } else { + addLog.error(`System unexpected error: ${url}, ${msg}`, error); + } } res.status(code).json({ diff --git a/packages/service/core/dataset/image/controller.ts b/packages/service/core/dataset/image/controller.ts index 0d3a44b08..ff3628b6f 100644 --- a/packages/service/core/dataset/image/controller.ts +++ b/packages/service/core/dataset/image/controller.ts @@ -9,6 +9,7 @@ import { setCron } from '../../../common/system/cron'; import { checkTimerLock } from '../../../common/system/timerLock/utils'; import { TimerIdEnum } from '../../../common/system/timerLock/constants'; import { addLog } from '../../../common/system/log'; +import { UserError } from '@fastgpt/global/common/error/utils'; const getGridBucket = () => { return new connectionMongo.mongo.GridFSBucket(connectionMongo.connection.db!, { @@ -69,7 +70,7 @@ export const getDatasetImageReadData = async (imageId: string) => { _id: new Types.ObjectId(imageId) }).lean(); if (!fileInfo) { - return Promise.reject('Image not found'); + return Promise.reject(new UserError('Image not found')); } const gridBucket = getGridBucket(); @@ -84,7 +85,7 @@ export const getDatasetImageBase64 = async (imageId: string) => { _id: new Types.ObjectId(imageId) }).lean(); if (!fileInfo) { - return Promise.reject('Image not found'); + return Promise.reject(new UserError('Image not found')); } // Get image stream from GridFS diff --git a/packages/service/core/workflow/dispatch/child/runTool.ts b/packages/service/core/workflow/dispatch/child/runTool.ts index 17e3875c9..57a5c7e0e 100644 --- a/packages/service/core/workflow/dispatch/child/runTool.ts +++ b/packages/service/core/workflow/dispatch/child/runTool.ts @@ -34,7 +34,7 @@ type RunToolProps = ModuleDispatchProps<{ type RunToolResponse = DispatchNodeResultType< { - [NodeOutputKeyEnum.rawResponse]?: any; + [NodeOutputKeyEnum.rawResponse]?: any; // MCP Tool [key: string]: any; }, Record @@ -197,6 +197,7 @@ export const dispatchRunTool = async (props: RunToolProps): Promise