npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@page-mcp/chat

v3.1.0

Published

Embeddable AI Chat Widget with OpenAI-compatible API + Page MCP integration

Readme

@page-mcp/chat

Page MCP 的可嵌入聊天 UI 包。需要一个开箱即用的聊天组件,并且希望它自动发现通过 @page-mcp/core 暴露出来的页面能力时,使用这个包。

这个包负责什么

  • 渲染浏览器聊天组件
  • 连接 OpenAI 兼容聊天接口
  • 通过共享的 Page MCP bus/client 自动发现 tools 和 prompts
  • 同时支持 direct API mode 和 endpoint mode

什么时候用它

以下场景使用 @page-mcp/chat

  • 你想直接接入一个现成聊天 UI,而不是自己从零写
  • 你已经用 @page-mcp/core 暴露了 tools/resources/prompts
  • 你希望聊天组件自动把这些能力暴露给模型

如果你只需要 MCP 运行时接线,请直接使用 @page-mcp/core

安装

npm install @page-mcp/core
npm install @page-mcp/chat

最小示例

import { EventBus, PageMcpHost } from '@page-mcp/core';
import { init } from '@page-mcp/chat';

const bus = new EventBus();

const host = new PageMcpHost({
  name: 'demo-app',
  version: '1.0.0',
  bus,
});

host.registerTool({
  name: 'search_products',
  description: 'Search products by keyword',
  execute: async (input) => [{ keyword: String(input.keyword ?? '') }],
});

host.start();

const widget = init({
  bus,
  openai: {
    apiKey: 'sk-xxx',
    model: 'gpt-5.2',
  },
  title: 'AI Assistant',
  welcomeMessage: 'How can I help?',
});

两种运行模式

Direct API Mode

聊天组件直接从浏览器向 OpenAI 兼容接口发请求。

适用场景:

  • 可以接受浏览器侧直接访问 API
  • 希望接入方式最简单

Endpoint Mode

聊天组件把请求发给你自己的后端接口。

适用场景:

  • 不希望把 API Key 放到浏览器
  • 需要后端统一做鉴权、请求整形或观测

核心接口

  • init(config)
    • 创建并挂载聊天组件
  • 组件实例方法
    • open()
    • close()
    • destroy()

与其他包的关系

  • @page-mcp/core
    • 提供能力发现所需的 host/client/bus
  • @page-mcp/protocol
    • 提供 chat engine 内部使用的协议类型

这个包负责 UI 层,不负责底层 MCP 运行时初始化。