PubNub MCP Server
NPM · @PUBNUB/MCP · SCANNED SEP 24
PubNub Model Context Protocol MCP Server for Cursor and Claude
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 51 of 148 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (SEE LICENSE IN LICENSE) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 63 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability84
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 12759 tokens (~25/item across 508 items; 12 tools + 496 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
- Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage96
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 88% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "send_pubnub_message" implies "send" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the PubNub MCP Server server?
PubNub MCP Server runs locally as an npm package, launched with npx -y @pubnub/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @pubnub/mcp
claude mcp add pubnub-mcp-server -- npx -y @pubnub/mcp
{
"mcpServers": {
"pubnub-mcp-server": {
"command": "npx",
"args": [
"-y",
"@pubnub/mcp"
]
}
}
} {
"servers": {
"pubnub-mcp-server": {
"command": "npx",
"args": [
"-y",
"@pubnub/mcp"
]
}
}
} codex mcp add pubnub-mcp-server -- npx -y @pubnub/mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"pubnub-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"@pubnub/mcp"
],
"enabled": true
}
}
} openclaw mcp add pubnub-mcp-server --command npx --arg -y --arg @pubnub/mcp
mcp_servers:
pubnub-mcp-server:
command: "npx"
args: ["-y", "@pubnub/mcp"] {
"McpServers": {
"pubnub-mcp-server": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@pubnub/mcp"
]
}
}
} assistant mcp add pubnub-mcp-server -t stdio -c npx -a -y @pubnub/mcp
{
"mcpServers": {
"pubnub-mcp-server": {
"command": "npx",
"args": [
"-y",
"@pubnub/mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 24 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 −3
- Stability: pass → 0.80 functional
- 18 Sept 26 0
- Stability: 0.97 → pass security
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 24 Sept 2026 · Analysed npm/@pubnub/mcp@2.3.2
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 148 packages
| Packages resolved | 148 |
|---|---|
| Stale | 51 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_chat_sdk_documentation Get PubNub Chat SDK Documentation ~220
Retrieve Chat SDK documentation for building chat/messaging applications. **When to use:** - Building ANY chat or messaging application (1:1, group, channels) - Need typing indicators, read receipts, @mentions, unread counts - Want message threads, reactions, pinned messages, moderation - Need user/channel management with chat-specific features - Prefer rapid development with intuitive methods like sendText(), startTyping(), join() **Do NOT use for:** - Non-chat real-time apps (IoT, gaming state, analytics) → use "get_sdk_documentation" - Conceptual guides → use "how_to" **Example features:** - messages-send-receive, messages-threads, messages-reactions - channels-create, channels-join, channels-typing-indicator - users-mentions, users-presence Returns code examples and API references for the specified language/feature.
| Name | Type | Req | Description |
|---|---|---|---|
| feature | string | yes | – |
| language | string | yes | – |
No output schema declared.
No examples provided.
get_pubnub_messages Get PubNub Channel History ~211
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.
| Name | Type | Req | Description |
|---|---|---|---|
| channels | array | yes | List of channel names to fetch history from |
| count | number | – | Number of historical messages to return per channel |
| end | string | – | Timetoken delimiting the end (inclusive) of the time slice to pull messages from |
| publishKey | string | yes | Publish Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| start | string | – | Timetoken delimiting the start (exclusive) of the time slice to pull messages from |
| subscribeKey | string | yes | Subscribe Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
No output schema declared.
No examples provided.
get_pubnub_presence Get Presence Data (HereNow / WhereNow) ~195
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.
| Name | Type | Req | Description |
|---|---|---|---|
| channelGroups | array | – | List of channel group names (strings) to query presence data for |
| channels | array | – | List of channel names (strings) to query presence data for |
| publishKey | string | yes | Publish Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| subscribeKey | string | yes | Subscribe Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| uuid | string | – | UUID to query channel subscriptions for (WhereNow) |
No output schema declared.
No examples provided.
get_sdk_documentation Get PubNub Core SDK Documentation ~165
Retrieve Core SDK documentation for low-level real-time features. **When to use:** - Building NON-CHAT real-time apps (IoT, gaming state sync, live analytics, notifications) - Need fine-grained control over pub/sub, presence, storage, or access management - Implementing custom real-time patterns - Need API reference for specific SDK methods (publish, subscribe, history, etc.) **Do NOT use for:** - Chat/messaging apps → use "get_chat_sdk_documentation" instead - Conceptual guides → use "how_to" Returns code examples, API references, and implementation guides for the specified language/feature combination.
| Name | Type | Req | Description |
|---|---|---|---|
| feature | string | yes | – |
| language | string | yes | – |
No output schema declared.
No examples provided.
get_usage_metrics Get PubNub Usage Metrics ~256
Fetches usage metrics from the PubNub Provisioning API. **Parameters:** - scope: 'app' or 'keyset' (determines which ID to use) - appId: Required when scope='app' - keysetId: Required when scope='keyset' - usageType: 'monthly_active_users' (for chat) or 'transaction' (for other use cases) - start: Start date in YYYY-MM-DD format - end: End date in YYYY-MM-DD format
| Name | Type | Req | Description |
|---|---|---|---|
| appId | string | – | The app ID to fetch metrics for. Required when scope='app'. |
| end | string | yes | End date in YYYY-MM-DD format. |
| keysetId | string | – | The keyset (key) ID to fetch metrics for. Required when scope='keyset'. |
| scope | string | yes | Scope of the metrics: 'app' to fetch metrics for an app, 'keyset' to fetch metrics for a keyset. |
| start | string | yes | Start date in YYYY-MM-DD format. |
| usageType | string | yes | Type of usage metrics: 'monthly_active_users' for chat, 'transaction' for other use cases. |
No output schema declared.
No examples provided.
how_to Get PubNub How-To Guide ~139
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) **Do NOT use for:** - API reference or code samples of a specific PubNub features → use `get_sdk_documentation` or `get_chat_sdk_documentation` - General best practices → use `write_pubnub_app`
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | – |
No output schema declared.
No examples provided.
manage_app_context Manage PubNub App Context ~367
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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | Data object for set/remove operations. For users: {name, email, externalId, profileUrl, custom}. For channels: {name, description, custom}. For memberships: {channels: [...]} — set operations accept… |
| id | string | yes | Identifier: UUID (defaults to the SDK-configured user when omitted) for users and membership operations, channel metadata id (for example, team.red) for channel metadata and channel member operations |
| operation | string | yes | Operation to perform: "get" to retrieve, "set" to create/update, "remove" to delete, "getAll" to list all |
| options | object | – | Optional parameters for the operation |
| publishKey | string | yes | Publish Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| subscribeKey | string | yes | Subscribe Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| type | string | yes | Type of App Context object: "user" for user metadata, "channel" for channel metadata, "membership" for user-channel relationships |
No output schema declared.
No examples provided.
manage_apps Manage PubNub App ~138
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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | Operation-specific data. For 'list': not required. For 'create': {name}. For 'update': {id, name}. |
| operation | string | yes | Operation to perform: 'list' to list all apps, 'create' to create a new app, 'update' to update an existing app. |
No output schema declared.
No examples provided.
manage_keysets Manage PubNub Keyset ~259
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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | – | Operation-specific data. For 'get': {id}. For 'list': {appId?}. For 'create': {name, appId?, type, config}. For 'update': {id, config}. |
| operation | string | yes | Operation to perform: 'get' to get specific keyset information, 'list' to list keysets, 'create' to create a new keyset, 'update' to update an existing keyset. |
No output schema declared.
No examples provided.
send_pubnub_message Send Message or Signal to PubNub Channel ~185
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.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | yes | Channel ID to publish message to |
| message | – | yes | Message payload (can be any JSON-serializable value or plain string) |
| publishKey | string | yes | Publish Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| subscribeKey | string | yes | Subscribe Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| type | string | – | Type of message to publish: 'message' for regular messages or 'signal' for lightweight signals |
No output schema declared.
No examples provided.
subscribe_and_receive_pubnub_messages Subscribe to PubNub Channel and Receive Messages ~215
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.
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | yes | Channel ID to subscribe to and receive messages from |
| messageCount | number | – | Number of messages to wait for before unsubscribing (default: 1 message) |
| publishKey | string | yes | Publish Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| subscribeKey | string | yes | Subscribe Key that can be obtained from your keyset by manage_keysets tool with parameter operation list or in PubNub admin portal |
| timeout | number | – | Maximum timeout in seconds. If not all messages are received within this time, the subscription will end (default: 10 seconds, max 30 seconds) |
No output schema declared.
No examples provided.
write_pubnub_app Get PubNub Best Practices ~178
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
What is the PubNub MCP Server server?
PubNub MCP Server is listed in the public MCP registry as io.github.pubnub/mcp-server. PubNub Model Context Protocol MCP Server for Cursor and Claude. This page covers its npm package (@pubnub/mcp).
Is the PubNub MCP Server server safe to use?
PubNub MCP Server scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 24 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the PubNub MCP Server server expose?
PubNub MCP Server exposes 12 tools: get_sdk_documentation, get_chat_sdk_documentation, how_to, write_pubnub_app, manage_apps, and 7 more. Their descriptions and schemas cost roughly 2,528 tokens of context every time the server is loaded.
Is the PubNub MCP Server server still maintained?
PubNub MCP Server is still listed as active in the MCP registry. We last reached this channel on 24 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.