Token导航 LogoToken导航TokenDH.com
MCP Widgets logo
开发工具未说明官方级别未说明来源级核验

MCP Widgets

MCP Server

用于在AI助手(如ChatGPT)中渲染MCP工具响应的UI组件库,提供轻量级和丰富的数据展示功能。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
开发工具TypeScript命令行工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

chatbotkit

提供方

chatbotkit

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MCP小部件

用于在ChatGPT等AI助手中呈现MCP(模型上下文协议)工具响应的UI小部件。

概述

当MCP工具返回数据时,AI助手可以使用自定义UI小部件而不是纯文本来显示它。此软件包提供了可以通过简单的 `` 标签。

安装

npm install mcp-widgets
# or
pnpm add mcp-widgets

小部件

小部件框架大小描述
data-cardWeb小部件~3KB简单键值数据显示
rich-data-cardReact~148KB增强的卡片,带有部分、图标和页脚

用法

CDN嵌入(用于MCP工具)

通过CDN加载小部件并将其用作自定义HTML元素:

作为React库

import { RichDataCard } from 'mcp-widgets'

function MyWidget() {
  return (
    
  )
}

嵌入是如何工作的

MCP工具响应流程

  1. 用户提问 在ChatGPT中(例如,“天气怎么样?”)
  2. ChatGPT调用您的MCP工具 返回结构化数据
  3. 您的工具响应包括HTML 带着一个 `` 指向CDN托管小部件的标签
  4. ChatGPT呈现HTML 在沙盒iframe中
  5. 小部件加载并显示 数据可视化

MCP工具响应示例

当您的MCP服务器处理工具调用时,返回嵌入小部件的HTML:

// In your MCP server tool handler
function handleWeatherTool(location) {
  const data = fetchWeather(location)

  return {
    content: [
      {
        type: 'text',
        text: `
        
        
      `,
      },
    ],
  }
}

OpenAI天桥API

加载器通过以下方式处理与ChatGPT主机的通信 window.openai小部件本身不应该直接调用这些API——加载器管理高度通知和道具提取。

可用的主机API(由加载器使用):

// Notify ChatGPT of widget height (takes a number)
window.openai.notifyIntrinsicHeight(document.body.scrollHeight)

// Access tool response metadata for props
window.openai.toolResponseMetadata._meta

请参阅 OpenAI应用SDK文档 对于完整 window.openai API参考。

安全考虑

  • 小部件在功能有限的沙盒iframe中运行
  • 数据通过HTML属性传递(必须是JSON字符串化的)
  • 无法直接访问父页面或用户会话
  • CDN URL应使用HTTPS

小部件参考

``

一个轻量级的Web小部件(不依赖于React)。

属性类型描述
titlestring卡片标题
dataJSON字符串要显示的键值对
statussuccesserrorwarninginfo状态指示器样式

``

一个基于React的小部件,具有更多功能。

属性类型描述
titlestring卡片标题
descriptionstring字幕文本
icon字符串表情符号或图标字符
dataJSON字符串主数据段
sectionsJSON字符串数组 {title, data} 章节
footerstring页脚文本
statussuccesserrorwarninginfo状态样式

发展

# Install dependencies
pnpm install

# Start Storybook
pnpm dev

# Run tests
pnpm test

# Build everything
pnpm build

# Build CDN bundles only
pnpm build:cdn

创建新小部件

  1. 在中创建文件夹 src/widgets/{widget-name}/
  2. 添加所需文件:

- WidgetName.ts (Web小部件)或 WidgetName.tsx (反应) - manifest.json -小部件元数据 - cdn.tscdn.tsx -CDN入口点 - index.ts -库导出

  1. 出口自 src/widgets/index.ts
  2. pnpm build 生成捆绑包

叉车和定制系列

这个存储库是为分叉而设计的!您有两个选择:

选项1:私人小部件集合

分叉此仓库以创建您自己的私有小部件库:

  1. 分叉 将此存储库添加到您的GitHub帐户/组织
  2. 添加您的小部件 遵循上述结构
  3. 私人主持 通过发布到私有npm注册表或从您自己的基础设施提供CDN捆绑包
  4. 在MCP工具中使用 通过指向您的私有CDN URL

这非常适合:

  • 具有自定义品牌的专有UI小部件
  • 具有敏感设计的内部工具
  • 与私有API集成的小部件

选项2:回馈

我们欢迎社区捐款!如果你构建了一个可以使他人受益的小部件:

  1. 分叉 此存储库
  2. 创建您的小部件 遵循现有模式
  3. 添加测试和故事书故事
  4. 提交拉取请求 带有您的小部件的描述

社区小部件的好候选者:

  • 通用数据可视化(图表、表格、地图)
  • 常见的工具响应模式(搜索结果、确认)
  • 可访问性改进
  • 性能优化

托管自己的CDN

如果您分叉并希望自托管CDN捆绑包:

# Build the CDN bundles
pnpm build:cdn

# The cdn/ directory contains all bundles
# Upload to your preferred hosting:
# - GitHub Pages
# - Cloudflare R2/Pages
# - AWS S3 + CloudFront
# - Vercel/Netlify

然后在MCP工具响应中引用您的托管包:

许可证

麻省理工学院

目录标签

目录标签

开发工具TypeScript命令行工具UI组件本地部署数据展示AI助手集成前端开发React组件

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP