diff --git a/packages/global/support/mcp/type.d.ts b/packages/global/support/mcp/type.d.ts index 986d32924..3575be1a0 100644 --- a/packages/global/support/mcp/type.d.ts +++ b/packages/global/support/mcp/type.d.ts @@ -10,5 +10,6 @@ export type McpKeyType = { export type McpAppType = { appId: string; toolName: string; + toolAlias?: string; description: string; }; diff --git a/packages/service/support/mcp/schema.ts b/packages/service/support/mcp/schema.ts index 4b8281f52..942abd179 100644 --- a/packages/service/support/mcp/schema.ts +++ b/packages/service/support/mcp/schema.ts @@ -41,6 +41,9 @@ const McpKeySchema = new Schema({ toolName: { type: String }, + toolAlias: { + type: String + }, description: { type: String } diff --git a/packages/web/i18n/en/dashboard_mcp.json b/packages/web/i18n/en/dashboard_mcp.json index 9b140d756..9c0f7da5e 100644 --- a/packages/web/i18n/en/dashboard_mcp.json +++ b/packages/web/i18n/en/dashboard_mcp.json @@ -2,9 +2,12 @@ "app_alias_name": "Tool name", "app_description": "Application Description", "app_name": "Application name", + "app_tool_name": "Tool alias", "apps": "Exposed applications", + "create_mcp": "Create an MCP service", "create_mcp_server": "Create a new service", "delete_mcp_server_confirm_tip": "Confirm to delete the service?", + "edit_mcp": "Edit MCP Services", "has_chosen": "Selected", "manage_app": "manage", "mcp_apps": "Number of associated applications", diff --git a/packages/web/i18n/zh-CN/dashboard_mcp.json b/packages/web/i18n/zh-CN/dashboard_mcp.json index f2fdf28af..5b31a85e4 100644 --- a/packages/web/i18n/zh-CN/dashboard_mcp.json +++ b/packages/web/i18n/zh-CN/dashboard_mcp.json @@ -2,9 +2,12 @@ "app_alias_name": "工具名", "app_description": "应用描述", "app_name": "应用名", + "app_tool_name": "工具别名", "apps": "暴露的应用", + "create_mcp": "创建 MCP 服务", "create_mcp_server": "新建服务", "delete_mcp_server_confirm_tip": "确认删除该服务?", + "edit_mcp": "编辑 MCP 服务", "has_chosen": "已选择", "manage_app": "管理", "mcp_apps": "关联应用数量", diff --git a/packages/web/i18n/zh-Hant/dashboard_mcp.json b/packages/web/i18n/zh-Hant/dashboard_mcp.json index a5fc386d2..2119c1611 100644 --- a/packages/web/i18n/zh-Hant/dashboard_mcp.json +++ b/packages/web/i18n/zh-Hant/dashboard_mcp.json @@ -2,9 +2,12 @@ "app_alias_name": "工具名", "app_description": "應用描述", "app_name": "應用名", + "app_tool_name": "工具別名", "apps": "暴露的應用", + "create_mcp": "創建 MCP 服務", "create_mcp_server": "新建服務", "delete_mcp_server_confirm_tip": "確認刪除該服務?", + "edit_mcp": "編輯 MCP 服務", "has_chosen": "已選擇", "manage_app": "管理", "mcp_apps": "關聯應用數量", diff --git a/projects/app/src/pageComponents/dashboard/mcp/EditModal.tsx b/projects/app/src/pageComponents/dashboard/mcp/EditModal.tsx index 12937e439..86de3279e 100644 --- a/projects/app/src/pageComponents/dashboard/mcp/EditModal.tsx +++ b/projects/app/src/pageComponents/dashboard/mcp/EditModal.tsx @@ -62,6 +62,7 @@ const SelectAppModal = ({ { appId: string; toolName: string; + toolAlias: string; avatar: string; description: string; }[] @@ -75,6 +76,7 @@ const SelectAppModal = ({ data.map((item) => ({ appId: item.id, toolName: item.name, + toolAlias: item.name, avatar: item.avatar, description: selectedApps.find((app) => app.appId === item.id)?.description || '' })) @@ -174,6 +176,7 @@ const SelectAppModal = ({ { appId: item._id, toolName: item.name, + toolAlias: item.name, avatar: item.avatar, description: item.intro } @@ -252,7 +255,6 @@ const EditMcpModal = ({ }) => { const { t } = useTranslation(); const isEdit = !!editMcp.id; - console.log(editMcp); const { isOpen: isOpenSelectApp, onOpen: onOpenSelectApp, @@ -279,6 +281,7 @@ const EditMcpModal = ({ apps: data.apps.map((item) => ({ appId: item.appId, toolName: item.toolName, + toolAlias: item.toolAlias, description: item.description })) }), @@ -296,6 +299,7 @@ const EditMcpModal = ({ apps: data.apps.map((item) => ({ appId: item.appId, toolName: item.toolName, + toolAlias: item.toolAlias, description: item.description })) }), @@ -311,7 +315,7 @@ const EditMcpModal = ({ <> {t('dashboard_mcp:app_name')} + {t('dashboard_mcp:app_tool_name')} {t('dashboard_mcp:app_description')} @@ -345,6 +350,14 @@ const EditMcpModal = ({ return ( {app.toolName} + + + ({ appId: item.appId, toolName: item.toolName, + toolAlias: item.toolAlias, description: item.description })) ); diff --git a/projects/app/src/pages/api/support/mcp/server/toolCall.ts b/projects/app/src/pages/api/support/mcp/server/toolCall.ts index e99b286e9..af83031f4 100644 --- a/projects/app/src/pages/api/support/mcp/server/toolCall.ts +++ b/projects/app/src/pages/api/support/mcp/server/toolCall.ts @@ -184,7 +184,7 @@ async function handler( const app = appList.find((app) => { const mcpApp = mcp.apps.find((mcpApp) => String(mcpApp.appId) === String(app._id))!; - return toolName === mcpApp.toolName; + return toolName === mcpApp.toolAlias || toolName === mcpApp.toolName; }); if (!app) { diff --git a/projects/app/src/pages/api/support/mcp/server/toolList.ts b/projects/app/src/pages/api/support/mcp/server/toolList.ts index 29ef241f4..fbbb186b2 100644 --- a/projects/app/src/pages/api/support/mcp/server/toolList.ts +++ b/projects/app/src/pages/api/support/mcp/server/toolList.ts @@ -138,7 +138,7 @@ async function handler( ); return { - name: mcpApp.toolName, + name: mcpApp.toolAlias || mcpApp.toolName, description: mcpApp.description, inputSchema: isPlugin ? pluginNodes2InputSchema(version.nodes)