mcp@2.3.15

VERIFIED· not started

Publisher claims: "PubNub Model Context Protocol MCP Server for Cursor and Claude" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher pubnub · publishing for 565 daysInstalls 2,578Last detonated 14 h ago
$claude mcp add mcp -- npx -y @pubnub/mcp
WatchReport an issue

Coverage

Not started: dependency install failed; the server itself was not observed.
Tested
the dependency install step · every file read, file written and host contacted by what ran
Not tested
server startup · the tool list · tool behavior

What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.

Before you give it your token

It will ask for
MCP_OAUTH_ENABLEDPUBNUB_API_KEYConfiguration, not credentials: ADMIN_API_V2_URL, KV_TYPE_PATH, LOG_PRETTY, MCP_ANALYTICS_DEBUG, MCP_ANALYTICS_DISABLED, MCP_CLOUD_MODE, MCP_MODE, MCP_SESSION_SUPPORT, MCP_SUBSCRIBE_ANALYTICS_DISABLED, PUBNUB_ORIGIN, RESOURCE_PATH, SDK_DOCS_API_URL
Where it talks to
pubnub.com, pubnubtools.com (its own)
What the honeypot saw
no credential files read · no network
What we could not test
server startup · the tool list · tool behavior

Connect it with a scoped credential, under the guard. It asks for MCP_OAUTH_ENABLED, PUBNUB_API_KEY and talks to pubnub.com, pubnubtools.com. Give the credential to the guard, not the server: the value never enters the server's environment and only travels to the host you bind. What the tools do with a real credential was not observed.

$vet-skills run --secrets MCP_OAUTH_ENABLED=pubnub.com,PUBNUB_API_KEY=pubnub.com -- npx -y @pubnub/mcp

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-13 and scored it 85/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 15 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
15sprocessdependency install exit 1 · (Use `node --trace-warnings ...` to show where the warning was created) npm error Cannot read properties of null (reading 'edgesOut') npm error A complete log of this run can be found in: /tmp/ks-detonate-lMLeN8/task/home/.npm/_logs/2026-11-13T22_39_59_988Z-debug-0.log
15sclaimednot started: dependency install failed (exit 1); the server itself was not observed
15sprocessscript backend runs setup only
15sprocessno install scripts to re-run

Static findings

MEDIUM
File permission modification commandpackage.json:34 · File permission modification command — agent changes file ownership/permissions"build": "rollup -c && chmod +x dist/index.js",Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
MEDIUM
File type combined with upload actiondist/index.js:6013 · File type combined with upload action — agent may exfiltrate local data files7. Function logs: a running Function's console.log/console.error output is PUBLISHED to theFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File permission modification commanddist/index.js:50 · File permission modification command — agent changes file ownership/permissionsbuild: "rollup -c && chmod +x dist/index.js",Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05
HIGH
Credential pass-through configurationdist/index.js:5804 · Credential pass-through configuration — agent relays sensitive credentials…pplication.user_id"\`), so JSONPath resolution works against nested BO schemas. Pass secret_key when the keyset has Access Manager enabled — initializing with the secret k…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST02
MEDIUM
File type combined with upload actiondist/index.js:577 · File type combined with upload action — agent may exfiltrate local data files…, revision id, deployment id, and running status. To view the Function's console.log/console.error output, subscribe to its log channel, which follows the pattern output-rev-REVISIONID-key-KEYSETID (use the subscribe_and_receive_pubnub_mes…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
HIGH
Credential pass-through configurationdist/index.js:3647 · Credential pass-through configuration — agent relays sensitive credentials"If the keyset has Access Manager enabled you also need to pass secret_key " +Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST02
MEDIUM
npx invocation of non-well-known packagedist/index.js:6346 · npx invocation of non-well-known package — may execute untrusted code"Usage: npx @pubnub/mcp [options]",Fix: Pin versions and sources; vendor anything fetched at install time.
AST06

Cost to the agent

Instructions loaded
≈49 tok
1 file · 48 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for @pubnub/mcp@2.3.15 as of 14 h ago. This is the package itself, not its dependencies.