Atlas / MCP servers / pubnub / PubNub Model Context Protocol

PubNub Model Context ProtocolSAFE

mcp/pubnub/pubnub-model-context-protocol

PubNub MCP Model Context Protocol Server for use in Cursor, Windsurf, Claude Desktop, Claude Code and OpenAI Codex and more!

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
—
Transport
stdio · streamable-http
License
NOASSERTION
Stars
33
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

A hosted Model Context Protocol (MCP) server that exposes PubNub SDK documentation and PubNub API resources to LLM-powered tools. This improves the LLM AI Agent's ability to understand and interact with PubNub's SDKs and APIs. Uses HTTP transport with OAuth authentication.

Features

  • 📚 Comprehensive SDK Documentation - Access detailed documentation, code examples, and implementation guides for 20+ programming languages including JavaScript, Python, Java, Swift, Kotlin, C#, Ruby, Go, and more
  • 🏗️ Application & Keyset Management - Create, configure, and manage PubNub applications and keysets with features like message persistence, file sharing, presence tracking, and app context
  • 💬 Real-time Communication - Send and receive messages across channels, implement live chat, notifications, and real-time updates with support for both messages and lightweight signals
  • 👥 User & Channel Management - Manage user profiles, channel metadata, and membership relationships with full CRUD operations for building community and social features. In addition, there is an option to view & manage user profiles, channels and memberships in PubNub Admin Portal (this requires Manage Premium).
  • 📍 Presence & Activity Tracking - Monitor real-time user presence, see who's online in channels, and track user activity across your application
  • 📊 Real-time Decisioning & Analytics - Trigger the right action when it matters, measure its impact, and adjust as conditions change -- all in real-time. Requires Illuminate.
  • 📈 Channel, User & Message Analytics - Spot patterns in aggregated app activity, from top channels and country breakdowns to new vs. recurring users and device distribution, to understand engagement, usage, and performance. In addition, limited metrics are available for viewing in PubNub Adm
Read from source at commit 915a3e54a28eOBSERVED · 2026-10-08
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (npm)
claude mcp add mcp --env PUBNUB_API_KEY=${PUBNUB_API_KEY} -- npx -y @pubnub/[email protected]
03

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (4 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (8)

LOWInventory / provenance · inv.hidden_file · CWE-1104
.env.sample
.env.sample
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/lib/docs/api.test.ts:3
import { overrideDocsResponse, overrideDocsRoute } from "../../test-utils/msw-overrides";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/lib/docs/api.test.ts:4
import { clearTestEnv, setupTestEnv } from "../../test-utils/msw-setup";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/lib/docs/api.test.ts:12
} from "../../test-utils/test-fixtures";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/lib/docs/handlers.test.ts:2
import { overrideDocsResponse } from "../../test-utils/msw-overrides";
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/lib/docs/handlers.test.ts:3
import { clearTestEnv, setupTestEnv } from "../../test-utils/msw-setup";
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@amplitude/analytics-node, @modelcontextprotocol/sdk, dotenv, express, jose, pino, pubnub, zod
Why it matters. 29 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWInventory / provenance · mcp.no_tools_extracted · CWE-1104
server.json
Why it matters. the tool list is enumerated at runtime by tools/list, not declared in source
Fix. the page says so rather than showing an empty table

Gates applied: no_behavioural_pass.

Audited 2026-10-08 · audit v0.4.1 · source sha 915a3e54a28efull audit observations/trust-audit/mcp-server/pubnub__pubnub-model-context-protocol.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08915a3e54a28eSAFEB89first audit
05

Questions

What is the PubNub Model Context Protocol MCP server?

PubNub MCP Model Context Protocol Server for use in Cursor, Windsurf, Claude Desktop, Claude Code and OpenAI Codex and more!

Is PubNub Model Context Protocol safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does PubNub Model Context Protocol need?

It reads AMPLITUDE_API_KEY, MCP_OAUTH_ENABLED, OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET, OAUTH_ISSUER, OPENAI_API_KEY and PUBNUB_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does PubNub Model Context Protocol run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @pubnub/mcp at 2.3.10.

How current is this page?

The grade is for one exact copy of the source (915a3e54a28e), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement