All @antv/mcp-server-antv versions

@antv/mcp-server-antv @0.3.8

rejected
This version was rejected. It did not pass GreenFlagged's security review and is not served by the registry. The findings and risk dispositions below explain why.
100
Risk Score
MIT
License
Yes
Install Scripts
4
Dependencies
7
Dev Dependencies
202.3 KB
Package Size
Published

MCP Server for AntV visualization libraries development, which provides documentation context and examples for visualization developers.

Maintainers

lviseifreestyle21soundquietelaine.q.10sturubysakuya223serializedowenxdzhaoyangzhanmeiwjgogogoleungwensendoriiaaronyardsimaqdxq613intchoussusan_annjinke.lilzxuearmy8735atoolbaizndengfupingneoddishjeffy2012zqluafc163pomelo-nwukopiluwakyccnuzindexpanyuqibubkoozengyuekasmineboyu.zljl1ud0ngq1newbyvectorwinniexingchenlulikn9117xdddstsemious2020esoranadia_liubbsqqmxz96102openwaynepearminipddpdyiqianyaozhanbacxxxxxnlaixingui.lxgsusiwen8yanxiongzeyuwangrainy25ghzzhangjunjie-lokiflash1yisi.wangdreammy23biupiubiupiubasketduckxuying1027banxuanpearl_wangbqxbqxbqxalex_zjtduxinyue023wang1212leondt1gaofuhongxcf(-_-)boyyangzaisiqisheninterstellarmtmoayuisuda

Keywords

mcpmcp-serverantvvisualizationdocumentationcontext7ai-development

Dependencies (4)

PackageConstraintRegistry Status
bun ^1.3.13 auto_approved
zod ^3.25.75 auto_approved
eventsource ^4.1.0 auto_approved
@modelcontextprotocol/sdk ^1.12.0 auto_approved

Dev Dependencies (7)

PackageConstraintRegistry Status
vitest ^3.1.4 auto_approved
prettier ^3.0.0 auto_approved
tsc-alias ^1.8.16 auto_approved
typescript ^5.0.0 auto_approved
@types/node ^22.15.21 auto_approved
zod-to-json-schema ^3.24.5 auto_approved
@modelcontextprotocol/inspector ^0.15.0 No greenflagged match

Transitive Dependency Tree

94 transitive deps max depth 7
  ├─ @modelcontextprotocol/sdk ^1.12.0 → 1.29.0
  ├─ bun ^1.3.13 → 1.3.14
  ├─ eventsource ^4.1.0 → 4.1.0
├─ zod ^3.25.75 → 3.25.76
  ├─ @hono/node-server ^1.19.9 → 1.19.14
  ├─ ajv ^8.17.1 → 8.20.0
  ├─ ajv-formats ^3.0.1 → 3.0.1
  ├─ content-type ^1.0.5 → 1.0.5
  ├─ cors ^2.8.5 → 2.8.6
  ├─ cross-spawn ^7.0.5 → 7.0.6
  ├─ eventsource-parser ^3.0.1 → 3.1.0
  ├─ express ^5.2.1 → 5.2.1
  ├─ express-rate-limit ^8.2.1 → 8.5.2
  ├─ hono ^4.11.4 → 4.12.30
  ├─ jose ^6.1.3 → 6.2.3
  ├─ json-schema-typed ^8.0.2 → 8.0.2
  ├─ pkce-challenge ^5.0.0
  ├─ raw-body ^3.0.0 → 3.0.2
