返回市场
PubNub-MCP-服务器

PubNub-MCP-服务器

作者:pubnub7 星标更新:2025-11-21

项目介绍

MCP Server Logo

Verified on MseeP

MseeP.ai Security Assessment Badge

PubNub 模型上下文协议 (MCP) 服务器用于光标IDE

此仓库提供了一个基于CLI的模型上下文协议 (MCP) 服务器,该服务器公开了PubNub SDK文档和PubNub API资源给LLM驱动工具。 这提高了LLM AI代理理解并与PubNub SDK和API交互的能力。

有PubNub MCP vs 无

功能

  • MCP服务器通过STDIN/STDOUT上的JSON-RPC公开与PubNub交互的工具。
  • MCP服务器支持通过提供HTTP_PORT环境变量启用SSE模式。
  • 获取官方PubNub SDK文档(HTML → Markdown):
    • 语言:JavaScript, Python, Java, Go, Ruby, Swift, Objective-C, C#, PHP, Rust, Unity, Kotlin, Unreal。
    • API参考部分:配置、发布和订阅、存在状态、访问管理器、频道组、存储和播放、移动推送、对象、文件、消息操作、杂项、函数。
  • 获取官方PubNub聊天SDK文档(HTML → Markdown):
    • 聊天SDK语言:JavaScript, Kotlin, Swift, Unity, Unreal。
    • 聊天SDK主题:配置、聊天、频道、用户、消息、成员资格、线程频道、线程消息、消息草稿、事件、访问控制、术语表。
  • resources目录中的本地Markdown文件中获取PubNub概念指南和如何文档(例如,pubnub_conceptspubnub_featurespubnub_securityhow_to_send_receive_jsonhow_to_encrypt_messages_files等)。
  • 使用publish_pubnub_message向PubNub频道发布消息,返回时间戳。
  • 使用pubnub_subscribe_and_receive_messages订阅频道并接收实时消息,支持单个或多个消息收集,并可选超时。
  • 使用get_pubnub_messages从一个或多个频道获取历史消息,返回JSON格式的消息内容和元数据。
  • 使用get_pubnub_presence获取频道和频道组的实时存在信息(占用计数、订阅者UUID)。
  • 使用write_pubnub_app生成创建PubNub应用程序的逐步说明,包括使用多种语言初始化PubNub SDK的代码片段。
  • 使用manage_pubnub_account管理PubNub账户应用和API密钥,支持应用和API密钥的创建、列出和删除操作。
  • 环境变量配置:支持PUBNUB_PUBLISH_KEYPUBNUB_SUBSCRIBE_KEY用于验证SDK操作。
  • 使用jsdomturndown将远程HTML文章转换为Markdown,以保持一致的文档格式。
  • 通过Zod模式对所有工具参数进行输入验证,确保强大的错误处理。
  • 利用模型上下文协议SDK(@modelcontextprotocol/sdk)扩展工具定义,使用McpServerStdioServerTransport
<a href="https://glama.ai/mcp/servers/@pubnub/pubnub-mcp-server"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=420368611,1106132355&fm=3081&app=3081&f=PNG?w=760&h=400" alt="PubNub Server MCP服务器" /> </a>

示例提示

  • "编写一个PubNub应用程序,让用户观看内置多用户聊天的流媒体视频。"
  • "编写一个PubNub应用程序,用于按需交付带有地图的杂货。"
  • "编写一个PubNub应用程序,实时跟踪包裹的位置。"
  • "编写一个PubNub应用程序,实时显示天气预报。"
  • "编写一个PubNub应用程序,让用户与朋友一起玩多人游戏。"
  • "编写一个PubNub应用程序,显示实时股票价格和新闻更新。"
  • "编写一个PubNub应用程序,让用户创建并与朋友分享播放列表。"
  • "构建一个订阅my_channel频道并记录消息到控制台的PubNub JavaScript应用程序。"
  • "向my_channel频道发布一条消息,内容为Hello, PubNub!。"
  • "订阅my_channel频道并等待一条消息。"
  • "订阅notifications频道并收集5条消息,超时时间为30秒。"
  • "在alerts频道上监听10秒的消息。"
  • "给我展示PubNub JavaScript SDK文档中的subscribe()方法。"
  • "列出所有可用的PubNub函数。"
  • "获取Python SDK文档中的publish()方法。"
  • "获取test频道的消息历史。"
  • "获取test频道和default频道组的存在信息(占用和UUID)。"
  • "列出我所有的PubNub应用程序。"
  • "列出我PubNub账户中的所有API密钥。"
  • "在我的PubNub账户中创建一个新的应用程序。"
  • "在我的PubNub账户中创建一个新的API密钥。"
  • "从我的PubNub账户中删除测试应用程序。"
  • "从我的PubNub账户中删除测试API密钥。"

