diff --git a/.github/workflows/auto-deploy-site.yml b/.github/workflows/auto-deploy-site.yml
index 92b98d2bd9..0f9aab8491 100644
--- a/.github/workflows/auto-deploy-site.yml
+++ b/.github/workflows/auto-deploy-site.yml
@@ -63,4 +63,4 @@ jobs:
uses: actions/deploy-pages@v4
environment:
name: github-pages
- url: ${{ steps.deployment.outputs.page_url }}
\ No newline at end of file
+ url: ${{ steps.deployment.outputs.page_url }}
diff --git a/examples/sites/demos/pc/app/grid/ai-agent/basic-usage-composition-api.vue b/examples/sites/demos/pc/app/grid/ai-agent/basic-usage-composition-api.vue
new file mode 100644
index 0000000000..e67ee11946
--- /dev/null
+++ b/examples/sites/demos/pc/app/grid/ai-agent/basic-usage-composition-api.vue
@@ -0,0 +1,100 @@
+
+
tiny-mcp-config
可以配置表格的业务意义以及传入server
对象,详见示例。`,
+ 'en-US': ``
+ },
+ codeFiles: ['ai-agent/basic-usage.vue']
+ }
+ ],
+ apis: [{ name: 'grid-ai-agent', 'type': 'component', 'props': [], 'events': [], 'slots': [] }]
+}
diff --git a/examples/sites/demos/pc/menus.js b/examples/sites/demos/pc/menus.js
index 1f95d26254..635e81b316 100644
--- a/examples/sites/demos/pc/menus.js
+++ b/examples/sites/demos/pc/menus.js
@@ -175,6 +175,7 @@ export const cmpMenus = [
'key': 'cmp-table-components',
'children': [
{ 'nameCn': '基本用法', 'name': '', 'key': 'grid' },
+ { 'nameCn': 'AI智能体', 'name': '', 'key': 'grid-ai-agent' },
{ 'nameCn': '序号列', 'name': '', 'key': 'grid-serial-column' },
{ 'nameCn': '选中行', 'name': '', 'key': 'grid-operation-column' },
{ 'nameCn': '空数据', 'name': '', 'key': 'grid-empty' },
diff --git a/examples/sites/package.json b/examples/sites/package.json
index e27cb914ad..5c3d81f7c0 100644
--- a/examples/sites/package.json
+++ b/examples/sites/package.json
@@ -27,6 +27,13 @@
"@docsearch/css": "^3.8.0",
"@docsearch/js": "^3.8.0",
"@docsearch/react": "npm:@docsearch/css",
+ "@modelcontextprotocol/sdk": "1.12.1",
+ "@opentiny/next": "0.1.2",
+ "@opentiny/tiny-robot": "0.2.0-alpha.7",
+ "@opentiny/tiny-robot-kit": "0.2.0-alpha.7",
+ "@opentiny/tiny-robot-svgs": "0.2.0-alpha.7",
+ "@opentiny/tiny-schema-renderer": "1.0.0-beta.5",
+ "@opentiny/tiny-vue-mcp": "0.0.1-beta.1",
"@opentiny/utils": "workspace:~",
"@opentiny/vue": "workspace:~",
"@opentiny/vue-common": "workspace:~",
@@ -100,4 +107,4 @@
"vite-svg-loader": "^3.6.0",
"vue-tsc": "^1.8.5"
}
-}
\ No newline at end of file
+}
diff --git a/examples/sites/src/i18n/index.js b/examples/sites/src/i18n/index.js
index 5cc5fd2756..be9c63dba0 100644
--- a/examples/sites/src/i18n/index.js
+++ b/examples/sites/src/i18n/index.js
@@ -1,10 +1,11 @@
import { createI18n } from 'vue-i18n'
-import { initI18n } from '@opentiny/vue-locale'
+import { initI18n, t } from '@opentiny/vue-locale'
import { $local } from '../tools'
import zh from './zh.json'
import en from './en.json'
+import { zhCN, enUS } from '@opentiny/tiny-vue-mcp'
-const messages = { enUS: en, zhCN: zh }
+const messages = { enUS: { ...en, ...enUS }, zhCN: { ...zh, ...zhCN } }
// $local._lang = $local._lang !== 'zhCN' && $local._lang !== 'enUS' ? 'zhCN' : $local._lang
$local._lang = 'zhCN'
const customCreateI18n = ({ locale, messages }) =>
@@ -26,3 +27,5 @@ const i18nByKey = i18n.global.t
const getWord = (cn, en) => (i18n.global.locale === 'zhCN' ? cn : en)
export { i18n, i18nByKey, getWord }
+
+export { t }
diff --git a/examples/sites/src/main.js b/examples/sites/src/main.js
index d009daa8d5..ac9499d3f4 100644
--- a/examples/sites/src/main.js
+++ b/examples/sites/src/main.js
@@ -2,6 +2,9 @@ import { createHead } from '@vueuse/head'
import { createApp } from 'vue'
import '@unocss/reset/eric-meyer.css'
+// tiny-robot 对话框
+import '@opentiny/tiny-robot/dist/style.css'
+
// markdown文件内代码高亮
import 'prismjs/themes/prism.css'
import 'uno.css'
@@ -16,7 +19,7 @@ import './assets/custom-markdown.css'
import './assets/custom-block.less'
import './assets/md-preview.less'
-import { i18n } from './i18n/index'
+import { i18n, t } from './i18n/index'
import { router } from './router'
import App from './App.vue'
import { appData } from './tools'
@@ -33,6 +36,12 @@ import '@docsearch/css'
import { doSearchEverySite } from './tools/docsearch'
import '@opentiny/vue-theme/dark-theme-index.css'
+import { registerMcpConfig } from '@opentiny/vue-common'
+import { createMcpTools, getTinyVueMcpConfig } from '@opentiny/tiny-vue-mcp'
+
+// 注册TinyVue组件mcp配置
+registerMcpConfig(getTinyVueMcpConfig({ t }), createMcpTools)
+
const envTarget = import.meta.env.VITE_BUILD_TARGET || 'open'
hljs.registerLanguage('javascript', javascript)
diff --git a/examples/sites/src/views/components-doc/common.vue b/examples/sites/src/views/components-doc/common.vue
index c5e47340d9..8abe5e43ef 100644
--- a/examples/sites/src/views/components-doc/common.vue
+++ b/examples/sites/src/views/components-doc/common.vue
@@ -9,7 +9,13 @@