Skip to content

feat(ai-roobt): renew robot ui and add mcp calltool#1561

Merged
chilingling merged 6 commits intoopentiny:developfrom
hexqi:feat/use-robot-with-mcp
Jul 29, 2025
Merged

feat(ai-roobt): renew robot ui and add mcp calltool#1561
chilingling merged 6 commits intoopentiny:developfrom
hexqi:feat/use-robot-with-mcp

Conversation

@hexqi
Copy link
Collaborator

@hexqi hexqi commented Jul 25, 2025

English | 简体中文

PR

PR Checklist

Please check if your PR fulfills the following requirements:

  • The commit message follows our Commit Message Guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)
  • Built its own designer, fully self-validated

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

Background and solution

  • 使用TinyRobot组件库刷新AIRobot插件UI
  • 增加MCP入口,支持调用TinyEngine内置MCP工具
  • 添加customCompatibleAIModels选项,支持自定义添加OpenAI兼容格式大模型,例如
// registry.js
  [META_APP.Robot]: {
    options: {
      customCompatibleAIModels: [
        { label: 'SiliconFlow:DeepSeek-V3', value: 'deepseek-ai/DeepSeek-V3', manufacturer: 'siliconflow' },
        { label: 'Qwen:qwen-max', value: 'qwen-max', manufacturer: 'qwen' },
      ]
    }
  },

// 本地可以使用proxy联调, 下面以百炼为例:
// vite.config.js
  const originProxyConfig = baseConfig.server.proxy
  baseConfig.server.proxy = {
    '/app-center/api/chat/completions': {
      target: 'https://dashscope.aliyuncs.com',
      changeOrigin: true,
      rewrite: path => path.replace('/app-center/api/', '/compatible-mode/v1/'),
    },
    ...originProxyConfig,
  }

What is the current behavior?

Issue Number: N/A

What is the new behavior?

image

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Introduced a modular, component-driven chat UI with fullscreen mode, prompt suggestions, and improved message rendering.
    • Added Markdown rendering component with syntax highlighting and sanitization.
    • Integrated MCP server management UI for managing and toggling MCP plugins via a dedicated panel.
    • Added dynamic AI model options retrieval combining default and metadata-driven models.
    • Added detailed user guide for the new AI plugin version, covering UI, MCP tool integration, and usage scenarios.
  • Enhancements

    • Improved chat message sending with MCP tool integration and robust error handling.
    • Added support for multi-step tool invocation within chat via MCP integration.
    • Updated dependencies to include new packages for chat, Markdown rendering, and MCP support.
    • Included external styling for the robot plugin UI.
  • Bug Fixes

    • Enhanced chat error feedback for failed connections.
  • Chores

    • Added new type definitions and interfaces for MCP and chat interactions.
    • Refactored AI model options to be dynamically retrieved.
    • Added new utilities and composables for MCP server and tool management.
    • Updated service interface export and constants for MCP service integration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 25, 2025

Walkthrough

This update introduces significant enhancements to the robot plugin, including a complete refactor of the chat UI using modular components from @opentiny/tiny-robot, integration with MCP tool servers, and support for tool-augmented LLM conversations. It adds new Vue components, utility modules, type definitions, dependency updates, and configuration changes.

Changes

