# next-sdk
**Repository Path**: wkz/next-sdk
## Basic Information
- **Project Name**: next-sdk
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-25
- **Last Updated**: 2026-03-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenTiny NEXT-SDKs
一套前端智能应用开发工具包,让你的应用瞬间拥有 AI 能力。用 WebMCP + WebSkills,几行代码让「现有业务应用」秒变智能应用
📖 文档 |
🚀 快速开始 |
💡 使用场景 |
🛠️ 参与开发
---
**OpenTiny NEXT-SDKs** 是一套前端智能应用开发工具包,基于 Web 版 MCP 协议,通过「WebMCP + WebSkills」的模式,把你现有前端/业务系统中的页面操作、数据查询、业务流程等封装成可被 AI 调用的工具,让存量应用在**几乎零改造**的前提下快速接入智能化能力。
## 📑 目录
- [✨ 主要特性](#-主要特性)
- [📦 核心包说明](#-核心包说明)
- [🚀 快速开始](#-快速开始)
- [🌐 浏览器直接引入](#-浏览器直接引入)
- [💡 核心概念](#-核心概念)
- [📖 使用场景](#-使用场景)
- [🛠️ 参与开发](#️-参与开发)
- [📚 相关资源](#-相关资源)
- [WebMCP + WebSkills 最佳实践工程](#webmcp--webskills-最佳实践工程)
- [❓ 常见问题](#-常见问题)
- [📄 许可证](#-许可证)
## ✨ 主要特性
- 🎯 **存量应用智能化改造优先**:面向「已有系统」,通过 WebMCP + WebSkills 将现有 API、页面操作、业务流程暴露给 AI,无需大规模重构
- 🔌 **WebMCP 协议实现**:完整实现 Model Context Protocol(MCP)的浏览器版本,让前端也能像「后端工具服务」一样被 AI 调用
- 🧩 **WebSkills 抽象**:以「业务技能 WebSkills」的方式组织和注册工具,一套能力既可服务 AI 对话,也可复用在自动化流程中
- 🤖 **AI 对话组件**:提供开箱即用的 AI 对话框组件(`@opentiny/next-remoter`),对话即远程操控你的业务系统
- 🔄 **适配器层**:可将任意前端 AI 对话组件快速接入 WebAgent / WebMCP 服务
- 🌐 **多模态支持**:支持文字、语音等多模态输入,抹平不同 LLM 之间的差异
- 📱 **二维码功能**:动态生成二维码,让企业应用的 MCP 服务快速接入 AI 对话框
- 🎪 **遥控器模式**:提供 PC 端和移动端遥控器,通过对话方式操控前端应用
## 📦 核心包说明
### @opentiny/next-sdk(当前包)
核心 SDK 包,提供:
- **WebMcpServer**:MCP 服务端实现,将前端功能声明为 MCP 工具(WebSkills 的承载容器)
- **WebMcpClient**:MCP 客户端实现,连接 WebAgent 和其他 MCP 服务
- **WebAgent**:前端智能代理核心逻辑
- **McpSdk**:MCP SDK 封装
- **Transport 层**:支持多种通信方式(MessageChannel、SSE、HTTP 等)
- **工具函数和类型定义**:完整的 TypeScript 类型支持
### @opentiny/next-remoter
基于 `@opentiny/tiny-robot` 开发的 Vue3 AI 对话组件,提供:
- 完整的 AI 对话界面
- MCP 插件市场
- 扫码添加应用功能
- 多模型切换支持
- 生成式 UI 渲染
详见:[@opentiny/next-remoter 文档](../next-remoter/README.md)
## 🚀 快速开始
使用 OpenTiny NEXT-SDKs,只需要以下四步,就可以把你的前端/业务应用通过 WebMCP + WebSkills 变成可被 AI 操控的智能应用:
### 第一步:安装依赖
```bash
npm install @opentiny/next-sdk
```
### 第二步:创建 MCP Server 并注册工具
```typescript
import { WebMcpServer, createMessageChannelPairTransport, z } from '@opentiny/next-sdk'
// 创建通信通道
const [serverTransport, clientTransport] = createMessageChannelPairTransport()
// 创建 MCP Server
const server = new WebMcpServer({
name: 'my-app-server',
version: '1.0.0'
})
// 注册工具
server.registerTool('demo-tool', {
title: '演示工具',
description: '这是一个演示工具',
inputSchema: {
foo: z.string().describe('输入参数')
},
}, async (params) => {
console.log('接收到参数:', params)
return {
content: [{
type: 'text',
text: `已处理: ${params.foo}`
}]
}
})
// 连接 Server Transport
await server.connect(serverTransport)
```
### 第三步:创建 MCP Client 并连接 WebAgent
```typescript
import { WebMcpClient } from '@opentiny/next-sdk'
// 创建 MCP Client
const client = new WebMcpClient({
name: 'my-app-client',
version: '1.0.0'
})
// 连接 Client Transport
await client.connect(clientTransport)
// 连接到 WebAgent 服务
const { sessionId } = await client.connect({
agent: true,
url: 'https://agent.opentiny.design/api/v1/webmcp-trial/mcp'
})
console.log('获取到的 sessionId:', sessionId)
```
✅ 完成!现在你的前端应用已经变成智能应用,可以被 AI 操控了。
你可以通过各类 [MCP Host](https://modelcontextprotocol.io/clients) 来操控智能应用。
### 第四步:添加 AI 遥控器(可选)
我们提供了一个开箱即用的 AI 对话框组件,支持 PC 端和移动端,就像一个遥控器,可以通过对话方式操控你的前端应用。
#### 安装遥控器组件
```bash
npm install @opentiny/next-remoter
```
#### 在 Vue 项目中使用并接入 WebSkills 文档
下面示例演示 TinyRemoter 如何通过 `skills` 属性接入 WebSkills 文档,实现对业务能力的**渐进式披露**。**完整工程与各框架最佳实践请直接参考仓库中的示例项目**(见下方 [WebMCP + WebSkills 最佳实践工程](#webmcp--webskills-最佳实践工程))。
```vue
```
#### 遥控器功能
遥控器会在你的应用右下角显示一个图标,悬浮后可以选择:
- 💬 **弹出 AI 对话框**:在应用侧边打开 AI 对话界面
- 📱 **显示二维码**:手机扫码后打开移动端遥控器
不管是 PC 端还是移动端,都可以通过自然语言对话的方式让 AI 帮你操作应用,极大提升工作效率!
## 🌐 浏览器直接引入
你也可以直接通过浏览器 HTML 标签导入 NEXT-SDKs,这样就可以使用全局变量 `WebMCP` 了。
```html
```
## 💡 核心概念
### 架构概览
```
┌─────────────────────────────────────────────────────────────┐
│ 前端应用 │
│ ┌──────────────────┐ ┌───────────────────┐ │
│ │ WebMcpServer │◄────────────►│ WebMcpClient │ │
│ │ (注册工具) │ MessageChannel │ (连接 Agent) │ │
│ └──────────────────┘ └───────────────────┘ │
│ ▲ │ │
└───────────┼──────────────────────────────────┼──────────────┘
│ │
│ ▼
│ ┌─────────────────┐
│ │ WebAgent 服务 │
│ │ (AI + MCP Hub) │
│ └─────────────────┘
│ │
│ ▼
│ ┌─────────────────┐
└─────────────────────────┤ TinyRemoter │
│ (AI 遥控器) │
└─────────────────┘
```
**工作流程:**
1. **WebMcpServer** 在前端应用中注册可用的工具(如查询数据、操作 UI 等)
2. **WebMcpClient** 连接到 **WebAgent 服务**,获取 sessionId
3. **WebAgent** 作为中枢,连接 AI 大模型和各种 MCP 工具
4. **TinyRemoter** 提供用户界面,用户通过自然语言对话操控应用
5. AI 根据用户意图,调用相应的 MCP 工具完成任务
### WebMcpServer
WebMcpServer 是 MCP 服务端的实现,用于将前端应用的功能声明为 MCP 工具。
```typescript
import { WebMcpServer } from '@opentiny/next-sdk'
const server = new WebMcpServer({
name: 'my-app',
version: '1.0.0'
})
// 注册工具
server.registerTool('tool-name', {
title: '工具标题',
description: '工具描述',
inputSchema: { /* Zod schema */ }
}, async (params) => {
// 工具处理逻辑
return { content: [{ type: 'text', text: '结果' }] }
})
```
### WebMcpClient
WebMcpClient 是 MCP 客户端的实现,用于连接 WebAgent 服务和其他 MCP 服务。
```typescript
import { WebMcpClient } from '@opentiny/next-sdk'
const client = new WebMcpClient({
name: 'my-client',
version: '1.0.0'
})
// 连接到 WebAgent
const { sessionId } = await client.connect({
agent: true,
url: 'https://agent.opentiny.design/api/v1/webmcp-trial/mcp'
})
```
### Transport 通信层
NEXT-SDKs 支持多种通信方式:
- **MessageChannel**:浏览器内跨窗口通信
- **SSE**:Server-Sent Events 服务器推送
- **HTTP**:标准 HTTP 请求
```typescript
import { createMessageChannelPairTransport } from '@opentiny/next-sdk'
// 创建 MessageChannel 通信对
const [serverTransport, clientTransport] = createMessageChannelPairTransport()
```
## 📖 使用场景
- **🤝 智能客服**:快速搭建支持工具调用的 AI 客服系统
- **📚 文档助手**:为文档网站添加智能问答功能
- **🛠️ 开发工具**:构建支持代码生成、分析的开发辅助工具
- **🌐 浏览器扩展**:开发具有 AI 能力的浏览器插件
- **🏢 企业应用**:为企业应用添加智能化能力
- **📊 数据分析**:构建智能数据分析和可视化应用
- **✍️ 内容创作**:开发 AI 辅助的内容创作工具
## 🛠️ 参与开发
我们欢迎所有形式的贡献!无论是报告 Bug、提出新功能、改进文档还是提交代码,都非常感谢。
### 环境要求
在开始开发之前,请确保你的环境满足以下要求:
- **Node.js** >= 18.0.0
- **pnpm** >= 8.0.0
- **Git** 最新版本
### 获取代码
```bash
# 克隆项目
git clone https://github.com/opentiny/next-sdk.git
cd next-sdk
# 安装依赖
pnpm install
```
### 项目结构
```
next-sdk/
├── packages/
│ ├── next-sdk/ # 核心 SDK 包
│ │ ├── agent/ # WebAgent 实现
│ │ ├── client/ # WebMCP 客户端
│ │ ├── server/ # WebMCP 服务端
│ │ ├── transport/ # 传输层实现
│ │ ├── McpSdk.ts # MCP SDK 封装
│ │ ├── index.ts # 主入口
│ │ ├── package.json
│ │ └── README.md
│ ├── next-remoter/ # Vue3 AI 对话组件
│ │ ├── src/
│ │ │ ├── components/ # 组件实现
│ │ │ └── composable/ # 组合式函数
│ │ ├── package.json
│ │ └── README.md
│ └── doc-ai/ # 文档示例应用
├── docs/ # 项目文档
├── pnpm-workspace.yaml # pnpm 工作区配置
├── package.json
└── README.md
```
### 开发流程
#### 1. 开发核心 SDK
```bash
# 进入 next-sdk 包目录
cd packages/next-sdk
# 开发模式(支持热重载)
pnpm dev
# 运行测试
pnpm test
# 构建项目
pnpm build
```
#### 2. 开发 Remoter 组件
```bash
# 进入 next-remoter 包目录
cd packages/next-remoter
# 启动开发服务器
pnpm dev
# 浏览器访问 http://localhost:5173
```
#### 3. 调试示例应用
```bash
# 进入 doc-ai 示例目录
cd packages/doc-ai
# 启动开发服务器
pnpm dev
```
### 构建脚本说明
核心 SDK 提供多种构建脚本:
```bash
# 构建所有版本(生产版 + 开发版)
pnpm build:all
# 仅构建生产版本
pnpm build:cdn
# 构建开发版本(包含 source map)
pnpm build:cdn:dev
# 构建特定模块
pnpm build:webAgent # WebAgent 模块
pnpm build:webMcp # WebMCP 模块
pnpm build:mcpSdk # MCP SDK 模块
pnpm build:zod # Zod 验证模块
pnpm build:webMcpFull # WebMCP 完整版本
```
### 代码规范
在提交代码前,请确保代码符合以下规范:
- **TypeScript**:使用 TypeScript 编写类型安全的代码
- **代码风格**:遵循项目的 ESLint 配置
- **命名规范**:
- 文件名:使用 kebab-case(如 `web-mcp-client.ts`)
- 类名:使用 PascalCase(如 `WebMcpClient`)
- 函数名:使用 camelCase(如 `registerTool`)
- 常量:使用 UPPER_SNAKE_CASE(如 `MAX_RETRY_COUNT`)
- **注释**:为关键逻辑添加清晰的中文注释
- **测试**:为新功能添加单元测试
### 提交代码
#### 1. 创建分支
```bash
# 基于主分支创建功能分支
git checkout -b feature/your-feature-name
# 或者创建修复分支
git checkout -b fix/your-bug-fix
```
#### 2. 提交规范
我们使用约定式提交(Conventional Commits)规范:
```bash
# 新功能
git commit -m "feat: 添加 XXX 功能"
# Bug 修复
git commit -m "fix: 修复 XXX 问题"
# 文档更新
git commit -m "docs: 更新 XXX 文档"
# 代码重构
git commit -m "refactor: 重构 XXX 模块"
# 性能优化
git commit -m "perf: 优化 XXX 性能"
# 测试相关
git commit -m "test: 添加 XXX 测试"
# 构建相关
git commit -m "build: 更新构建配置"
# CI 相关
git commit -m "ci: 更新 CI 配置"
```
#### 3. 推送并创建 PR
```bash
# 推送到远程分支
git push origin feature/your-feature-name
# 在 GitHub 上创建 Pull Request
# 填写 PR 描述,说明改动内容和原因
```
### 发布流程
> 注意:发布需要项目维护者权限
```bash
# 1. 更新版本号
# 编辑 packages/next-sdk/package.json 中的 version 字段
# 2. 更新 CHANGELOG
# 记录本次发布的主要变更
# 3. 构建项目
pnpm build:all
# 4. 发布到 npm
cd packages/next-sdk
npm publish
# 或者发布 next-remoter
cd packages/next-remoter
npm publish
```
### 报告问题
如果你发现了 Bug 或有功能建议,请通过以下方式反馈:
1. 访问 [GitHub Issues](https://github.com/opentiny/next-sdk/issues)
2. 点击 "New Issue"
3. 选择合适的 Issue 模板
4. 填写详细的问题描述:
- **Bug 报告**:包括复现步骤、预期行为、实际行为、环境信息等
- **功能建议**:说明需求背景、期望功能、使用场景等
### 参与讨论
- 加入 [OpenTiny 社区](https://github.com/opentiny/next-sdk/discussions)
- 关注 [OpenTiny 官网](https://opentiny.design)
- 在 Issue 中参与技术讨论
- 帮助回答其他开发者的问题
## 📚 相关资源
### 官方文档
- [OpenTiny NEXT-SDKs 官方文档](https://docs.opentiny.design/next-sdk/)
- [TinyRobot Remoter 组件文档](https://docs.opentiny.design/next-sdk/guide/tiny-robot-remoter.html)
- [API 参考文档](https://docs.opentiny.design/next-sdk/api/)
### 相关项目
- [OpenTiny](https://github.com/opentiny) - OpenTiny 组织主页
- [TinyVue](https://github.com/opentiny/tiny-vue) - 企业级 Vue 组件库
- [TinyEngine](https://github.com/opentiny/tiny-engine) - 低代码引擎
- [TinyRobot](https://github.com/opentiny/tiny-robot) - AI 对话组件
### WebMCP + WebSkills 最佳实践工程
推荐直接参考以下示例项目,按你使用的技术栈克隆或对照实现:
| 技术栈 | 示例工程 | 说明 |
|----------|----------|------|
| **Vue** | [doc-ai](packages/doc-ai) | Vue3 + Vite,本地 WebMCP Server、skills 文档(Markdown)与 TinyRemoter 集成 |
| **Angular** | [doc-ai-angular](packages/doc-ai-angular) | Angular 主应用 + iframe Remoter,通过 MessageChannel 与 WebMCP 打通 |
| **React** | [doc-ai-react](packages/doc-ai-react) | React 主应用 + iframe Remoter,与 Vue 版类似的 WebMCP + WebSkills 架构 |
配套文档:
- [Vue 集成 WebMCP 最佳实践](docs/guide/vue-webmcp-best-practice.md)
- [Angular 集成 WebMCP 最佳实践](docs/guide/angular-webmcp-best-practice.md)
### 其他示例项目
- [next-wxt](packages/next-wxt) - 浏览器扩展示例(WXT 框架)
### MCP 协议
- [Model Context Protocol 官方文档](https://modelcontextprotocol.io/)
- [MCP Specification](https://spec.modelcontextprotocol.io/)
- [MCP SDK](https://github.com/modelcontextprotocol/sdk)
### 外部链接
- [GitHub 仓库](https://github.com/opentiny/next-sdk)
- [NPM 包 - @opentiny/next-sdk](https://www.npmjs.com/package/@opentiny/next-sdk)
- [NPM 包 - @opentiny/next-remoter](https://www.npmjs.com/package/@opentiny/next-remoter)
- [问题反馈](https://github.com/opentiny/next-sdk/issues)
- [贡献指南](https://github.com/opentiny/next-sdk/blob/main/CONTRIBUTING.md)
## ❓ 常见问题
### 1. 如何获取 sessionId?
通过 WebMcpClient 连接 WebAgent 服务后自动获取:
```typescript
const { sessionId } = await client.connect({
agent: true,
url: 'https://agent.opentiny.design/api/v1/webmcp-trial/mcp'
})
```
### 2. 如何自定义 MCP 工具?
使用 `server.registerTool()` 注册自定义工具:
```typescript
server.registerTool('my-tool', {
title: '我的工具',
description: '工具描述',
inputSchema: {
param1: z.string(),
param2: z.number()
}
}, async (params) => {
// 实现工具逻辑
return { content: [{ type: 'text', text: '执行结果' }] }
})
```
### 3. 支持哪些大语言模型?
NEXT-SDKs 支持所有兼容 AI SDK 的大语言模型,包括:
- OpenAI(GPT-4、GPT-3.5 等)
- DeepSeek
- Anthropic Claude
- 通义千问
- 文心一言
- 其他自定义模型
### 4. 如何处理跨域问题?
WebMCP 使用 MessageChannel 进行跨窗口通信,不受浏览器跨域限制。如果需要连接远程 MCP 服务,服务端需要正确配置 CORS。
### 5. 能否在 React 项目中使用?
可以!NEXT-SDKs 的核心功能与框架无关。虽然 `@opentiny/next-remoter` 是 Vue3 组件,但你可以:
- 直接使用核心 SDK(`@opentiny/next-sdk`)
- 基于核心 SDK 开发 React 版本的对话组件
- 使用浏览器直接引入方式
## 📄 许可证
[MIT](https://github.com/opentiny/next-sdk/blob/main/LICENSE)
Copyright (c) 2024-present OpenTiny Team
## 🙏 致谢
感谢所有为 OpenTiny NEXT-SDKs 项目做出贡献的开发者!
[](https://github.com/opentiny/next-sdk/graphs/contributors)
---
如有任何问题或建议,欢迎提交 [Issue](https://github.com/opentiny/next-sdk/issues) 或 [Pull Request](https://github.com/opentiny/next-sdk/pulls)。