PubNub MCP Server

by pubnub
Integrations
  • Provides formatted SDK documentation for PubNub's JavaScript SDK, allowing developers to access reference materials for methods like subscribe() and publish() from within Cursor IDE.

  • Supports PubNub functionality through Node.js, allowing users to publish messages to channels, subscribe to channels, fetch message history, and retrieve presence information.

  • Offers access to PubNub's Python SDK documentation, enabling users to fetch docs for methods like publish() directly through Cursor IDE.

Сервер протокола контекста модели PubNub (MCP) для среды разработки курсоров

Этот репозиторий предоставляет сервер Model Context Protocol (MCP) на основе CLI, который предоставляет документацию PubNub SDK и ресурсы PubNub API для инструментов на базе LLM. Это улучшает способность агента LLM AI понимать и взаимодействовать с SDK и API PubNub.

Функции

  • Сервер MCP, предоставляющий инструменты для взаимодействия с PubNub посредством JSON-RPC через STDIN/STDOUT.
  • Получите официальную документацию PubNub SDK (HTML → Markdown) для:
    • Языки: JavaScript, Python, Java, Go, Ruby, Swift, Objective-C, C#, PHP, Rust, Unity, Kotlin, Unreal.
    • Разделы справочника API: конфигурация, публикация и подписка, присутствие, менеджер доступа, группы каналов, хранение и воспроизведение, push-уведомления для мобильных устройств, объекты, файлы, действия с сообщениями, разное, функции.
  • Извлеките концептуальные руководства и практическую документацию PubNub из локальных файлов разметки в каталоге resources (например, pubnub_concepts , pubnub_features , pubnub_security , how_to_send_receive_json , how_to_encrypt_messages_files и т. д.).
  • Публикуйте сообщения в каналах PubNub с помощью publish_pubnub_message , возвращая временной токен.
  • Извлекайте исторические сообщения из одного или нескольких каналов с помощью get_pubnub_messages , возвращая содержимое сообщения и метаданные в формате JSON.
  • Получайте информацию о присутствии в реальном времени (количество пользователей, UUID подписчиков) для каналов и групп каналов с помощью get_pubnub_presence .
  • Создайте пошаговые инструкции по созданию приложения PubNub, включая фрагменты кода для инициализации PubNub SDK на нескольких языках с помощью write_pubnub_app .
  • Конфигурация переменных среды: поддерживает PUBNUB_PUBLISH_KEY и PUBNUB_SUBSCRIBE_KEY для аутентификации операций SDK.
  • Конвертирует удаленные статьи HTML в Markdown с использованием jsdom и turndown для единообразного форматирования документации.
  • Проверка входных данных с помощью схем Zod для всех параметров инструмента, обеспечивающая надежную обработку ошибок.
  • Расширяемые определения инструментов, использующие SDK Model Context Protocol ( @modelcontextprotocol/sdk ) с McpServer и StdioServerTransport .

Примеры подсказок

  • «Напишите приложение PubNub, которое позволит пользователю смотреть потоковое видео с помощью встроенного многопользовательского чата с PubNub».
  • «Напишите приложение PubNub для доставки продуктов по запросу с картой».
  • «Напишите приложение PubNub, которое отслеживает местонахождение посылки в режиме реального времени».
  • «Напишите приложение PubNub, которое показывает прогноз погоды в режиме реального времени».
  • «Напишите приложение PubNub, которое позволит пользователям играть в многопользовательские игры с друзьями».
  • «Напишите приложение PubNub, которое будет показывать актуальные цены акций и новости».
  • «Напишите приложение PubNub, которое позволит пользователям создавать плейлисты и делиться ими с друзьями».
  • «Создайте приложение PubNub JavaScript, которое подписывается на канал my_channel и записывает сообщения в консоль».
  • «Опубликуйте сообщение на канале my_channel с текстом Hello, PubNub! ».
  • «Покажите мне документацию PubNub JavaScript SDK для subscribe() ».
  • «Перечислить все доступные функции PubNub».
  • «Извлеките документацию Python SDK для метода publish() ».
  • «Извлеките историю сообщений для test канала».
  • «Получить информацию о присутствии (занятость и UUID) для test канала и группы каналов default ».