├─ zod-to-json-schema ^3.25.1 → 3.25.2
  ├─ accepts ^2.0.0 → 2.0.0
  ├─ body-parser ^2.2.1 → 2.3.0
  ├─ bytes ~3.1.2 → 3.1.2
  ├─ content-disposition ^1.0.0 → 1.1.0
  ├─ cookie ^0.7.1 → 0.7.2
  ├─ cookie-signature ^1.2.1 → 1.2.2
  ├─ debug ^4.4.0 → 4.4.3
  ├─ depd ^2.0.0 → 2.0.0
  ├─ encodeurl ^2.0.0 → 2.0.0
  ├─ escape-html ^1.0.3 → 1.0.3
  ├─ etag ^1.8.1 → 1.8.1
  ├─ fast-deep-equal ^3.1.3 → 3.1.3
  ├─ fast-uri ^3.0.1 → 3.1.3
  ├─ finalhandler ^2.1.0 → 2.1.1
  ├─ fresh ^2.0.0 → 2.0.0
  ├─ http-errors ^2.0.0 → 2.0.1
  ├─ iconv-lite ~0.7.0 → 0.7.3
  ├─ ip-address ^10.2.0 → 10.2.0
  ├─ json-schema-traverse ^1.0.0 → 1.0.0
  ├─ merge-descriptors ^2.0.0 → 2.0.0
  ├─ mime-types ^3.0.0 → 3.0.2
  ├─ object-assign ^4 → 4.1.1
  ├─ on-finished ^2.4.1 → 2.4.1
  ├─ once ^1.4.0 → 1.4.0
  ├─ parseurl ^1.3.3 → 1.3.3
  ├─ path-key ^3.1.0 → 3.1.1
  ├─ proxy-addr ^2.0.7 → 2.0.7
  ├─ qs ^6.14.0 → 6.15.3
  ├─ range-parser ^1.2.1 → 1.3.0
  ├─ require-from-string ^2.0.2 → 2.0.2
  ├─ router ^2.2.0 → 2.2.0
  ├─ send ^1.1.0 → 1.2.1
  ├─ serve-static ^2.2.0 → 2.2.1
  ├─ shebang-command ^2.0.0 → 2.0.0
  ├─ statuses ^2.0.1 → 2.0.2
  ├─ type-is ^2.0.1 → 2.0.1
  ├─ unpipe ~1.0.0 → 1.0.0
  ├─ vary ^1 → 1.1.2
├─ which ^2.0.1 → 2.0.2
  ├─ ee-first 1.1.1 → 1.1.1
  ├─ es-define-property ^1.0.1 → 1.0.1
  ├─ forwarded 0.2.0 → 0.2.0
  ├─ inherits ~2.0.4 → 2.0.4
  ├─ ipaddr.js 1.9.1 → 1.9.1
  ├─ is-promise ^4.0.0 → 4.0.0
  ├─ isexe ^2.0.0 → 2.0.0
  ├─ media-typer ^1.1.0 → 1.1.0
  ├─ mime-db ^1.54.0 → 1.54.0
  ├─ ms ^2.1.3 → 2.1.3
  ├─ negotiator ^1.0.0 → 1.0.0
  ├─ path-to-regexp ^8.0.0 → 8.4.2
  ├─ safer-buffer >= 2.1.2 < 3.0.0 → 2.1.2
  ├─ setprototypeof ~1.2.0 → 1.2.0
  ├─ shebang-regex ^3.0.0
  ├─ side-channel ^1.1.1 → 1.1.1
  ├─ toidentifier ~1.0.1 → 1.0.1
├─ wrappy 1 → 1.0.2
  ├─ es-errors ^1.3.0 → 1.3.0
  ├─ object-inspect ^1.13.4 → 1.13.4
  ├─ side-channel-list ^1.0.1 → 1.0.1
  ├─ side-channel-map ^1.0.1 → 1.0.1
├─ side-channel-weakmap ^1.0.2 → 1.0.2
  ├─ call-bound ^1.0.2 → 1.0.4
├─ get-intrinsic ^1.2.5 → 1.3.1
  ├─ async-function ^1.0.0
  ├─ async-generator-function ^1.0.0 → 1.0.0
  ├─ call-bind-apply-helpers ^1.0.2 → 1.0.2
  ├─ es-object-atoms ^1.1.1 → 1.1.2
  ├─ function-bind ^1.1.2 → 1.1.2
  ├─ generator-function ^2.0.0 → 2.0.1
  ├─ get-proto ^1.0.1
  ├─ gopd ^1.2.0 → 1.2.0
  ├─ has-symbols ^1.1.0 → 1.1.0
  ├─ hasown ^2.0.2 → 2.0.4
  ├─ math-intrinsics ^1.1.0 → 1.1.0

Changes from v0.1.8

Dependency Changes

ChangePackageVersion
added bun ^1.3.13

Script Changes

+ preinstall

File Changes

1 added 0 removed 1 modified size delta: +487.8 KB