这需要Node.js(>= 18)和npm(https://nodejs.org/)。 npx会自动获取并运行最新的MCP服务器。

前提条件

  • Node.js(>= 18)和npm
  • 支持MCP的光标IDE
  • (可选)具有实时示例的PubNub帐户和API密钥

安装

首选方式是通过npx在本地运行PubNub MCP服务器或将它添加到光标IDE中:

npx -y @pubnub/mcp

配置

光标必须处于AGENT MODE才能使用MCP服务器。

光标IDE通过JSON配置文件发现MCP服务器。 全局或按项目配置PubNub MCP服务器。

全局配置

编辑或创建~/.cursor/mcp.json

{
  "mcpServers": {
    "pubnub": {
      "command": "npx",
      "args": ["-y", "@pubnub/mcp"],
      "env": {
        "PUBNUB_PUBLISH_KEY": "YOUR_PUBLISH_KEY",
        "PUBNUB_SUBSCRIBE_KEY": "YOUR_SUBSCRIBE_KEY"
      }
    }
  }
}

项目配置

在你的项目目录中,创建.cursor/mcp.json

{
  "mcpServers": {
    "pubnub": {
      "command": "npx",
      "args": ["-y", "@pubnub/mcp"],
      "env": {
        "PUBNUB_PUBLISH_KEY": "YOUR_PUBLISH_KEY",
        "PUBNUB_SUBSCRIBE_KEY": "YOUR_SUBSCRIBE_KEY"
      }
    }
  }
}

环境变量

PubNub MCP服务器支持以下环境变量:

  • PUBNUB_PUBLISH_KEY:您的PubNub发布密钥(发布消息所需)
  • PUBNUB_SUBSCRIBE_KEY:您的PubNub订阅密钥(订阅和消息历史所需)

基于Docker的配置

如果您更喜欢通过Docker运行MCP服务器,请设置您的PubNub密钥作为环境变量:

export PUBNUB_PUBLISH_KEY=YOUR_PUBLISH_KEY
export PUBNUB_SUBSCRIBE_KEY=YOUR_SUBSCRIBE_KEY

然后配置您的~/.cursor/mcp.json(或项目中的.cursor/mcp.json):

{
  "mcpServers": {
    "pubnub": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "-e",
        "PUBNUB_PUBLISH_KEY",
        "-e",
        "PUBNUB_SUBSCRIBE_KEY",
        "pubnub/pubnub-mcp-server"
      ]
    }
  }
}
  • command指定启动MCP服务器的可执行文件。
  • args指定传递给命令的参数。
  • env为服务器进程设置环境变量。

SSE模式

要启用服务器发送事件(SSE)HTTP传输,请导出HTTP_PORT环境变量并启动MCP服务器。确保您的PubNub API密钥已设置在环境中:

export PUBNUB_PUBLISH_KEY=YOUR_PUBLISH_KEY
export PUBNUB_SUBSCRIBE_KEY=YOUR_SUBSCRIBE_KEY
export HTTP_PORT=3000

使用NPX

# 在端口3000上使用NPX启动SSE模式的MCP服务器
npx -y @pubnub/mcp

使用Docker

