← Scan another
Medium
github · 92 files analyzed

GLips/Figma-Context-MCP

Powerful capabilities — review before trusting.

View source ↗
Outbound network 3
Environment variables (config / keys) 9
Filesystem writes 1
Shell / command execution 2

AI review

This is a legitimate Figma MCP server with no deceptive or malicious behavior. The flagged items are standard Node.js patterns for environment variable access, child process execution in tests, and network calls to the Figma API—all expected for this extension's stated purpose. No hidden instructions, prompt injection vectors, or data exfiltration mechanisms were found.

Model: deepseek-chat

Static findings

Shell / command execution · Executes shell / system commands

medium scripts/scan-hidden-chars.mjs:18 import { execSync } from "node:child_process";
info src/tests/server.test.ts:6 import { spawn, type ChildProcess } from "child_process";

Environment variables (config / keys) · Reads environment variables (config / API keys)

low src/bin.ts:10 version: process.env.NPM_PACKAGE_VERSION ?? "unknown",
low src/config.ts:50 return process.env[name] || undefined;
low src/mcp/index.ts:17 version: process.env.NPM_PACKAGE_VERSION ?? "unknown",
low src/telemetry/client.ts:83 if (process.env.FRAMELINK_TELEMETRY === "off") return false;
info src/tests/integration.test.ts:11 const describeOrSkip = process.env.RUN_FIGMA_INTEGRATION === "1" ? describe : describe.skip;
info src/tests/stdio.test.ts:36 env: { ...process.env, NODE_ENV: "cli" },
low src/utils/logger.ts:21 if (process.env.NODE_ENV !== "development") return;
low src/utils/proxy-env.ts:17 return PROXY_ENV_VARS.some((n) => process.env[n] || process.env[n.toLowerCase()]);
low tsup.config.ts:3 const isDev = process.env.npm_lifecycle_event === "dev";

Outbound network · Makes outbound network requests

info src/services/get-figma-data-metrics.ts:43 /** Wall-clock ms spent on the Figma API fetch (network + parse). */
low src/utils/common.ts:33 const response = await fetch(imageUrl, {
low src/utils/fetch-json.ts:65 const response = await fetch(url, fetchOptions);

Filesystem writes · Reads or writes the filesystem

low src/utils/common.ts:66 fs.unlink(fullPath, () => {});

Scanning every extension your team installs?

Pro & Team add monitoring, private scans, and a CI gate for unsafe extensions.

MCPVet is a heuristic aid, not a security guarantee. A clean grade does not prove an extension is safe; always review code and instructions you don't trust.