File(s) Change Summary
Plugin Style and Dependencies
packages/plugins/robot/index.ts, packages/plugins/robot/package.json
Added import for @opentiny/tiny-robot/dist/style.css stylesheet; updated package.json with new dependencies: @opentiny/tiny-robot, tiny-robot-kit, tiny-robot-svgs, dompurify, highlight.js, markdown-it, and devDependency @types/markdown-it.
Chat UI Refactor
packages/plugins/robot/src/Main.vue
Refactored chat UI to use modular components (tr-container, tr-bubble-list, etc.), added MCP integration, fullscreen mode, prompt suggestions, and improved message rendering.
AI Model Options Dynamic Loading
packages/plugins/robot/src/js/robotSetting.ts, packages/plugins/robot/src/RobotSettingPopover.vue
Replaced static AIModelOptions array with dynamic getAIModelOptions() function combining default and metadata-driven models; updated import and usage accordingly.
New Vue Components for MCP and Markdown
packages/plugins/robot/src/mcp/MarkdownRenderer.vue, packages/plugins/robot/src/mcp/McpServer.vue
Added MarkdownRenderer.vue for sanitized Markdown rendering with syntax highlighting; added McpServer.vue component for MCP server management UI with toggle button, badge, and drawer panel for plugin control.
MCP Types and Composables
packages/plugins/robot/src/mcp/types.ts, packages/plugins/robot/src/mcp/useMcp.ts
Added TypeScript interfaces defining request and response structures for LLM and MCP tool interactions; added composable for managing MCP servers, tools, tool enabling/disabling, and integration with MCP APIs.
LLM and Tool Call Utilities
packages/plugins/robot/src/mcp/utils.ts
Added utilities for LLM interaction, recursive tool call handling, argument parsing, and MCP tool invocation orchestration.
Registration Package Updates
packages/register/src/constants.ts, packages/register/src/service.ts
Added McpService property to META_SERVICE export; made ServiceOptions interface exported for public use.
Documentation
docs/advanced-features/new-ai-plugin-usage.md, docs/catalog.json
Added new user guide documentation for the upgraded AI plugin including UI, MCP integration, usage instructions, and troubleshooting; updated catalog to include the new guide.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant MainVue
    participant MCPServer
    participant LLMServer
    participant Tool

    User->>MainVue: Sends message / selects prompt
    MainVue->>LLMServer: sendMcpRequest(messages, options)
    LLMServer-->>MainVue: LLM response (may include tool calls)
    alt Tool calls present
        MainVue->>MCPServer: callTool(toolId, args)
        MCPServer->>Tool: Execute tool
        Tool-->>MCPServer: Tool result
        MCPServer-->>MainVue: Tool result
        MainVue->>LLMServer: send follow-up with tool results
        LLMServer-->>MainVue: Final response
    end
    MainVue-->>User: Display chat bubbles and results
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

In fields of code where robots chat,
New prompts and tools now tip their hat.
Markdown sparkles, plugins bloom,
MCP servers fill the room.
With bubbles bright and servers keen,
The rabbit hops through modular green!
🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added the enhancement New feature or request label Jul 25, 2025
@hexqi hexqi force-pushed the feat/use-robot-with-mcp branch from c7ee104 to 6ff061c Compare July 25, 2025 02:16
@hexqi hexqi changed the title feat(ai-roobt): renew robot ui and add mcp entry feat(ai-roobt): renew robot ui and add mcp calltool Jul 25, 2025
@hexqi hexqi force-pushed the feat/use-robot-with-mcp branch from 6ff061c to 6117c6c Compare July 25, 2025 02:21
@hexqi hexqi added this to the v2.8.0 milestone Jul 25, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (5)
packages/plugins/robot/src/RobotSettingPopover.vue (1)

55-55: Good change! Consider making it reactive if options can change dynamically.

The initialization using getAIModelOptions() function enables dynamic AI model options. The current implementation is correct for static options that don't change during component lifecycle.

If AI model options could change dynamically during the component's lifecycle (e.g., based on user permissions or server configuration), consider making it reactive:

-    const AIModelOptions = getAIModelOptions()
+    const AIModelOptions = computed(() => getAIModelOptions())

Don't forget to import computed from Vue if you implement this change.

packages/plugins/robot/src/mcp/McpServer.vue (3)

52-54: Direct mutation of plugin object may cause reactivity issues.

The direct assignment plugin.enabled = enabled mutates the plugin object directly, which could potentially cause reactivity issues depending on how the plugin objects are structured.

Consider using a more explicit state management approach:

-const handlePluginToggle = (plugin: PluginInfo, enabled: boolean) => {
-  plugin.enabled = enabled
-}
+const handlePluginToggle = (plugin: PluginInfo, enabled: boolean) => {
+  updateMcpServerStatus(plugin.id, enabled)
+}

118-125: Remove unused CSS class.

The .text class appears to be unused and should be removed to keep the codebase clean.

-  .text {
-    width: 56px;
-    height: 22px;
-    line-height: 22px;
-    font-size: 14px;
-    font-weight: 400;
-    text-align: left;
-  }

108-116: Good active state styling with consistent color scheme.

The active state styling properly uses consistent colors and provides good visual feedback. Consider extracting the brand color rgb(20, 118, 255) to a CSS custom property for better maintainability.

packages/plugins/robot/src/Main.vue (1)

194-208: Good MCP integration with proper conditional logic.

The MCP integration is well-implemented with appropriate conditional logic and error handling. The fallback to environment variable for authorization is a good practice.