Для этого требуются Node.js (>= 18) и npm ( https://nodejs.org/ ). npx автоматически загрузит и запустит последнюю версию сервера MCP.

Предпосылки

  • Node.js (>= 18) и npm
  • Курсор IDE с поддержкой MCP
  • (Необязательно) Аккаунт PubNub и ключи API для живых примеров

Установка

Предпочтительный способ запустить сервер PubNub MCP локально или добавить его в Cursor IDE через npx:

npx -y @pubnub/mcp

Конфигурация

Для использования серверов MCP курсор должен находиться в РЕЖИМЕ АГЕНТА.

Cursor IDE обнаруживает серверы MCP через файл конфигурации JSON. Настройте сервер 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" } } } }

Конфигурация на основе Docker

Если вы предпочитаете запускать сервер MCP через Docker, установите ключи 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 устанавливает переменные среды для серверного процесса.

Использование в Cursor IDE

  1. Перезапустите Cursor 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. При появлении соответствующего запроса одобрите выполнение ресурсов или включите автоматический запуск в настройках для доверенных ресурсов.

Клод Код

## Install the MCP server if you have node >= 18 claude mcp add pubnub -e PUBNUB_PUBLISH_KEY=your_publish_key -e PUBNUB_SUBSCRIBE_KEY=your_subscribe_key -- npx -y @pubnub/mcp ## Install the MCP server if you have node < 18 and need to point to the full path of node claude mcp add 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 ## Install the MCP server using Docker # Ensure your PubNub keys are set as environment variables: export PUBNUB_PUBLISH_KEY=your_publish_key export PUBNUB_SUBSCRIBE_KEY=your_subscribe_key # Depending on your machine’s CPU architecture, you may need to specify the target platform. # For example: # docker run --platform linux/arm64 -i pubnub/pubnub-mcp-server # docker run --platform linux/amd64 -i pubnub/pubnub-mcp-server claude mcp add pubnub -- docker run -i \ -e PUBNUB_PUBLISH_KEY=$PUBNUB_PUBLISH_KEY \ -e PUBNUB_SUBSCRIBE_KEY=$PUBNUB_SUBSCRIBE_KEY \ pubnub/pubnub-mcp-server

И вывод будет таким:

Added stdio MCP server pubnub with command: npx -y @pubnub/mcp to local config

Пример подсказки

claude "publish a message 'hi' to the 'my_channel' pubnub channel."
claude "publish a message 'hi' to the 'my_channel' pubnub channel." ╭───────────────────────────────────────────────────╮ │ ✻ Welcome to Claude Code research preview! │ │ │ │ /help for help, /status for your current setup │ │ │ │ cwd: /Users/stephen/Projects/mcp-pubnub │ ╰───────────────────────────────────────────────────╯ ※ Tip: Press Option+Enter to send a multi-line message > publish a message 'hi' to the 'my_channel' pubnub channel. ⏺ I'll publish a message to the PubNub channel for you. ⏺ pubnub:publish_pubnub_message (MCP)(channel: "my_channel", message: "hi")… ⎿  Message published successfully. Timetoken: 17467422499409217 ⏺ Message published successfully to "my_channel".

Удалите сервер MCP с помощью:

claude mcp remove pubnub

Использование Claude Desktop

Если вы предпочитаете сервер MCP на базе Docker в Claude Desktop:

  1. Убедитесь, что ваши ключи PubNub экспортированы в вашу оболочку:
    export PUBNUB_PUBLISH_KEY=your_publish_key export PUBNUB_SUBSCRIBE_KEY=your_subscribe_key
  2. В разделе «Инструменты» Claude Desktop добавьте новый инструмент с именем pubnub .
  3. Установите команду docker .
  4. Установите аргументы на:
    [ "run", "-i", "-e", "PUBNUB_PUBLISH_KEY", "-e", "PUBNUB_SUBSCRIBE_KEY", "pubnub/pubnub-mcp-server" ]

Примечание: На некоторых машинах (например, Apple Silicon) может потребоваться указать платформу Docker. Вставьте --platform linux/arm64 (или --platform linux/amd64 ) сразу после "run" в массиве Arguments. Например:

[ "run", "--platform", "linux/arm64", "-i", "-e", "PUBNUB_PUBLISH_KEY", "-e", "PUBNUB_SUBSCRIBE_KEY", "pubnub/pubnub-mcp-server" ]
  1. Сохраните конфигурацию.

Claude Desktop вызовет контейнер сервера PubNub MCP через Docker.

Лицензия

Этот проект лицензирован по лицензии MIT. Подробности см. в файле LICENSE .

Поиск неисправностей

  • Для использования серверов MCP необходимо находиться в режиме агента.
  • Проверьте установку Node.js и npm.
  • Убедитесь, что у index.js есть разрешение на выполнение.
  • Проверьте правильность настроек command , args и env .
  • Проверьте журналы Cursor IDE на наличие ошибок запуска MCP.

Прямое использование командной строки JSON-RPC

Вы можете вызвать сервер MCP напрямую через STDIN/STDOUT с помощью JSON-RPC v2.0. Убедитесь, что ваши ключи PubNub установлены в среде, например:

PUBNUB_PUBLISH_KEY=YOUR_PUBLISH_KEY \ PUBNUB_SUBSCRIBE_KEY=YOUR_SUBSCRIBE_KEY \ node index.js

После запуска сервера (или использования одноразового вызова) отправьте запросы, передав JSON в node index.js . Примеры:

# 1) List available tools echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \ | node index.js # 2) Read PubNub JavaScript SDK documentation echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params": {"name":"read_pubnub_sdk_docs","arguments":{"language":"javascript"}}}' \ | node index.js # 3) Read PubNub Functions Resource docs (static Markdown) echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"read_pubnub_resources","arguments":{"document":"pubnub_functions"}}}' \ | node index.js

Краткие примеры JSON-RPC

Ниже приведены упрощенные примеры командной строки JSON-RPC v2.0 с использованием STDIN/STDOUT для получения документации PubNub SDK и публикации сообщений.

1) Получите документацию PubNub JavaScript SDK

echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"read_pubnub_sdk_docs","arguments":{"language":"javascript"}}}' | node index.js

2) Опубликуйте сообщение на канале PubNub

PUBNUB_PUBLISH_KEY=demo \ PUBNUB_SUBSCRIBE_KEY=demo \ echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"publish_pubnub_message","arguments":{"channel":"my_channel","message":"Hello, PubNub MCP JSON-RPC!"}}}' \ | node index.js

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Сервер протокола контекста модели на базе CLI, который предоставляет документацию PubNub SDK и ресурсы функций инструментам на базе LLM, таким как Cursor IDE, позволяя пользователям получать документацию и взаимодействовать с каналами PubNub с помощью подсказок на естественном языке.

  1. Функции
    1. Примеры подсказок
      1. Предпосылки
        1. Установка
          1. Конфигурация
            1. Глобальная ко��фигурация
            2. Конфигурация проекта
            3. Конфигурация на основе Docker
          2. Использование в Cursor IDE
            1. Клод Код
              1. Пример подсказки
            2. Использование Claude Desktop
              1. Лицензия
                1. Поиск неисправностей
                  1. Прямое использование командной строки JSON-RPC
                    1. Краткие примеры JSON-RPC
                      1. 1) Получите документацию PubNub JavaScript SDK
                      2. 2) Опубликуйте сообщение на канале PubNub

                    Related MCP Servers

                    • -
                      security
                      F
                      license
                      -
                      quality
                      A simple Model Context Protocol server that enables searching and retrieving relevant documentation snippets from Langchain, Llama Index, and OpenAI official documentation.
                      Last updated -
                      Python
                      • Apple
                      • Linux
                    • -
                      security
                      F
                      license
                      -
                      quality
                      A customized MCP server that enables integration between LLM applications and documentation sources, providing AI-assisted access to LangGraph and Model Context Protocol documentation.
                      Last updated -
                      Python
                      • Linux
                      • Apple
                    • A
                      security
                      A
                      license
                      A
                      quality
                      A Model Context Protocol server that loads multiple OpenAPI specifications and exposes them to LLM-powered IDE integrations, enabling AI to understand and work with your APIs directly in development tools like Cursor.
                      Last updated -
                      7
                      292
                      7
                      TypeScript
                      MIT License

                    View all related MCP servers

                    MCP directory API

                    We provide all the information about MCP servers via our MCP API.

                    curl -X GET 'https://glama.ai/api/mcp/v1/servers/pubnub/pubnub-mcp-server'

                    If you have feedback or need assistance with the MCP directory API, please join our Discord server