PubNub MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HTTP_PORT | No | Port number to enable Server-Sent Events (SSE) HTTP transport mode | |
| PUBNUB_PUBLISH_KEY | No | Your PubNub publish key (required for publishing messages) | |
| PUBNUB_SUBSCRIBE_KEY | No | Your PubNub subscribe key (required for subscribing and message history) | |
| MCP_SUBSCRIBE_ANALYTICS_DISABLED | No | Set to 'true' to disable the PubNub server analytics subscription |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_sdk_documentation | Retrieve Core SDK documentation for low-level real-time features. |
| get_chat_sdk_documentation | Retrieve Chat SDK documentation for building chat/messaging applications. |
| how_to | Retrieve conceptual guides for specific PubNub use cases and integrations. When to use: - Learning how to implement a specific use case (gaming, healthcare, IoT) - Need step-by-step integration guide for a platform (Unity, Unreal etc) - Understanding PubNub features in context (presence, push notifications, functions) |
| write_pubnub_app | Retrieve PubNub best practices guide covering: 1) Architecture & project setup (environments, payload sizes), 2) Security (Access Manager tokens, least privilege, PII hygiene), 3) Channel & data modeling (naming conventions, message schemas), 4) Publish/Subscribe patterns, 5) History usage, 6) Client reliability (reconnect, idempotency, ordering), 7) Functions/edge logic, 8) Presence & state, 9) App Context, 10) Mobile specifics (push notifications, caching), 11) Web specifics (tab lifecycle, Service Workers), 12) Observability & ops, 13) Performance & cost optimization. Call this tool when building PubNub applications to ensure robust, scalable, and secure implementations. |
| manage_apps | Manages PubNub apps with operations: list, create, update. - 'list': List all apps on your account. - 'create': Create a new app. User must provide data.name. - 'update': Update an existing app name. User must provide data.id and data.name. |
| manage_keysets | Manages PubNub keysets with operations: get, list, create, update. - 'get': Get a specific keyset information. User needs to provide the keyset id. - 'list': List all keysets for your account or a specific app. - 'create': Create a new keyset. New keyset is created with Message Persistence, App Context, Files, and Presence enabled by default; the user must provide name, production, and config with nested objects (messagePersistence, appContext, files, presence), and if any required parameter is missing, you must ask the user to provide it. - 'update': Update an existing keyset. User needs to provide the keyset id and the config to update. |
| get_usage_metrics | Fetches usage metrics from the PubNub Provisioning API. |
| manage_app_context | Manages PubNub App Context (Objects API) for users, channels, and memberships. Supports CRUD operations including get, set, remove, and getAll. Use this tool to manage user profiles, channel metadata, and membership relationships in your PubNub application. |
| send_pubnub_message | Send a message or signal to a PubNub channel in real-time. Supports both regular messages and lightweight signals. Plain strings are automatically wrapped in a 'text' field. Requires publish and subscribe keys from your PubNub keyset. |
| get_pubnub_presence | Retrieves real-time presence information. Use 'channels'/'channelGroups' for HereNow (occupancy/users in channel) and/or 'uuid' for WhereNow (channels a user is in). Returns presence data in JSON format. Requires publish and subscribe keys from your PubNub keyset. |
| subscribe_and_receive_pubnub_messages | Subscribe to a PubNub channel and receive messages in real-time. Specify the number of messages (default 1) and/or a timeout (default 10s, max 30s) to wait for. Requires publish and subscribe keys from your PubNub keyset. |
| get_pubnub_messages | Fetches historical messages from one or more PubNub channels. Call this tool whenever you need to access past message history. Provide a list of channel names. Returns message content and metadata in JSON format. Supports pagination with start/end timetokens and count limit. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| hipaa-chat-short | Example of how to prompt PubNub MCP to create a HIPAA compliant chat application - short version |
| hipaa-chat-long | Example of how to prompt PubNub MCP to create a HIPAA compliant chat application - long version |
| react-app-short | Example of how to scaffold a React application with PubNub Pub/Sub and Presence - short version |
| react-app-long | Example of how to scaffold a React application with PubNub Pub/Sub and Presence - long version |
| gamelobby-short | Example of how to build a multiplayer game lobby with chat and presence - short version |
| gamelobby-long | Example of how to build a multiplayer game lobby with chat and presence - long version |
| oem-client-management | Example of how to create apps and configure keysets for OEM clients |
| multi-tenant-onboarding-short | Example of how to implement automated tenant onboarding for multi-tenant applications - short version |
| multi-tenant-onboarding-long | Example of how to implement automated tenant onboarding for multi-tenant applications - long version |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| asyncio_access-manager_docs | PubNub sdk documentation for access-manager in asyncio |
| asyncio_channel-groups_docs | PubNub sdk documentation for channel-groups in asyncio |
| asyncio_configuration_docs | PubNub sdk documentation for configuration in asyncio |
| asyncio_files_docs | PubNub sdk documentation for files in asyncio |
| asyncio_message-actions_docs | PubNub sdk documentation for message-actions in asyncio |
| asyncio_misc_docs | PubNub sdk documentation for misc in asyncio |
| asyncio_mobile-push_docs | PubNub sdk documentation for mobile-push in asyncio |
| asyncio_presence_docs | PubNub sdk documentation for presence in asyncio |
| asyncio_publish_docs | PubNub sdk documentation for publish in asyncio |
| asyncio_storage-and-playback_docs | PubNub sdk documentation for storage-and-playback in asyncio |
| asyncio_subscribe_docs | PubNub sdk documentation for subscribe in asyncio |
| c-core_access-manager_docs | PubNub sdk documentation for access-manager in c-core |
| c-core_channel-groups_docs | PubNub sdk documentation for channel-groups in c-core |
| c-core_configuration_docs | PubNub sdk documentation for configuration in c-core |
| c-core_encryption_docs | PubNub sdk documentation for encryption in c-core |
| c-core_misc_docs | PubNub sdk documentation for misc in c-core |
| c-core_presence_docs | PubNub sdk documentation for presence in c-core |
| c-core_publish_docs | PubNub sdk documentation for publish in c-core |
| c-core_storage-and-playback_docs | PubNub sdk documentation for storage-and-playback in c-core |
| c-core_subscribe_docs | PubNub sdk documentation for subscribe in c-core |
| c-sharp_access-manager_docs | PubNub sdk documentation for access-manager in c-sharp |
| c-sharp_appcontext-channel_docs | PubNub sdk documentation for appcontext-channel in c-sharp |
| c-sharp_appcontext-members_docs | PubNub sdk documentation for appcontext-members in c-sharp |
| c-sharp_appcontext-memberships_docs | PubNub sdk documentation for appcontext-memberships in c-sharp |
| c-sharp_appcontext-user_docs | PubNub sdk documentation for appcontext-user in c-sharp |
| c-sharp_channel-groups_docs | PubNub sdk documentation for channel-groups in c-sharp |
| c-sharp_configuration_docs | PubNub sdk documentation for configuration in c-sharp |
| c-sharp_encryption_docs | PubNub sdk documentation for encryption in c-sharp |
| c-sharp_files_docs | PubNub sdk documentation for files in c-sharp |
| c-sharp_message-actions_docs | PubNub sdk documentation for message-actions in c-sharp |
| c-sharp_misc_docs | PubNub sdk documentation for misc in c-sharp |
| c-sharp_mobile-push_docs | PubNub sdk documentation for mobile-push in c-sharp |
| c-sharp_presence_docs | PubNub sdk documentation for presence in c-sharp |
| c-sharp_publish_docs | PubNub sdk documentation for publish in c-sharp |
| c-sharp_storage-and-playback_docs | PubNub sdk documentation for storage-and-playback in c-sharp |
| c-sharp_subscribe_docs | PubNub sdk documentation for subscribe in c-sharp |
| dart_access-manager_docs | PubNub sdk documentation for access-manager in dart |
| dart_appcontext-channel_docs | PubNub sdk documentation for appcontext-channel in dart |
| dart_appcontext-members_docs | PubNub sdk documentation for appcontext-members in dart |
| dart_appcontext-memberships_docs | PubNub sdk documentation for appcontext-memberships in dart |
| dart_appcontext-user_docs | PubNub sdk documentation for appcontext-user in dart |
| dart_channel-groups_docs | PubNub sdk documentation for channel-groups in dart |
| dart_configuration_docs | PubNub sdk documentation for configuration in dart |
| dart_encryption_docs | PubNub sdk documentation for encryption in dart |
| dart_files_docs | PubNub sdk documentation for files in dart |
| dart_message-actions_docs | PubNub sdk documentation for message-actions in dart |
| dart_misc_docs | PubNub sdk documentation for misc in dart |
| dart_mobile-push_docs | PubNub sdk documentation for mobile-push in dart |
| dart_presence_docs | PubNub sdk documentation for presence in dart |
| dart_publish_docs | PubNub sdk documentation for publish in dart |
| dart_storage-and-playback_docs | PubNub sdk documentation for storage-and-playback in dart |
| dart_subscribe_docs | PubNub sdk documentation for subscribe in dart |
| freertos_channel-groups_docs | PubNub sdk documentation for channel-groups in freertos |
| freertos_configuration_docs | PubNub sdk documentation for configuration in freertos |
| freertos_misc_docs | PubNub sdk documentation for misc in freertos |
| freertos_presence_docs | PubNub sdk documentation for presence in freertos |
| freertos_publish_docs | PubNub sdk documentation for publish in freertos |
| freertos_storage-and-playback_docs | PubNub sdk documentation for storage-and-playback in freertos |
| freertos_subscribe_docs | PubNub sdk documentation for subscribe in freertos |
| go_access-manager_docs | PubNub sdk documentation for access-manager in go |
| go_appcontext-channel_docs | PubNub sdk documentation for appcontext-channel in go |
| go_appcontext-members_docs | PubNub sdk documentation for appcontext-members in go |
| go_appcontext-memberships_docs | PubNub sdk documentation for appcontext-memberships in go |
| go_appcontext-user_docs | PubNub sdk documentation for appcontext-user in go |
| go_channel-groups_docs | PubNub sdk documentation for channel-groups in go |
| go_configuration_docs | PubNub sdk documentation for configuration in go |
| go_encryption_docs | PubNub sdk documentation for encryption in go |
| go_files_docs | PubNub sdk documentation for files in go |
| go_message-actions_docs | PubNub sdk documentation for message-actions in go |
| go_misc_docs | PubNub sdk documentation for misc in go |
| go_mobile-push_docs | PubNub sdk documentation for mobile-push in go |
| go_presence_docs | PubNub sdk documentation for presence in go |
| go_publish_docs | PubNub sdk documentation for publish in go |
| go_storage-and-playback_docs | PubNub sdk documentation for storage-and-playback in go |
| go_subscribe_docs | PubNub sdk documentation for subscribe in go |
| java_access-manager_docs | PubNub sdk documentation for access-manager in java |
| java_appcontext-channel_docs | PubNub sdk documentation for appcontext-channel in java |
| java_appcontext-members_docs | PubNub sdk documentation for appcontext-members in java |
| java_appcontext-memberships_docs | PubNub sdk documentation for appcontext-memberships in java |
| java_appcontext-user_docs | PubNub sdk documentation for appcontext-user in java |
| java_channel-groups_docs | PubNub sdk documentation for channel-groups in java |
| java_configuration_docs | PubNub sdk documentation for configuration in java |
| java_encryption_docs | PubNub sdk documentation for encryption in java |
| java_files_docs | PubNub sdk documentation for files in java |
| java_message-actions_docs | PubNub sdk documentation for message-actions in java |
| java_misc_docs | PubNub sdk documentation for misc in java |
| java_mobile-push_docs | PubNub sdk documentation for mobile-push in java |
| java_presence_docs | PubNub sdk documentation for presence in java |
| java_publish_docs | PubNub sdk documentation for publish in java |
| java_storage-and-playback_docs | PubNub sdk documentation for storage-and-playback in java |
| java_subscribe_docs | PubNub sdk documentation for subscribe in java |
| javascript_access-manager_docs | PubNub sdk documentation for access-manager in javascript |
| javascript_appcontext-channel_docs | PubNub sdk documentation for appcontext-channel in javascript |
| javascript_appcontext-members_docs | PubNub sdk documentation for appcontext-members in javascript |
| javascript_appcontext-memberships_docs | PubNub sdk documentation for appcontext-memberships in javascript |
| javascript_appcontext-user_docs | PubNub sdk documentation for appcontext-user in javascript |
| javascript_channel-groups_docs | PubNub sdk documentation for channel-groups in javascript |
| javascript_configuration_docs | PubNub sdk documentation for configuration in javascript |
| javascript_encryption_docs | PubNub sdk documentation for encryption in javascript |
| javascript_files_docs | PubNub sdk documentation for files in javascript |
Latest Blog Posts
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