Consider enhancing error handling to provide more specific feedback for MCP-related issues:

-        } catch (error) {
-          messages.value[messages.value.length - 1].content = '连接失败'
-          inProcesing.value = false
-        }
+        } catch (error) {
+          console.error('MCP request failed:', error)
+          messages.value[messages.value.length - 1].content = `MCP连接失败: ${error.message || '未知错误'}`
+          inProcesing.value = false
+        }
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6ff061c and 218df23.

📒 Files selected for processing (11)
  • packages/plugins/robot/package.json (1 hunks)
  • packages/plugins/robot/src/Main.vue (8 hunks)
  • packages/plugins/robot/src/RobotSettingPopover.vue (2 hunks)
  • packages/plugins/robot/src/js/robotSetting.ts (1 hunks)
  • packages/plugins/robot/src/mcp/MarkdownRenderer.vue (1 hunks)
  • packages/plugins/robot/src/mcp/McpServer.vue (1 hunks)
  • packages/plugins/robot/src/mcp/types.ts (1 hunks)
  • packages/plugins/robot/src/mcp/useMcp.ts (1 hunks)
  • packages/plugins/robot/src/mcp/utils.ts (1 hunks)
  • packages/register/src/constants.ts (1 hunks)
  • packages/register/src/service.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (8)
  • packages/register/src/service.ts
  • packages/register/src/constants.ts
  • packages/plugins/robot/src/mcp/MarkdownRenderer.vue
  • packages/plugins/robot/src/js/robotSetting.ts
  • packages/plugins/robot/package.json
  • packages/plugins/robot/src/mcp/useMcp.ts
  • packages/plugins/robot/src/mcp/types.ts
  • packages/plugins/robot/src/mcp/utils.ts
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
packages/plugins/robot/src/RobotSettingPopover.vue (2)

Learnt from: gene9831
PR: #1011
File: packages/configurator/src/router-select-configurator/RouterSelectConfigurator.vue:95-98
Timestamp: 2025-01-14T06:55:59.692Z
Learning: The tiny-select component from @opentiny/vue library ensures selected options are valid internally, requiring no additional validation in the change handler.

Learnt from: gene9831
PR: #1011
File: packages/configurator/src/router-select-configurator/RouterSelectConfigurator.vue:63-73
Timestamp: 2025-01-14T06:49:00.797Z
Learning: In the tiny-engine project, the SvgIcon component is globally registered and available throughout Vue components without requiring explicit imports.

packages/plugins/robot/src/Main.vue (1)

Learnt from: yy-wow
PR: #940
File: packages/canvas/DesignCanvas/src/DesignCanvas.vue:0-0
Timestamp: 2025-01-15T02:19:06.755Z
Learning: In Vue components using message subscriptions from @opentiny/tiny-engine-meta-register, always clean up subscriptions in the onUnmounted hook using useMessage().unsubscribe() to prevent memory leaks.

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: push-check
🔇 Additional comments (11)
packages/plugins/robot/src/RobotSettingPopover.vue (1)

33-33: LGTM! Import change aligns with source module refactor.

The import change from static AIModelOptions to dynamic getAIModelOptions function is consistent with the broader refactor to support dynamic AI model options.

packages/plugins/robot/src/mcp/McpServer.vue (6)

1-25: Template structure looks good with proper Vue 3 patterns.

The template correctly implements conditional rendering, event handling, and component integration. However, the hardcoded empty array for market-category-options suggests this feature might be incomplete.

Consider whether the empty market-category-options array is intentional or if this functionality needs to be implemented later.


27-31: Good import structure with proper TypeScript types.

The imports are well-organized and include appropriate TypeScript types from the external packages.


38-41: CSS custom properties usage promotes good theming consistency.

Using CSS custom properties for positioning ensures the drawer aligns properly with the existing UI layout variables.


57-62: Plugin search by ID could be optimized but likely not a concern.

The find operation to locate plugins by ID is simple but could be inefficient with many plugins. However, this is likely not a performance concern in typical usage scenarios.


73-75: Proper lifecycle management with onMounted.

The component correctly initializes MCP server tools on mount, ensuring the UI reflects the current state when first rendered.


78-83: Appropriate use of deep selectors for child component customization.

The :deep() selectors correctly target child component elements that need styling overrides.

packages/plugins/robot/src/Main.vue (4)

7-67: Excellent template refactor with improved modularity.

