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.

Servidor de protocolo de contexto de modelo (MCP) de PubNub para Cursor IDE

Este repositorio proporciona un servidor de Protocolo de Contexto de Modelo (MCP) basado en CLI que expone la documentación del SDK de PubNub y los recursos de la API de PubNub a herramientas basadas en LLM. Esto mejora la capacidad del Agente de IA de LLM para comprender e interactuar con los SDK y las API de PubNub.

Características

  • Servidor MCP que expone herramientas para interactuar con PubNub a través de JSON-RPC sobre STDIN/STDOUT.
  • Recupere la documentación oficial del SDK de PubNub (HTML → Markdown) para:
    • Lenguajes: JavaScript, Python, Java, Go, Ruby, Swift, Objective-C, C#, PHP, Rust, Unity, Kotlin, Unreal.
    • Secciones de referencia de API: configuración, publicación y suscripción, presencia, administrador de acceso, grupos de canales, almacenamiento y reproducción, push móvil, objetos, archivos, acciones de mensajes, varios, funciones.
  • Obtenga guías conceptuales de PubNub y documentación práctica desde archivos markdown locales en el directorio resources (por ejemplo, pubnub_concepts , pubnub_features , pubnub_security , how_to_send_receive_json , how_to_encrypt_messages_files , etc.).
  • Publica mensajes en canales de PubNub con publish_pubnub_message y devuelve un token de tiempo.
  • Obtenga mensajes históricos de uno o más canales con get_pubnub_messages y devuelva el contenido del mensaje y los metadatos en JSON.
  • Recupere información de presencia en tiempo real (conteos de ocupación, UUID de suscriptores) para canales y grupos de canales con get_pubnub_presence .
  • Genere instrucciones paso a paso para crear una aplicación PubNub, incluidos fragmentos de código para inicializar el SDK de PubNub en varios idiomas mediante write_pubnub_app .
  • Configuración de la variable de entorno: admite PUBNUB_PUBLISH_KEY y PUBNUB_SUBSCRIBE_KEY para autenticar operaciones del SDK.
  • Convierte artículos HTML remotos a Markdown usando jsdom y turndown para un formato de documentación consistente.
  • Validación de entrada a través de esquemas Zod para todos los parámetros de la herramienta, lo que garantiza un manejo sólido de errores.
  • Definiciones de herramientas extensibles que aprovechan el SDK del Protocolo de Contexto de Modelo ( @modelcontextprotocol/sdk ) con McpServer y StdioServerTransport .

Ejemplos de indicaciones

  • "Escriba una aplicación PubNub que permita al usuario ver videos en streaming con un chat multiusuario integrado con PubNub".
  • "Escriba una aplicación PubNub para la entrega a pedido de comestibles con un mapa".
  • "Escriba una aplicación PubNub que rastree la ubicación de un paquete en tiempo real".
  • "Escribe una aplicación PubNub que muestre el pronóstico del tiempo en tiempo real".
  • "Escribe una aplicación PubNub que permita a los usuarios jugar juegos multijugador con amigos".
  • "Escribe una aplicación PubNub que muestre precios de acciones en vivo y actualizaciones de noticias".
  • "Escribe una aplicación PubNub que permita a los usuarios crear y compartir listas de reproducción con amigos".
  • "Cree una aplicación JavaScript de PubNub que se suscriba al canal my_channel y registre mensajes en la consola".
  • "Publica un mensaje en el canal my_channel con el mensaje Hello, PubNub! "
  • "Muéstrame la documentación del SDK de JavaScript de PubNub para subscribe() ".
  • "Enumere todas las funciones de PubNub disponibles".
  • "Obtenga la documentación del SDK de Python para el método publish() ".
  • "Obtener el historial de mensajes del canal test ".
  • "Recuperar información de presencia (ocupación y UUID) para el canal test y el grupo de canales default ".

