
Сервер протокола контекста модели 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.
Related MCP server: Code Summarizer MCP
Примеры подсказок
«Напишите приложение 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
Перезапустите Cursor IDE или откройте новый сеанс.
Откройте панель настроек MCP и убедитесь, что сервер pubnub указан в разделе «Доступные инструменты и ресурсы» .
В чате вызовите доступные ресурсы:
pubnub://docs/javascript— Получить документацию PubNub JavaScript SDKpubnub://docs/python— Получить документацию PubNub Python SDKpubnub://docs/java— Получить документацию PubNub Java SDKpubnub://functions— Список функций PubNub (статический контент изresources/pubnub_functions.md)
При появлении соответствующего запроса одобрите выполнение ресурсов или включите автоматический запуск в настройках для доверенных ресурсов.
Клод Код
## 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:
Убедитесь, что ваши ключи PubNub экспортированы в вашу оболочку:
export PUBNUB_PUBLISH_KEY=your_publish_key export PUBNUB_SUBSCRIBE_KEY=your_subscribe_keyВ разделе «Инструменты» Claude Desktop добавьте новый инструмент с именем pubnub .
Установите команду
docker.Установите аргументы на:
[ "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" ]
Сохраните конфигурацию.
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.js2) Опубликуйте сообщение на канале 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