The migration from the old layout components to the new @opentiny/tiny-robot components creates a more modular and maintainable structure. The conditional rendering between welcome screen and chat interface is clean and intuitive.

Key improvements:

  • Modular component architecture with tr-container, tr-welcome, tr-prompts, etc.
  • Proper fullscreen support with v-model binding
  • Clean integration of MCP server component in footer slot
  • Better separation of concerns with message rendering through tr-bubble-provider

75-87: Well-organized imports supporting the new architecture.

The new imports properly support the refactored UI components and MCP integration functionality. The modular import structure from @opentiny/tiny-robot follows good practices.


375-417: Excellent UX enhancements with well-structured prompt system.

The new welcome screen with interactive prompts significantly improves the user experience. The prompt items are well-typed and include helpful visual elements like icons and badges.

Key improvements:

  • Fullscreen control for better user experience
  • Interactive prompt suggestions to guide users
  • Proper TypeScript typing with PromptProps[]
  • Reusable SVG icon generation functions
  • Clean role configuration for bubble chat system

The use of h() function for creating icons is appropriate and performant.


468-561: Modern CSS with container queries and responsive design.

The updated styles effectively support the new component architecture. The use of container queries (@container (width >=64rem)) is a modern approach to responsive design that's well-suited for this modular UI.

Notable improvements:

  • Container queries for responsive prompt layout
  • Consistent use of CSS custom properties for theming
  • Proper styling for new icon buttons with hover/active states
  • Clean integration with the tiny-robot component styles

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/plugins/robot/src/Main.vue (1)

197-237: MCP integration implemented correctly with proper fallback.

The conditional MCP integration is well-implemented with proper authentication, error handling, and fallback to the existing HTTP API. The state management for loading states is handled correctly.

Consider enhancing error messaging for MCP failures to provide more specific feedback to users about what went wrong.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 218df23 and 4c4cdb7.

📒 Files selected for processing (6)
  • packages/plugins/robot/package.json (1 hunks)
  • packages/plugins/robot/src/Main.vue (9 hunks)
  • packages/plugins/robot/src/mcp/MarkdownRenderer.vue (1 hunks)
  • packages/plugins/robot/src/mcp/McpServer.vue (1 hunks)
  • packages/plugins/robot/src/mcp/types.ts (1 hunks)
  • packages/plugins/robot/src/mcp/utils.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
  • packages/plugins/robot/src/mcp/MarkdownRenderer.vue
  • packages/plugins/robot/package.json
  • packages/plugins/robot/src/mcp/McpServer.vue
  • packages/plugins/robot/src/mcp/types.ts
  • packages/plugins/robot/src/mcp/utils.ts
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
packages/plugins/robot/src/Main.vue (2)

Learnt from: yy-wow
PR: #850
File: packages/toolbars/preview/src/Main.vue:0-0
Timestamp: 2024-10-10T02:48:10.881Z
Learning: 在 packages/toolbars/preview/src/Main.vue 文件中,使用 useNotify 而不是 console 来记录错误日志。

Learnt from: rhlin
PR: #1011
File: packages/canvas/render/src/builtin/builtin.json:645-850
Timestamp: 2025-01-14T04:22:02.404Z
Learning: In TinyEngine, components must use inline styles instead of CSS classes because components cannot carry class styles when dragged into the canvas.

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: push-check
🔇 Additional comments (5)
packages/plugins/robot/src/Main.vue (5)

7-68: Excellent architectural improvement with modular component structure.

The refactor from custom dialog to tr-container with modular components (tr-welcome, tr-prompts, tr-bubble-list, tr-sender) significantly improves the code organization and maintainability. The conditional rendering logic and component composition are well-implemented.


76-88: Well-organized imports and component registration.

The import structure is comprehensive and properly organized, including all necessary TinyRobot components, MCP functionality, and type definitions. The component registration matches the imports correctly.

Also applies to: 92-102


377-423: Excellent prompt handling and UI configuration setup.

The prompt items configuration, icon utilities, and chat roles setup are well-implemented. The use of composition API patterns and programmatic VNode creation with h() function demonstrates good Vue 3 practices. The "NEW" badges on relevant prompts provide good UX.


195-195: Proper reactive state management following Vue 3 best practices.

The new reactive state properties are correctly defined and returned from the setup function. The externalization of AI model options through getAIModelOptions() improves maintainability.

Also applies to: 341-341, 441-449


462-572: Comprehensive and well-organized style updates.