Esto requiere Node.js (>= 18) y npm ( https://nodejs.org/ ). npx buscará y ejecutará automáticamente el último servidor MCP.

Prerrequisitos

  • Node.js (>= 18) y npm
  • IDE de cursor con soporte MCP
  • (Opcional) Cuenta de PubNub y claves API para ejemplos en vivo

Instalación

La forma preferida de ejecutar el servidor PubNub MCP localmente o agregarlo a Cursor IDE a través de npx:

npx -y @pubnub/mcp

Configuración

El cursor debe estar en MODO AGENTE para utilizar servidores MCP.

Cursor IDE detecta servidores MCP mediante un archivo de configuración JSON. Configure el servidor MCP de PubNub globalmente o por proyecto.

Configuración global

Editar o crear ~/.cursor/mcp.json :

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

Configuración del proyecto

En el directorio de su proyecto, cree .cursor/mcp.json :

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

Configuración basada en Docker

Si prefiere ejecutar el servidor MCP a través de Docker, configure sus claves PubNub como variables de entorno:

export PUBNUB_PUBLISH_KEY=YOUR_PUBLISH_KEY export PUBNUB_SUBSCRIBE_KEY=YOUR_SUBSCRIBE_KEY

Luego configura tu ~/.cursor/mcp.json (o .cursor/mcp.json en tu proyecto):

{ "mcpServers": { "pubnub": { "command": "docker", "args": [ "run", "-i", "-e", "PUBNUB_PUBLISH_KEY", "-e", "PUBNUB_SUBSCRIBE_KEY", "pubnub/pubnub-mcp-server" ] } } }
  • command especifica el ejecutable para iniciar el servidor MCP.
  • args especifica los argumentos que se pasarán al comando.
  • env establece variables de entorno para el proceso del servidor.

Uso en Cursor IDE

  1. Reinicie Cursor IDE o abra una nueva sesión.
  2. Abra el panel de configuración de MCP y verifique que el servidor pubnub esté incluido en Herramientas y recursos disponibles .
  3. En el chat, invoca los recursos disponibles:
    • pubnub://docs/javascript — Obtener la documentación del SDK de JavaScript de PubNub
    • pubnub://docs/python — Obtener la documentación del SDK de Python de PubNub
    • pubnub://docs/java — Obtener la documentación del SDK de Java de PubNub
    • pubnub://functions — Lista de funciones de PubNub (contenido estático de resources/pubnub_functions.md )
  4. Apruebe la ejecución de recursos cuando se le solicite o habilite la ejecución automática en la configuración para recursos confiables.

Claude Code

## 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

Y el resultado será:

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

Ejemplo de mensaje

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".

Eliminar el servidor MCP con:

claude mcp remove pubnub

Uso de Claude Desktop

Si prefiere el servidor MCP basado en Docker en Claude Desktop:

  1. Asegúrese de que sus claves PubNub se exporten en su shell:
    export PUBNUB_PUBLISH_KEY=your_publish_key export PUBNUB_SUBSCRIBE_KEY=your_subscribe_key
  2. En la sección Herramientas de Claude Desktop, agregue una nueva herramienta llamada pubnub .
  3. Establezca el comando en docker .
  4. Establecer argumentos en:
    [ "run", "-i", "-e", "PUBNUB_PUBLISH_KEY", "-e", "PUBNUB_SUBSCRIBE_KEY", "pubnub/pubnub-mcp-server" ]

Nota: En algunas máquinas (p. ej., Apple Silicon), es posible que deba especificar la plataforma Docker. Inserte --platform linux/arm64 (o --platform linux/amd64 ) inmediatamente después de "run" en la matriz Arguments. Por ejemplo:

[ "run", "--platform", "linux/arm64", "-i", "-e", "PUBNUB_PUBLISH_KEY", "-e", "PUBNUB_SUBSCRIBE_KEY", "pubnub/pubnub-mcp-server" ]
  1. Guardar la configuración.

Claude Desktop invocará el contenedor del servidor PubNub MCP a través de Docker.

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo de LICENCIA para más detalles.

Solución de problemas

  • Debe estar en modo agente para utilizar servidores MCP.
  • Verificar la instalación de Node.js y npm.
  • Asegúrese de que index.js tenga permiso de ejecución.
  • Verifique que las configuraciones command , args y env sean correctas.
  • Revise los registros de Cursor IDE para detectar errores de inicio de MCP.

Uso directo de la línea de comandos JSON-RPC

Puede invocar el servidor MCP directamente a través de STDIN/STDOUT mediante JSON-RPC v2.0. Asegúrese de que sus claves de PubNub estén configuradas en el entorno, por ejemplo:

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

Una vez que el servidor esté en ejecución (o mediante una invocación única), envíe solicitudes canalizando JSON al node index.js . Ejemplos:

# 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

Ejemplos rápidos de JSON-RPC

A continuación se muestran ejemplos simplificados de la línea de comandos JSON-RPC v2.0 que utilizan STDIN/STDOUT para obtener la documentación del SDK de PubNub y publicar mensajes.

1) Obtener la documentación del SDK de JavaScript de PubNub

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

2) Publicar un mensaje en un canal de 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.

Un servidor de protocolo de contexto de modelo basado en CLI que expone la documentación del SDK de PubNub y los recursos de funciones a herramientas impulsadas por LLM como Cursor IDE, lo que permite a los usuarios obtener documentación e interactuar con los canales de PubNub a través de indicaciones en lenguaje natural.

  1. Características
    1. Ejemplos de indicaciones
      1. Prerrequisitos
        1. Instalación
          1. Configuración
            1. Configuración global
            2. Configuración del proyecto
            3. Configuración basada en Docker
          2. Uso en Cursor IDE
            1. Claude Code
              1. Ejemplo de mensaje
            2. Uso de Claude Desktop
              1. Licencia
                1. Solución de problemas
                  1. Uso directo de la línea de comandos JSON-RPC
                    1. Ejemplos rápidos de JSON-RPC
                      1. 1) Obtener la documentación del SDK de JavaScript de PubNub
                      2. 2) Publicar un mensaje en un canal de 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