# 在端口3000上使用Docker启动SSE模式的MCP服务器
docker run -i \
  -e PUBNUB_PUBLISH_KEY=$PUBNUB_PUBLISH_KEY \
  -e PUBNUB_SUBSCRIBE_KEY=$PUBNUB_SUBSCRIBE_KEY \
  -e HTTP_PORT=$HTTP_PORT \
  pubnub/pubnub-mcp-server

聊天SDK模式

PubNub MCP服务器支持一种专门的聊天SDK模式,专注于PubNub聊天SDK文档和功能。启用--chat-sdk标志时,服务器提供精简的聊天SDK资源访问,同时排除通用的PubNub SDK工具。

主要特点

  • 专注的聊天SDK文档:访问官方PubNub聊天SDK文档,适用于JavaScript、Kotlin、Swift、Unity和Unreal。
  • 特定聊天主题:配置、聊天、频道、用户、消息、成员资格、线程频道、线程消息、消息草稿、事件、访问控制和术语表。
  • 精简工具集:排除通用的PubNub工具,减少复杂性,专注于聊天SDK功能。
  • 相同的实时能力:保留消息发布、订阅、历史和存在工具。

使用

命令行

# 使用NPX启用聊天SDK模式
npx -y @pubnub/mcp --chat-sdk

# 直接使用Node.js启用聊天SDK模式
node index.js --chat-sdk

光标IDE配置

全局配置~/.cursor/mcp.json):

{
  "mcpServers": {
    "pubnub-chat": {
      "command": "npx",
      "args": ["-y", "@pubnub/mcp", "--chat-sdk"],
      "env": {
        "PUBNUB_PUBLISH_KEY": "YOUR_PUBLISH_KEY",
        "PUBNUB_SUBSCRIBE_KEY": "YOUR_SUBSCRIBE_KEY"
      }
    }
  }
}

项目配置.cursor/mcp.json):

{
  "mcpServers": {
    "pubnub-chat": {
      "command": "npx",
      "args": ["-y", "@pubnub/mcp", "--chat-sdk"],
      "env": {
        "PUBNUB_PUBLISH_KEY": "YOUR_PUBLISH_KEY",
        "PUBNUB_SUBSCRIBE_KEY": "YOUR_SUBSCRIBE_KEY"
      }
    }
  }
}

Codex CLI集成

# 安装聊天SDK模式MCP服务器
codex mcp add pubnub -e PUBNUB_PUBLISH_KEY=your_publish_key -e PUBNUB_SUBSCRIBE_KEY=your_subscribe_key -- npx -y @pubnub/mcp

Claude Code集成

# 安装聊天SDK模式MCP服务器
claude mcp add --scope user pubnub-chat -e PUBNUB_PUBLISH_KEY=your_publish_key -e PUBNUB_SUBSCRIBE_KEY=your_subscribe_key -- npx -y @pubnub/mcp --chat-sdk

Docker使用

# 设置环境变量
export PUBNUB_PUBLISH_KEY=your_publish_key
export PUBNUB_SUBSCRIBE_KEY=your_subscribe_key

# 在聊天SDK模式下使用Docker运行
docker run -i \
  -e PUBNUB_PUBLISH_KEY=$PUBNUB_PUBLISH_KEY \
  -e PUBNUB_SUBSCRIBE_KEY=$PUBNUB_SUBSCRIBE_KEY \
  pubnub/pubnub-mcp-server --chat-sdk

聊天SDK模式下的可用工具

包含的工具:

  • read_pubnub_chat_sdk_docs - 访问特定语言和主题的聊天SDK文档
  • publish_pubnub_message - 向PubNub频道发布消息
  • get_pubnub_messages - 从频道获取历史消息
  • get_pubnub_presence - 获取实时存在信息
  • pubnub_subscribe_and_receive_messages - 订阅并接收实时消息

排除的工具:

  • read_pubnub_sdk_docs - 通用的PubNub SDK文档
  • write_pubnub_app - PubNub应用程序模板和设置说明
  • read_pubnub_resources - 通用的PubNub概念指南
  • manage_pubnub_account - PubNub账户管理