The style refactor properly supports the new component structure with modern CSS features like container queries. The use of :deep() selectors for child component styling and consistent button states enhance the user experience.

Copy link
Member

@chilingling chilingling left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

建议增加下使用文档

@hexqi hexqi force-pushed the feat/use-robot-with-mcp branch 2 times, most recently from 2f44c94 to 28c452b Compare July 29, 2025 03:15
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (4)
docs/advanced-features/new-ai-plugin-usage.md (4)

3-3: Typo – stray character before “同时”
There is an extra “t” in front of “同时”.

-…组件库界面,t同时通过使用OpenTiny Next SDK 集成了MCP…
+…组件库界面,同时通过使用OpenTiny Next SDK 集成了MCP…

22-27: “MC工具按钮” should be “MCP工具按钮” for consistency
All other occurrences use MCP; using MC here may confuse readers.

- **MC工具按钮**:管理和配置MCP工具的入口
+ **MCP工具按钮**:管理和配置 MCP 工具的入口

85-91: Duplicate subsection numbering (### 3.2 appears twice)
The second heading should increment to keep the outline correct.

-### 3.2 配置AI模型
+### 3.3 配置AI模型

(Adjust subsequent subsection numbers if necessary.)


140-168: Add a language identifier to fenced code blocks (markdownlint MD040)
These blocks are dialogue examples, not JavaScript. Specify a language (e.g., text) or use md to silence linters and improve rendering.

-```
+```text
 用户:帮我创建一个包含用户信息表单的页面,需要有姓名、邮箱、手机号字段
 …

Apply the same change to the blocks starting at lines 151 and 163.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 85741ff and 2f44c94.

⛔ Files ignored due to path filters (9)
  • docs/advanced-features/imgs/ai-assistant-enable-mcp-tools.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-fullscreen.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-interface.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-mcp-tools-management.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-open.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-prompts.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-settings.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-tool-execution1.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-tool-execution2.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • docs/advanced-features/new-ai-plugin-usage.md (1 hunks)
  • docs/catalog.json (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • docs/catalog.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
docs/advanced-features/new-ai-plugin-usage.md (2)

Learnt from: gene9831
PR: #917
File: docs/开始/快速上手.md:31-31
Timestamp: 2024-12-14T05:53:28.501Z
Learning: The latest stable version of @opentiny/tiny-engine-cli is 2.0.0, and documentation should reference this version instead of any release candidates.

Learnt from: gene9831
PR: #1038
File: packages/plugins/block/index.js:24-24
Timestamp: 2025-01-14T08:42:18.574Z
Learning: In the tiny-engine project, breaking changes are documented in the changelog rather than in JSDoc comments or separate migration guides.

🪛 LanguageTool
docs/advanced-features/new-ai-plugin-usage.md

[uncategorized] ~38-~38: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"会话
Context: ...assistant-settings.png) 注意:切换 AI 模型会开启新的会话。 ### 2.3 MCP工具管理 ![MCP工具管理](./imgs...

(wb4)

🪛 markdownlint-cli2 (0.17.2)
docs/advanced-features/new-ai-plugin-usage.md

140-140: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


151-151: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


162-162: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: push-check

@github-actions github-actions bot added the documentation Improvements or additions to documentation label Jul 29, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
docs/advanced-features/new-ai-plugin-usage.md (1)

26-27: Rename to keep terminology consistent (“MCP工具按钮”).

Throughout the document the acronym “MCP” is used; here it is truncated to “MC”. Rename to avoid confusion and match the rest of the doc.

- - **MC工具按钮**:管理和配置MCP工具的入口
+- **MCP工具按钮**:管理和配置MCP工具的入口
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2f44c94 and 28c452b.

⛔ Files ignored due to path filters (9)
  • docs/advanced-features/imgs/ai-assistant-enable-mcp-tools.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-fullscreen.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-interface.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-mcp-tools-management.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-open.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-prompts.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-settings.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-tool-execution1.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-tool-execution2.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • docs/advanced-features/new-ai-plugin-usage.md (1 hunks)
  • docs/catalog.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/catalog.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
docs/advanced-features/new-ai-plugin-usage.md (2)

Learnt from: gene9831
PR: #1038
File: packages/plugins/block/index.js:24-24
Timestamp: 2025-01-14T08:42:18.574Z
Learning: In the tiny-engine project, breaking changes are documented in the changelog rather than in JSDoc comments or separate migration guides.

Learnt from: gene9831
PR: #917
File: docs/开始/快速上手.md:31-31
Timestamp: 2024-12-14T05:53:28.501Z
Learning: The latest stable version of @opentiny/tiny-engine-cli is 2.0.0, and documentation should reference this version instead of any release candidates.

🪛 LanguageTool
docs/advanced-features/new-ai-plugin-usage.md

[uncategorized] ~38-~38: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"会话
Context: ...assistant-settings.png) 注意:切换 AI 模型会开启新的会话。 ### 2.3 MCP工具管理 ![MCP工具管理](./imgs...