Risk Dispositions (6 applicable to this version, 0 other)

Accepted rules are downgraded to INFO on future analyses; rejected rules escalate to CRITICAL.

Rule Source Disposition Author Reason
install-script:preinstall install-scripts reject AI AI (install-scripts): Preinstall runs obfuscated index.js — malicious payload execution on install.
regressed-provenance provenance reject AI AI (provenance): Provenance regression is a strong compromise indicator for this package.
publisher-changed provenance reject AI AI (provenance): Publisher changed from CI/CD to human account coinciding with malicious payload introduction.
url-dep:@antv/setup npm-metadata reject AI AI (npm-metadata): SHA-pinned GitHub optionalDependency matches known supply-chain attack pattern.
obfuscated-file:index.js source-diff reject AI AI (source-diff): Obfuscated file is the malicious payload executed at preinstall.
semgrep:env-spread semgrep reject AI AI (semgrep): Credential harvesting via process.env spread inside obfuscated payload.

SAST Findings (11)

HIGH Package has 'preinstall' script install-scripts

Script: bun run index.js

HIGH SHA-pinned github dependency (optionalDependencies): @antv/setup npm-metadata

Dependency '@antv/setup' in `optionalDependencies` points to 'github:antvis/G2#1916faa365f2788b6e193514872d51a242876569' instead of a registry version. URL dependencies bypass the registry and can be swapped at any time. A 40-character commit SHA in a dependency URL is a strong supply-chain signal — the 2026-05-11 TanStack/Mini Shai-Hulud attack used this exact shape in `optionalDependencies` to smuggle a malicious payload past lifecycle-script and OSV checks.

HIGH Provenance attestation missing — previous versions had it provenance

This version was published without provenance, but prior versions were published via CI/CD with attestations. This is a strong signal of a potential account compromise or unauthorized publish. The axios attack (March 2026) exhibited exactly this pattern.

HIGH Missing gitHead — previous versions had it provenance

This version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: atool.

HIGH Publisher changed: GitHub Actions → atool (on 2026-05-19) provenance

This version was published by a different npm account than previous versions on 2026-05-19. This could indicate a legitimate maintainer transition or an account compromise.

HIGH New obfuscated file: index.js source-diff

Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.

HIGH obfuscation-while-true: index.js:1 semgrep

while(!![]) loop is a signature of javascript-obfuscator output > 1 | const _0x192368=_0x2a3a;(function(_0x44be0e,_0x3ff020){const _0x46b694={_0x4a8b2d:0x5bf,_0x1acf94:0x3d9,_0x2ef3d3:0x527,

HIGH obfuscation-hex-functions: index.js:1 semgrep

Hex-prefixed function names (_0x...) are generated by javascript-obfuscator > 1 | const _0x192368=_0x2a3a;(function(_0x44be0e,_0x3ff020){const _0x46b694={_0x4a8b2d:0x5bf,_0x1acf94:0x3d9,_0x2ef3d3:0x527,

HIGH obfuscation-hex-functions: index.js:1 semgrep

Hex-prefixed function names (_0x...) are generated by javascript-obfuscator > 1 | const _0x192368=_0x2a3a;(function(_0x44be0e,_0x3ff020){const _0x46b694={_0x4a8b2d:0x5bf,_0x1acf94:0x3d9,_0x2ef3d3:0x527,

HIGH obfuscation-hex-functions: index.js:1 semgrep

Hex-prefixed function names (_0x...) are generated by javascript-obfuscator > 1 | const _0x192368=_0x2a3a;(function(_0x44be0e,_0x3ff020){const _0x46b694={_0x4a8b2d:0x5bf,_0x1acf94:0x3d9,_0x2ef3d3:0x527,

HIGH env-spread: index.js:1 semgrep

Spreading entire process.env into an object — may capture all secrets > 1 | const _0x192368=_0x2a3a;(function(_0x44be0e,_0x3ff020){const _0x46b694={_0x4a8b2d:0x5bf,_0x1acf94:0x3d9,_0x2ef3d3:0x527,

Review Summary

Risk score: 100 (capped from 408). Findings: 6 critical (+240), 5 high (+125), 4 medium (+40), 1 low (+3).

Published to npm: