项目简介

该项目提供了一个基于 Model Context Protocol (MCP) 的服务器实现,旨在将 PubNub 的 SDK 文档、API 功能和相关概念指南暴露给支持 MCP 的 LLM 客户端(如 Cursor IDE、Claude Code 等)。通过与此服务器交互,LLM 能够更准确地理解 PubNub 服务,并生成更相关的代码和解决方案。

主要功能点

本 MCP 服务器提供了以下主要功能,作为工具或资源供 LLM 调用:

  • 访问 PubNub SDK 文档: 获取针对特定编程语言(如 JavaScript, Python, Java 等)和 API 部分(如 发布/订阅, 在线状态, 访问管理器 等)的官方 SDK 文档,通常转换为 Markdown 格式。
  • 访问 PubNub Chat SDK 文档: 获取针对特定语言和主题的 PubNub Chat SDK 文档。
  • 访问 PubNub 概念及操作指南: 提供本地托管的 PubNub 概念、功能、安全以及各类操作(如发送接收 JSON, 加密消息文件等)的 Markdown 文档。
  • 发布 PubNub 消息: 调用 PubNub API 向指定频道发布消息。
  • 获取 PubNub 消息历史: 从一个或多个 PubNub 频道获取历史消息内容及元数据。
  • 获取 PubNub 在线状态信息: 查询指定频道或频道组的实时用户在线状态(如在线人数、用户 UUID)。
  • 生成 PubNub 应用创建指南: 提供创建 PubNub 应用的步骤说明,包括初始化 SDK 的代码示例。

安装步骤

本项目需要 Node.js 环境(版本 >= 18)和 npm。

最推荐的运行方式是使用 'npx',它会自动下载并运行最新的服务器:

  1. 确保您的系统安装了 Node.js (版本 >= 18) 和 npm。
  2. 打开终端或命令行工具。
  3. 运行以下命令启动服务器:
    npx -y @pubnub/mcp

服务器配置

MCP 服务器通常由 MCP 客户端(如支持 MCP 的 IDE 或终端工具)负责启动和管理。客户端需要知道如何启动服务器进程,这通常通过一个 JSON 格式的配置文件来指定。

例如,在 Cursor IDE 中,您可以在 '~/.cursor/mcp.json' 或项目目录下的 '.cursor/mcp.json' 文件中配置该服务器。

配置的基本结构包含服务器名称、启动命令、参数以及可能需要的环境变量。对于 PubNub MCP 服务器,您需要指定启动 'npx @pubnub/mcp' 的命令和参数,并可能需要设置 PubNub 的发布 (Publish Key) 和订阅 (Subscribe Key) 密钥作为环境变量。

一个典型的配置示例说明:

  • '"pubnub"': 您为该服务器指定的名称,用于在客户端中识别。
  • '"command"': 启动服务器的可执行文件或命令,例如 'npx' 或 'node' 或 'docker'。
  • '"args"': 传递给启动命令的参数列表,例如 '["-y", "@pubnub/mcp"]' 或 '["run", "-i", "pubnub/pubnub-mcp-server"]'。
  • '"env"': 启动服务器进程时需要设置的环境变量,例如您的 'PUBNUB_PUBLISH_KEY' 和 'PUBNUB_SUBSCRIBE_KEY'。这些密钥用于 PubNub API 的认证。

客户端会读取此配置,并使用指定的命令和参数启动 MCP 服务器进程,然后通过标准输入/输出来与服务器进行基于 JSON-RPC 的通信。

基本使用方法

一旦 MCP 服务器在您的 LLM 客户端中配置并成功运行,LLM 即可利用服务器提供的能力。具体使用方式取决于您的客户端界面:

  • 访问文档资源: 在支持资源 URI 的客户端中,您可以像访问文件或网页一样访问文档。例如,在 Cursor IDE 中,您可以使用 'pubnub://docs/javascript' 来获取 PubNub JavaScript SDK 文档。
  • 调用工具功能: LLM 可以通过理解您的自然语言请求,识别出需要调用的工具,并构造相应的参数。例如,如果您对 LLM 说 "publish a message 'hello' to channel 'my_channel' pubnub channel.",支持此功能的客户端可能会自动调用 'publish_pubnub_message' 工具并传递 '{ "channel": "my_channel", "message": "hello" }' 作为参数。

请查阅您的 LLM 客户端文档,了解如何在用户界面中列出可用的 MCP 工具和资源,以及如何通过自然语言或特定语法触发它们的调用。

信息

分类

开发者工具