聊天SDK模式示例提示

  • "给我展示JavaScript聊天SDK文档中的用户管理部分"
  • "获取Swift聊天SDK配置文档"
  • "如何使用Kotlin聊天SDK实现线程消息?"
  • "给我展示Unity聊天SDK文档中的消息处理部分"
  • "解释Unreal聊天SDK中的频道管理"
  • "获取实现访问控制的聊天SDK文档"
  • "展示如何在JavaScript聊天SDK中处理消息草稿"
  • "聊天SDK中有哪些成员资格功能?"

在光标IDE中使用

  1. 重启光标IDE或打开新会话。
  2. 打开MCP设置面板,验证pubnub服务器是否列在可用工具和资源下。
  3. 在聊天中调用可用资源:
    • pubnub://docs/javascript — 获取PubNub JavaScript SDK文档
    • pubnub://docs/python — 获取PubNub Python SDK文档
    • pubnub://docs/java — 获取PubNub Java SDK文档
    • pubnub://functions — 列出PubNub函数(来自resources/pubnub_functions.md的静态内容)
  4. 当提示时批准资源执行,或在设置中启用自动运行以信任资源。

实时消息订阅

pubnub_subscribe_and_receive_messages工具提供了实时消息监听功能,允许您订阅PubNub频道并接收发布的消息。此工具自动处理订阅生命周期、消息收集和清理。

主要特点

  • 灵活的消息收集:等待单条消息(默认行为)或指定要收集的消息数量
  • 超时支持:设置可选超时以防止无限等待
  • 自动清理:在收到指定数量的消息或超时后自动取消订阅并清理监听器
  • 结构化响应:返回详细的频道、内容、发布者和时间戳消息信息

使用示例

# 订阅并等待一条消息(默认行为)
"订阅'my_channel'频道并等待一条消息"

# 收集多条消息并设置超时
"订阅'notifications'频道并收集5条消息,超时时间为30秒"

# 仅设置超时监听
"在'alerts'频道上监听10秒的消息"

参数

  • channel(必需):要订阅的PubNub频道名称
  • messageCount(可选,默认值:1):在取消订阅之前要等待的消息数量
  • timeout(可选):以毫秒为单位的超时时间,避免无限等待

响应格式

工具返回一个包含以下内容的JSON对象:

  • channel:已订阅的频道名称
  • messageCount:实际收到的消息数量
  • messages:包含频道、消息内容、发布者、时间戳和订阅信息的消息对象数组

Claude Code

## 如果您有Node.js >= 18,则安装MCP服务器
claude mcp add --scope user pubnub -e PUBNUB_PUBLISH_KEY=your_publish_key -e PUBNUB_SUBSCRIBE_KEY=your_subscribe_key -- npx -y @pubnub/mcp

## 如果您有Node.js < 18且需要指向完整的Node.js路径
claude mcp add --scope user pubnub -e PUBNUB_PUBLISH_KEY=your_publish_key -e PUBNUB_SUBSCRIBE_KEY=your_subscribe_key -- /Users/stephen/.nvm/versions/node/v22.14.0/bin/node /Users/stephen/Projects/mcp-pubnub/index.js

## 使用Docker安装MCP服务器
# 确保您的PubNub密钥设置为环境变量:
export PUBNUB_PUBLISH_KEY=your_publish_key
export PUBNUB_SUBSCRIBE_KEY=your_subscribe_key

# 根据您的机器CPU架构,您可能需要指定目标平台。
# 例如:
#   docker run --platform linux/arm64 -i pubnub/pubnub-mcp-server
#   docker run --platform linux/amd64 -i pubnub/pubnub-mcp-server

claude mcp add --scope user pubnub -- docker run -i \
  -e PUBNUB_PUBLISH_KEY=$PUBNUB_PUBLISH_KEY \
  -e PUBNUB_SUBSCRIBE_KEY=$PUBNUB_SUBSCRIBE_KEY \
  pubnub/pubnub-mcp-server

输出将是:

已将stdio MCP服务器pubnub添加到本地配置,