(wb4)

🪛 markdownlint-cli2 (0.17.2)
docs/advanced-features/new-ai-plugin-usage.md

140-140: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


151-151: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


162-162: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: push-check

@hexqi hexqi force-pushed the feat/use-robot-with-mcp branch from 28c452b to 2a74797 Compare July 29, 2025 03:28
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
docs/advanced-features/new-ai-plugin-usage.md (1)

140-167: Add language identifiers to all plain-text conversation blocks (markdown-lint MD040).

The three fenced blocks starting at lines 140, 151 and 162 still trigger MD040.
Add text (or another suitable identifier) after the opening back-ticks.

-```
+```text
 用户:帮我创建一个包含用户信息表单的页面,需要有姓名、邮箱、手机号字段
 AI:好的,我将为您创建一个包含用户信息表单的页面...
 …

(Apply the same change to the two subsequent blocks.)

🧹 Nitpick comments (1)
docs/advanced-features/new-ai-plugin-usage.md (1)

21-26: Fix inconsistent abbreviation (“MC” → “MCP”).

The rest of the document consistently uses “MCP”,but this bullet uses “MC”,which may confuse readers.

- - **MC工具按钮**:管理和配置MCP工具的入口
+ - **MCP工具按钮**:管理和配置MCP工具的入口
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 28c452b and 2a74797.

⛔ Files ignored due to path filters (9)
  • docs/advanced-features/imgs/ai-assistant-enable-mcp-tools.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-fullscreen.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-interface.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-mcp-tools-management.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-open.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-prompts.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-settings.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-tool-execution1.png is excluded by !**/*.png
  • docs/advanced-features/imgs/ai-assistant-tool-execution2.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • docs/advanced-features/new-ai-plugin-usage.md (1 hunks)
  • docs/catalog.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/catalog.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: rhlin
PR: opentiny/tiny-engine#1011
File: packages/canvas/render/src/RenderMain.ts:82-88
Timestamp: 2025-01-14T08:50:50.226Z
Learning: For PR #1011, the focus is on resolving conflicts and migrating code, with architectural improvements deferred for future PRs.
Learnt from: gene9831
PR: opentiny/tiny-engine#1041
File: packages/plugins/datasource/src/DataSourceList.vue:138-138
Timestamp: 2025-01-14T10:06:25.508Z
Learning: PR #1041 in opentiny/tiny-engine is specifically for reverting Prettier v3 formatting to v2, without any logical code changes or syntax improvements.
docs/advanced-features/new-ai-plugin-usage.md (2)

Learnt from: gene9831
PR: #917
File: docs/开始/快速上手.md:31-31
Timestamp: 2024-12-14T05:53:28.501Z
Learning: The latest stable version of @opentiny/tiny-engine-cli is 2.0.0, and documentation should reference this version instead of any release candidates.

Learnt from: gene9831
PR: #1038
File: packages/plugins/block/index.js:24-24
Timestamp: 2025-01-14T08:42:18.574Z
Learning: In the tiny-engine project, breaking changes are documented in the changelog rather than in JSDoc comments or separate migration guides.

🪛 LanguageTool
docs/advanced-features/new-ai-plugin-usage.md

[uncategorized] ~38-~38: 动词的修饰一般为‘形容词(副词)+地+动词’。您的意思是否是:新"地"会话
Context: ...assistant-settings.png) 注意:切换 AI 模型会开启新的会话。 ### 2.3 MCP工具管理 ![MCP工具管理](./imgs...

(wb4)

🪛 markdownlint-cli2 (0.17.2)
docs/advanced-features/new-ai-plugin-usage.md

140-140: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


151-151: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


162-162: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

Copy link
Member

@chilingling chilingling left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@chilingling chilingling merged commit 54e0b62 into opentiny:develop Jul 29, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants