Skip to content

快速开始

OpenTiny NEXT SDK 是一个基于官方 MCP 协议实现的前端智能化解决方案,可以轻松将你的 Web 应用变成智能应用,被 AI 操控。它主要由以下部分组成:

  • 一个核心 SDK,基于 MCP 官方 SDK 实现,简化了原生 MCP 方法,增强了 connect 方法,适用于 Web 应用
  • 一个遥控器,集成了 TinyRobot AI 对话框,可以用对话方式操控 Web 应用,支持手机扫码遥控

NEXT SDK 支持通过各种主流 MCP Host 对智能应用进行操控,支持主流大模型,支持主流 AI 对话框,支持 Vue、React、Angular 主流前端框架。

让你的应用智能化

使用 OpenTiny NEXT SDK,只需要以下四步,就可以把你的 Web 应用变成智能应用。

第一步:安装 NEXT SDK:

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',
  sessionId: '5f8edea7-e3ae-4852-a334-1bb6b3a1cfa9'
})

完成以上步骤,你的 Web 应用就变成了一个智能应用,就可以被 AI 操控,你可以通过各类 MCP Host 操控智能应用

我们还提供了一个网页版本的 AI 对话框,这个 AI 对话框支持 PC 端和手机端,它就像一个遥控器,你可以通过这个遥控器操控你的 Web 应用。

第四步:引入并使用遥控器:

安装遥控器:

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="5f8edea7-e3ae-4852-a334-1bb6b3a1cfa9" />
</template>

这时你的 Web 应用右下角会出现一个图标,这就是遥控器的入口,你可以将鼠标悬浮到这个图标上,选择:

  • 弹出 AI 对话框,你的 Web 应用侧边会打开一个 AI 对话框
  • 弹出二维码,手机扫码之后会打开手机端的遥控器

不管是通过弹出 AI 对话框,还是通过手机扫码,你都可以通过对话方式让 AI 代替你操作 Web 应用,提升完成任务的效率。

浏览器直接引入

你也可以直接通过浏览器 HTML 标签导入 NEXT SDK,这样就可以使用全局变量 WebMCP 了。

html
<html>
  <head>
    <!-- 导入 NEXT SDK -->
    <script src="https://unpkg.com/@opentiny/next-sdk@0.1/dist/index.umd.js"></script>
  </head>
  <body>
    <script>
      (async () => {
        const { WebMcpServer, createMessageChannelPairTransport, z, WebMcpClient } = WebMCP;
        const [serverTransport, clientTransport] = createMessageChannelPairTransport();

        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",
          sessionId: "5f8edea7-e3ae-4852-a334-1bb6b3a1cfa9",
        });

        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);
      })();
    </script>
  </body>
</html>