From dc2a5612a03f37f6f65a027c693805e41b0564b4 Mon Sep 17 00:00:00 2001 From: chilingling Date: Mon, 18 Aug 2025 10:05:02 +0800 Subject: [PATCH] chore: add title property for mcp tools --- packages/canvas/DesignCanvas/src/mcp/tools/changeNodeProps.ts | 1 + packages/canvas/DesignCanvas/src/mcp/tools/delNode.ts | 1 + .../DesignCanvas/src/mcp/tools/getCurrentSelectedNode.ts | 1 + packages/canvas/DesignCanvas/src/mcp/tools/getPageSchema.ts | 1 + packages/canvas/DesignCanvas/src/mcp/tools/queryNodeById.ts | 1 + .../canvas/DesignCanvas/src/mcp/tools/selectSpecificNode.ts | 1 + packages/layout/src/mcp/tools/getAllPlugins.ts | 1 + packages/layout/src/mcp/tools/switchPlugin.ts | 1 + packages/plugins/i18n/src/composable/tools/addI18n.ts | 1 + packages/plugins/i18n/src/composable/tools/delI18n.ts | 1 + packages/plugins/i18n/src/composable/tools/getI18n.ts | 1 + packages/plugins/i18n/src/composable/tools/updateI18n.ts | 1 + packages/plugins/materials/src/mcp/tools/getComponentDetail.ts | 1 + packages/plugins/materials/src/mcp/tools/getComponentList.ts | 1 + packages/plugins/page/src/mcp/tools/addPage.ts | 1 + packages/plugins/page/src/mcp/tools/changePageBasicInfo.ts | 1 + packages/plugins/page/src/mcp/tools/delPage.ts | 1 + packages/plugins/page/src/mcp/tools/editSpecificPage.ts | 1 + packages/plugins/page/src/mcp/tools/getPageDetail.ts | 3 ++- packages/plugins/page/src/mcp/tools/getPageList.ts | 1 + packages/plugins/robot/src/mcp/useMcp.ts | 3 ++- 21 files changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/canvas/DesignCanvas/src/mcp/tools/changeNodeProps.ts b/packages/canvas/DesignCanvas/src/mcp/tools/changeNodeProps.ts index 8d55a9d029..1845ea580c 100644 --- a/packages/canvas/DesignCanvas/src/mcp/tools/changeNodeProps.ts +++ b/packages/canvas/DesignCanvas/src/mcp/tools/changeNodeProps.ts @@ -13,6 +13,7 @@ const inputSchema = z.object({ export const changeNodeProps = { name: 'change_node_props', + title: '修改节点属性', description: 'Change the props of a node in the current TinyEngine low-code application. Use this when you need to change the props of a node in your application.', inputSchema: inputSchema.shape, diff --git a/packages/canvas/DesignCanvas/src/mcp/tools/delNode.ts b/packages/canvas/DesignCanvas/src/mcp/tools/delNode.ts index 6ac24df560..fae3a7ee7a 100644 --- a/packages/canvas/DesignCanvas/src/mcp/tools/delNode.ts +++ b/packages/canvas/DesignCanvas/src/mcp/tools/delNode.ts @@ -7,6 +7,7 @@ const inputSchema = z.object({ export const delNode = { name: 'del_node', + title: '删除节点', description: 'Delete a node from the current TinyEngine low-code application. Use this when you need to delete a node from your application.', inputSchema: inputSchema.shape, diff --git a/packages/canvas/DesignCanvas/src/mcp/tools/getCurrentSelectedNode.ts b/packages/canvas/DesignCanvas/src/mcp/tools/getCurrentSelectedNode.ts index b34f9c67c8..15ea5dd1a0 100644 --- a/packages/canvas/DesignCanvas/src/mcp/tools/getCurrentSelectedNode.ts +++ b/packages/canvas/DesignCanvas/src/mcp/tools/getCurrentSelectedNode.ts @@ -5,6 +5,7 @@ const inputSchema = z.object({}) export const getCurrentSelectedNode = { name: 'get_current_selected_node', + title: '获取当前选中节点', description: 'Get the current selected node from the current TinyEngine low-code application. Use this when you need to get the current selected node from your application.', inputSchema: inputSchema.shape, diff --git a/packages/canvas/DesignCanvas/src/mcp/tools/getPageSchema.ts b/packages/canvas/DesignCanvas/src/mcp/tools/getPageSchema.ts index 59ed22e45b..5b51e747c1 100644 --- a/packages/canvas/DesignCanvas/src/mcp/tools/getPageSchema.ts +++ b/packages/canvas/DesignCanvas/src/mcp/tools/getPageSchema.ts @@ -5,6 +5,7 @@ const inputSchema = z.object({}) export const getPageSchema = { name: 'get_page_schema', + title: '获取页面结构', description: 'Get current editing page schema from the current TinyEngine low-code application. Use this when you need to get current editing page schema from your application.', inputSchema: inputSchema.shape, diff --git a/packages/canvas/DesignCanvas/src/mcp/tools/queryNodeById.ts b/packages/canvas/DesignCanvas/src/mcp/tools/queryNodeById.ts index 6b4715388f..8fb0247adc 100644 --- a/packages/canvas/DesignCanvas/src/mcp/tools/queryNodeById.ts +++ b/packages/canvas/DesignCanvas/src/mcp/tools/queryNodeById.ts @@ -7,6 +7,7 @@ const inputSchema = z.object({ export const queryNodeById = { name: 'query_node_by_id', + title: '根据ID查询节点', description: 'Query a node by id from the current TinyEngine low-code application. Use this when you need to query a node by id from your application.', inputSchema: inputSchema.shape, diff --git a/packages/canvas/DesignCanvas/src/mcp/tools/selectSpecificNode.ts b/packages/canvas/DesignCanvas/src/mcp/tools/selectSpecificNode.ts index 205a0b2758..f693e15c95 100644 --- a/packages/canvas/DesignCanvas/src/mcp/tools/selectSpecificNode.ts +++ b/packages/canvas/DesignCanvas/src/mcp/tools/selectSpecificNode.ts @@ -7,6 +7,7 @@ const inputSchema = z.object({ export const selectSpecificNode = { name: 'select_specific_node', + title: '选择特定节点', description: 'Select a specific node from the current TinyEngine low-code application. Use this when you need to select a specific node from your application.', inputSchema: inputSchema.shape, diff --git a/packages/layout/src/mcp/tools/getAllPlugins.ts b/packages/layout/src/mcp/tools/getAllPlugins.ts index 27a0ee06e0..a90b65c5d6 100644 --- a/packages/layout/src/mcp/tools/getAllPlugins.ts +++ b/packages/layout/src/mcp/tools/getAllPlugins.ts @@ -5,6 +5,7 @@ const inputSchema = z.object({}) export const getAllPlugins = { name: 'get_all_plugins', + title: '获取所有插件', description: 'Get all plugins', inputSchema: inputSchema.shape, callback: async (_args: z.infer) => { diff --git a/packages/layout/src/mcp/tools/switchPlugin.ts b/packages/layout/src/mcp/tools/switchPlugin.ts index 7b6c887f7b..cb3ecc7eed 100644 --- a/packages/layout/src/mcp/tools/switchPlugin.ts +++ b/packages/layout/src/mcp/tools/switchPlugin.ts @@ -8,6 +8,7 @@ const inputSchema = z.object({ export const switchPluginPanel = { name: 'switch_plugin_panel', + title: '切换插件面板', description: 'Switch to the current TinyEngine low-code application. Use this when you need to switch to the current TinyEngine low-code application.', inputSchema: inputSchema.shape, diff --git a/packages/plugins/i18n/src/composable/tools/addI18n.ts b/packages/plugins/i18n/src/composable/tools/addI18n.ts index d4e29034f5..bc8d466cca 100644 --- a/packages/plugins/i18n/src/composable/tools/addI18n.ts +++ b/packages/plugins/i18n/src/composable/tools/addI18n.ts @@ -22,6 +22,7 @@ const outputSchema = createOutputSchema(addI18nDataSchema) export const addI18n = { name: 'add_i18n', + title: '新增 I18n 词条', description: 'Add a new i18n entry to the current TinyEngine low-code application. Use this when you need to add new internationalization translations to your application.', inputSchema: inputSchema.shape, diff --git a/packages/plugins/i18n/src/composable/tools/delI18n.ts b/packages/plugins/i18n/src/composable/tools/delI18n.ts index a0240b1bfb..402f6f6950 100644 --- a/packages/plugins/i18n/src/composable/tools/delI18n.ts +++ b/packages/plugins/i18n/src/composable/tools/delI18n.ts @@ -18,6 +18,7 @@ const outputSchema = createOutputSchema(delI18nDataSchema) export const delI18n = { name: 'delete_i18n', + title: '删除 I18n 词条', description: 'Delete an existing i18n entry from the current TinyEngine low-code application. Use this when you need to remove internationalization translations.', inputSchema: inputSchema.shape, diff --git a/packages/plugins/i18n/src/composable/tools/getI18n.ts b/packages/plugins/i18n/src/composable/tools/getI18n.ts index cea39f553a..bc49a50141 100644 --- a/packages/plugins/i18n/src/composable/tools/getI18n.ts +++ b/packages/plugins/i18n/src/composable/tools/getI18n.ts @@ -23,6 +23,7 @@ const outputSchema = createOutputSchema(i18nDataSchema) export const getI18n = { name: 'get_i18n', + title: '获取 I18n 词条', description: 'Retrieve i18n entries from the current TinyEngine low-code application. Can get a specific entry by key or all entries if no key is provided.', inputSchema: inputSchema.shape, diff --git a/packages/plugins/i18n/src/composable/tools/updateI18n.ts b/packages/plugins/i18n/src/composable/tools/updateI18n.ts index a1037c3c6e..977b33d952 100644 --- a/packages/plugins/i18n/src/composable/tools/updateI18n.ts +++ b/packages/plugins/i18n/src/composable/tools/updateI18n.ts @@ -23,6 +23,7 @@ const outputSchema = createOutputSchema(updateI18nDataSchema) export const updateI18n = { name: 'update_i18n', + title: '更新 I18n 词条', description: 'Update an existing i18n entry in the current TinyEngine low-code application. Use this when you need to modify internationalization translations.', inputSchema: inputSchema.shape, diff --git a/packages/plugins/materials/src/mcp/tools/getComponentDetail.ts b/packages/plugins/materials/src/mcp/tools/getComponentDetail.ts index ea1bf43640..d83acaea41 100644 --- a/packages/plugins/materials/src/mcp/tools/getComponentDetail.ts +++ b/packages/plugins/materials/src/mcp/tools/getComponentDetail.ts @@ -7,6 +7,7 @@ const inputSchema = z.object({ export const getComponentDetail = { name: 'get_component_detail', + title: '获取组件详情', description: 'Get the detail of a component.', inputSchema: inputSchema.shape, callback: async (args: z.infer) => { diff --git a/packages/plugins/materials/src/mcp/tools/getComponentList.ts b/packages/plugins/materials/src/mcp/tools/getComponentList.ts index e1b36d2aab..13f81bc806 100644 --- a/packages/plugins/materials/src/mcp/tools/getComponentList.ts +++ b/packages/plugins/materials/src/mcp/tools/getComponentList.ts @@ -5,6 +5,7 @@ const inputSchema = z.object({}) export const getComponentList = { name: 'get_component_list', + title: '获取可用组件列表', description: 'Get all components that can be dragged to the canvas in the current low-code platform application.', inputSchema: inputSchema.shape, callback: async (_args: z.infer) => { diff --git a/packages/plugins/page/src/mcp/tools/addPage.ts b/packages/plugins/page/src/mcp/tools/addPage.ts index d619f52f46..167de6fb98 100644 --- a/packages/plugins/page/src/mcp/tools/addPage.ts +++ b/packages/plugins/page/src/mcp/tools/addPage.ts @@ -15,6 +15,7 @@ const inputSchema = z.object({ export const addPage = { name: 'add_page', label: 'Add Page', + title: '新增页面', order: 6, description: 'Add a new page to the current TinyEngine low-code application. Use this when you need to add new page to your application.', diff --git a/packages/plugins/page/src/mcp/tools/changePageBasicInfo.ts b/packages/plugins/page/src/mcp/tools/changePageBasicInfo.ts index f44b5a97e2..b76b05d4aa 100644 --- a/packages/plugins/page/src/mcp/tools/changePageBasicInfo.ts +++ b/packages/plugins/page/src/mcp/tools/changePageBasicInfo.ts @@ -16,6 +16,7 @@ const inputSchema = z.object({ export const changePageBasicInfo = { name: 'change_page_basic_info', label: 'Change Page Basic Info', + title: '修改页面基础信息', order: 8, description: 'Change a page basic info from the current TinyEngine low-code application. Use this when you need to change a page from your application.', diff --git a/packages/plugins/page/src/mcp/tools/delPage.ts b/packages/plugins/page/src/mcp/tools/delPage.ts index 12160a70ba..7b9cb86c21 100644 --- a/packages/plugins/page/src/mcp/tools/delPage.ts +++ b/packages/plugins/page/src/mcp/tools/delPage.ts @@ -8,6 +8,7 @@ const inputSchema = z.object({ export const delPage = { name: 'del_page', label: 'Delete Page', + title: '删除页面', order: 7, description: 'Delete a page from the current TinyEngine low-code application. Use this when you need to delete a page from your application.', diff --git a/packages/plugins/page/src/mcp/tools/editSpecificPage.ts b/packages/plugins/page/src/mcp/tools/editSpecificPage.ts index b3786f79c4..5fe50d62dc 100644 --- a/packages/plugins/page/src/mcp/tools/editSpecificPage.ts +++ b/packages/plugins/page/src/mcp/tools/editSpecificPage.ts @@ -7,6 +7,7 @@ const inputSchema = z.object({ export const editSpecificPage = { name: 'Edit_page_in_canvas.', + title: '在画布中编辑页面', order: 9, description: 'Edit a specific page in canvas. Use this tool when you need to edit some page in canvas.', inputSchema: inputSchema.shape, diff --git a/packages/plugins/page/src/mcp/tools/getPageDetail.ts b/packages/plugins/page/src/mcp/tools/getPageDetail.ts index a8bfa42a42..aa98d7ed70 100644 --- a/packages/plugins/page/src/mcp/tools/getPageDetail.ts +++ b/packages/plugins/page/src/mcp/tools/getPageDetail.ts @@ -8,6 +8,7 @@ const inputSchema = z.object({ export const getPageDetail = { name: 'get_page_detail', label: 'Get Page Detail', + title: '获取页面详情', order: 8, description: 'Get a page detail from the current TinyEngine low-code application. Use this when you need to get a page detail from your application.', @@ -36,7 +37,7 @@ export const getPageDetail = { status: 'error', message: 'Failed to fetch page detail', data: { - error: error?.message || '' + error: error instanceof Error ? error.message : 'Unknown error occurred' } } diff --git a/packages/plugins/page/src/mcp/tools/getPageList.ts b/packages/plugins/page/src/mcp/tools/getPageList.ts index 61a15c07e6..a88d3f8700 100644 --- a/packages/plugins/page/src/mcp/tools/getPageList.ts +++ b/packages/plugins/page/src/mcp/tools/getPageList.ts @@ -6,6 +6,7 @@ const inputSchema = z.object({}) export const getPageList = { name: 'get_page_list', label: 'Get Page List', + title: '获取页面列表', order: 8, description: 'Get a page list from the current TinyEngine low-code application. Use this when you need to get a page list from your application.', diff --git a/packages/plugins/robot/src/mcp/useMcp.ts b/packages/plugins/robot/src/mcp/useMcp.ts index 17c822fee1..0a4ce0216f 100644 --- a/packages/plugins/robot/src/mcp/useMcp.ts +++ b/packages/plugins/robot/src/mcp/useMcp.ts @@ -62,11 +62,12 @@ const updateServerTools = (serverId: string, tools: PluginTool[]) => { } const updateEngineTools = async () => { - const tools: Array<{ name: string; description: string; status: string }> = + const tools: Array<{ name: string; description: string; status: string; title: string }> = (await getMetaApi(META_SERVICE.McpService)?.getToolList?.()) || [] const engineTools = tools.map((tool) => ({ id: tool.name, name: tool.name, + title: tool.title, description: tool.description, enabled: tool.status === 'enabled' }))