Skip to content
Appearance
快速开始
OpenTiny NEXT-SDKs 是一套前端智能应用开发工具包,旨在简化 WebAgent 的集成与使用,支持多种编程语言和前端框架,帮助开发者快速实现智能化功能。
- 核心 SDK (包括 TypeScript, Python, Java 等版本) 提供简化的 API 封装与 WebAgent 服务的连接、认证等逻辑,同时提供易用的 API 让开发者将企业应用的前端功能声明为 MCP Server。
- 针对不同前端框架(Vue、React、Angular、Vanilla)特性,提供 API 以降低用户在特定前端框架中的使用 MCP Server 和连接 WebAgent 的难度。
- 提供一个适配器层,可以将任意前端 AI 对话框组件(包括 TinyRobot 组件)快速接入 WebAgent 服务。
- 支持抹平不同 LLM 差异,支持文字、语音等多模态输入,使得 AI 对话框连接的 LLM 支持受控端的 MCP 工具调用。
- 提供动态生成二维码功能,让企业应用里的 MCP 服务成为 AI 对话框里可以让 Agent 调用的工具。
让你的应用智能化
使用 OpenTiny NEXT-SDKs,只需要以下四步,就可以把你的前端应用变成智能应用。
第一步:安装 NEXT-SDKs
shell
npm i @opentiny/next-sdk
第二步:创建 WebMcpServer ,并与 ServerTransport 连接
typescript
import { WebMcpServer, createMessageChannelPairTransport, z } from '@opentiny/next-sdk'
const [serverTransport, clientTransport] = createMessageChannelPairTransport()
const server = new WebMcpServer()
server.registerTool(
'demo-tool',
{
title: '演示工具',
description: '一个简单工具',
inputSchema: { foo: z.string() }
},
async (params) => {
console.log('params:', params)
return { content: [{ type: 'text', text: `收到: ${params.foo}` }] }
}
)
await server.connect(serverTransport)
第三步:创建 WebMcpClient ,并与 WebAgent 连接
typescript
import { WebMcpClient } from '@opentiny/next-sdk'
const client = new WebMcpClient()
await client.connect(clientTransport)
const { sessionId } = await client.connect({
agent: true,
url: 'https://agent.opentiny.design/api/v1/webmcp-trial/mcp'
})
完成以上步骤,你的前端应用就变成了一个智能应用,就可以被 AI 操控,你可以通过各类 MCP Host 操控智能应用。
我们还提供了一个网页版本的 AI 对话框,这个 AI 对话框支持 PC 端和手机端,它就像一个遥控器,你可以通过这个遥控器操控你的前端应用。
第四步:引入并使用遥控器
安装遥控器:
shell
npm i @opentiny/next-remoter
在 App.vue 中使用遥控器:
vue
<script setup lang="ts">
import { TinyRemoter } from '@opentiny/next-remoter'
import '@opentiny/next-remoter/dist/style.css'
</script>
<template>
<tiny-remoter session-id="your-session-id" />
</template>
这时你的前端应用右下角会出现一个图标,这就是遥控器的入口,你可以将鼠标悬浮到这个图标上,选择:
- 弹出 AI 对话框,你的前端应用侧边会打开一个 AI 对话框
- 弹出二维码,手机扫码之后会打开手机端的遥控器
不管是通过弹出 AI 对话框,还是通过手机扫码,你都可以通过对话方式让 AI 代替你操作前端应用,提升完成任务的效率。
浏览器直接引入
你也可以直接通过浏览器 HTML 标签导入 NEXT-SDKs ,这样就可以使用全局变量 WebMCP
了。
html
<html>
<head>
<!-- 导入 NEXT-SDKs -->
<script src="https://unpkg.com/@opentiny/next-sdk@0.1/dist/webmcp-full.js"></script>
</head>
<body>
<script>
;(async () => {
const { WebMcpServer, createMessageChannelPairTransport, z, WebMcpClient } = WebMCP
const [serverTransport, clientTransport] = createMessageChannelPairTransport()
const server = new WebMcpServer()
server.registerTool(
'demo-tool',
{
title: '演示工具',
description: '一个简单工具',
inputSchema: { foo: z.string() }
},
async (params) => {
console.log('params:', params)
return { content: [{ type: 'text', text: `收到: ${params.foo}` }] }
}
)
await server.connect(serverTransport)
const client = new WebMcpClient()
await client.connect(clientTransport)
const { sessionId } = await client.connect({
agent: true,
url: 'https://agent.opentiny.design/api/v1/webmcp-trial/mcp'
})
console.log('sessionId:', sessionId)
})()
</script>
</body>
</html>