github JavaScript analyzed 5ebefc2

atezer/FMCP

github

F-MCP ATezer: Figma MCP Bridge for Claude/Cursor. Plugin-only, zero-trust, zero-setup DS auto-onboard. 62 tools, 27 skills, 3 agents.

maintainer
atezer
license
MIT
first seen
2026-07-10
last seen
2026-07-31
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 64 tools
transport stdio · http counts 64 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • figma_add_mode
  • figma_arrange_component_set
  • figma_batch_create_variables
  • figma_batch_update_variables
  • figma_bind_variable
  • figma_capture_screenshot
  • figma_check_design_parity
  • figma_clear_console
  • figma_clear_rest_token
  • figma_clone_screen_to_device
  • figma_create_frame
  • figma_create_group
  • figma_create_interaction
  • figma_create_mini_ds
  • figma_create_prototype_connection
  • figma_create_rectangle
  • figma_create_text
  • figma_create_variable
  • figma_create_variable_collection
  • figma_delete_variable
  • figma_delete_variable_collection
  • figma_enumerate_library_components
  • figma_enumerate_published_components
  • figma_execute
  • figma_export_nodes
  • figma_extract_contract
  • figma_get_code_connect
  • figma_get_component
  • figma_get_component_for_development
  • figma_get_component_image
  • figma_get_console_logs
  • figma_get_design_context
  • figma_get_design_system_summary
  • figma_get_file_data
  • figma_get_library_variables
  • figma_get_metadata
  • figma_get_prototype_connections
  • figma_get_rest_token_status
  • figma_get_status
  • figma_get_styles
  • figma_get_token_browser
  • figma_get_variables
  • figma_import_style
  • figma_instantiate_component
  • figma_list_connected_files
  • figma_plugin_diagnostics
  • figma_refresh_variables
  • figma_rename_mode
  • figma_rename_variable
  • figma_rest_api
  • figma_scan_ds_compliance
  • figma_search_assets
  • figma_search_components
  • figma_set_description
  • figma_set_flow_starting_point
  • figma_set_instance_properties
  • figma_set_port
  • figma_set_rest_token
  • figma_set_scroll_behavior
  • figma_setup_design_tokens
  • figma_update_variable
  • figma_use
  • figma_validate_screen
  • figma_watch_console
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 5ebefc2 · analyzer v33 · 3d ago

skills & prompt files 29

danger signals1

code evidence vv1.9.14 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 97

filesystem 9

  • fs atezer-FMCP-5ebefc2/ai-ready/cli/audit.mjs :11 import { readFileSync, readdirSync, writeFileSync, existsSync } from "node:fs";
  • fs atezer-FMCP-5ebefc2/dist/core/audit-log.js :6 import { createWriteStream } from "fs";
  • fs atezer-FMCP-5ebefc2/dist/core/config.js :4 import { readFileSync, existsSync } from 'fs';
  • fs atezer-FMCP-5ebefc2/dist/local-plugin-only.js :25 import { writeFileSync, mkdirSync } from "node:fs";
  • fs (weak) atezer-FMCP-5ebefc2/scripts/generate-embedded-skills.mjs :12 import { readFileSync, writeFileSync, existsSync } from "node:fs";
  • fs (weak) atezer-FMCP-5ebefc2/scripts/validate-fmcp-skills-tools.mjs :14 import { readFileSync, readdirSync, statSync } from "node:fs";
  • fs atezer-FMCP-5ebefc2/src/core/audit-log.ts :7 import { createWriteStream, type WriteStream } from "fs";
  • fs atezer-FMCP-5ebefc2/src/core/config.ts :5 import { readFileSync, existsSync } from 'fs';
  • fs atezer-FMCP-5ebefc2/src/local-plugin-only.ts :27 import { writeFileSync, mkdirSync } from "node:fs";

shell / exec 2

  • shell atezer-FMCP-5ebefc2/dist/core/plugin-bridge-server.js :20 import { execSync } from "child_process";
  • shell atezer-FMCP-5ebefc2/src/core/plugin-bridge-server.ts :21 import { execSync } from "child_process";

network 6

  • net atezer-FMCP-5ebefc2/ai-ready/cli/audit.mjs :58 const res = await fetch(`https://api.figma.com/v1${path}`, {
  • net atezer-FMCP-5ebefc2/dist/core/plugin-bridge-server.js :19 import { createServer, get as httpGet, request as httpRequest } from "http";
  • net atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2008 const res = await fetch(`https://api.figma.com${path}`, {
  • net (weak) atezer-FMCP-5ebefc2/scripts/smoke-fmcp-cloud.mjs :9 const health = await fetch(`${base}/fmcp-cloud/health`);
  • net atezer-FMCP-5ebefc2/src/core/plugin-bridge-server.ts :20 import { createServer, get as httpGet, request as httpRequest } from "http";
  • net atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2374 const res = await fetch(`https://api.figma.com${path}`, {

secrets 1

  • secrets atezer-FMCP-5ebefc2/ai-ready/cli/audit.mjs :24 const TOKEN = process.env.FIGMA_TOKEN || process.env.FIGMA_REST_TOKEN;

tool registrations 136

  • figma_list_connected_files atezer-FMCP-5ebefc2/dist/local-plugin-only.js :304
  • figma_get_file_data atezer-FMCP-5ebefc2/dist/local-plugin-only.js :326
  • figma_get_design_context atezer-FMCP-5ebefc2/dist/local-plugin-only.js :373
  • figma_get_variables atezer-FMCP-5ebefc2/dist/local-plugin-only.js :428
  • figma_get_component atezer-FMCP-5ebefc2/dist/local-plugin-only.js :471
  • figma_get_styles atezer-FMCP-5ebefc2/dist/local-plugin-only.js :485
  • figma_execute atezer-FMCP-5ebefc2/dist/local-plugin-only.js :499
  • figma_clone_screen_to_device atezer-FMCP-5ebefc2/dist/local-plugin-only.js :696
  • figma_validate_screen atezer-FMCP-5ebefc2/dist/local-plugin-only.js :744
  • figma_scan_ds_compliance atezer-FMCP-5ebefc2/dist/local-plugin-only.js :770
  • figma_create_mini_ds atezer-FMCP-5ebefc2/dist/local-plugin-only.js :797
  • figma_capture_screenshot atezer-FMCP-5ebefc2/dist/local-plugin-only.js :826
  • figma_set_instance_properties atezer-FMCP-5ebefc2/dist/local-plugin-only.js :887
  • figma_update_variable atezer-FMCP-5ebefc2/dist/local-plugin-only.js :903
  • figma_create_variable atezer-FMCP-5ebefc2/dist/local-plugin-only.js :917
  • figma_create_variable_collection atezer-FMCP-5ebefc2/dist/local-plugin-only.js :932
  • figma_delete_variable atezer-FMCP-5ebefc2/dist/local-plugin-only.js :942
  • figma_delete_variable_collection atezer-FMCP-5ebefc2/dist/local-plugin-only.js :952
  • figma_rename_variable atezer-FMCP-5ebefc2/dist/local-plugin-only.js :962
  • figma_add_mode atezer-FMCP-5ebefc2/dist/local-plugin-only.js :972
  • figma_rename_mode atezer-FMCP-5ebefc2/dist/local-plugin-only.js :982
  • figma_get_design_system_summary atezer-FMCP-5ebefc2/dist/local-plugin-only.js :993
  • figma_search_components atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1023
  • figma_instantiate_component atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1055
  • figma_refresh_variables atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1077
  • figma_get_console_logs atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1087
  • figma_watch_console atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1100
  • figma_clear_console atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1140
  • figma_set_description atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1150
  • figma_get_component_image atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1164
  • figma_get_component_for_development atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1180
  • figma_extract_contract atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1203
  • figma_batch_create_variables atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1269
  • figma_batch_update_variables atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1288
  • figma_setup_design_tokens atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1304
  • figma_arrange_component_set atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1323
  • figma_check_design_parity atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1334
  • figma_get_token_browser atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1463
  • figma_get_status atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1534
  • figma_create_frame atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1601
  • figma_create_text atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1721
  • figma_create_rectangle atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1757
  • figma_create_group atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1789
  • figma_export_nodes atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1817
  • figma_enumerate_library_components atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1879
  • figma_enumerate_published_components atezer-FMCP-5ebefc2/dist/local-plugin-only.js :1976
  • figma_search_assets atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2097
  • figma_get_code_connect atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2128
  • figma_use atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2148
  • figma_get_library_variables atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2193
  • figma_bind_variable atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2236
  • figma_import_style atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2283
  • figma_plugin_diagnostics atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2335
  • figma_set_port atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2369
  • figma_set_rest_token atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2429
  • figma_clear_rest_token atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2482
  • figma_rest_api atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2489
  • figma_create_prototype_connection atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2639
  • figma_get_prototype_connections atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2761
  • figma_set_flow_starting_point atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2835
  • figma_create_interaction atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2877
  • figma_set_scroll_behavior atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2939
  • figma_get_rest_token_status atezer-FMCP-5ebefc2/dist/local-plugin-only.js :2981
  • figma_get_status atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :46
  • figma_get_variables atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :53
  • figma_get_file_data atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :59
  • figma_get_styles atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :68
  • figma_get_design_system_summary atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :74
  • figma_search_components atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :85
  • figma_get_design_context atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :101
  • figma_execute atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :115
  • figma_get_metadata atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :121
  • figma_capture_screenshot atezer-FMCP-5ebefc2/python-bridge/fmcp_bridge/__main__.py :127
  • figma_list_connected_files atezer-FMCP-5ebefc2/src/local-plugin-only.ts :339
  • figma_get_file_data atezer-FMCP-5ebefc2/src/local-plugin-only.ts :366
  • figma_get_design_context atezer-FMCP-5ebefc2/src/local-plugin-only.ts :419
  • figma_get_variables atezer-FMCP-5ebefc2/src/local-plugin-only.ts :480
  • figma_get_component atezer-FMCP-5ebefc2/src/local-plugin-only.ts :527
  • figma_get_styles atezer-FMCP-5ebefc2/src/local-plugin-only.ts :546
  • figma_execute atezer-FMCP-5ebefc2/src/local-plugin-only.ts :565
  • figma_clone_screen_to_device atezer-FMCP-5ebefc2/src/local-plugin-only.ts :763
  • figma_validate_screen atezer-FMCP-5ebefc2/src/local-plugin-only.ts :837
  • figma_scan_ds_compliance atezer-FMCP-5ebefc2/src/local-plugin-only.ts :883
  • figma_create_mini_ds atezer-FMCP-5ebefc2/src/local-plugin-only.ts :930
  • figma_capture_screenshot atezer-FMCP-5ebefc2/src/local-plugin-only.ts :972
  • figma_set_instance_properties atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1070
  • figma_update_variable atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1091
  • figma_create_variable atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1110
  • figma_create_variable_collection atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1130
  • figma_delete_variable atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1145
  • figma_delete_variable_collection atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1156
  • figma_rename_variable atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1167
  • figma_add_mode atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1178
  • figma_rename_mode atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1189
  • figma_get_design_system_summary atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1205
  • figma_search_components atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1240
  • figma_instantiate_component atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1276
  • figma_refresh_variables atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1304
  • figma_get_console_logs atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1315
  • figma_watch_console atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1333
  • figma_clear_console atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1375
  • figma_set_description atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1386
  • figma_get_component_image atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1405
  • figma_get_component_for_development atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1426
  • figma_extract_contract atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1454
  • figma_batch_create_variables atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1537
  • figma_batch_update_variables atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1563
  • figma_setup_design_tokens atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1586
  • figma_arrange_component_set atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1612
  • figma_check_design_parity atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1628
  • figma_get_token_browser atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1770
  • figma_get_status atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1850
  • figma_create_frame atezer-FMCP-5ebefc2/src/local-plugin-only.ts :1927
  • figma_create_text atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2052
  • figma_create_rectangle atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2093
  • figma_create_group atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2129
  • figma_export_nodes atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2162
  • figma_enumerate_library_components atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2236
  • figma_enumerate_published_components atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2338
  • figma_search_assets atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2464
  • figma_get_code_connect atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2504
  • figma_use atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2533
  • figma_get_library_variables atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2594
  • figma_bind_variable atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2646
  • figma_import_style atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2702
  • figma_plugin_diagnostics atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2763
  • figma_set_port atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2804
  • figma_set_rest_token atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2872
  • figma_clear_rest_token atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2931
  • figma_rest_api atezer-FMCP-5ebefc2/src/local-plugin-only.ts :2943
  • figma_create_prototype_connection atezer-FMCP-5ebefc2/src/local-plugin-only.ts :3107
  • figma_get_prototype_connections atezer-FMCP-5ebefc2/src/local-plugin-only.ts :3232
  • figma_set_flow_starting_point atezer-FMCP-5ebefc2/src/local-plugin-only.ts :3311
  • figma_create_interaction atezer-FMCP-5ebefc2/src/local-plugin-only.ts :3358
  • figma_set_scroll_behavior atezer-FMCP-5ebefc2/src/local-plugin-only.ts :3425
  • figma_get_rest_token_status atezer-FMCP-5ebefc2/src/local-plugin-only.ts :3472

install hooks 1

  • prepublishOnly atezer-FMCP-5ebefc2/package.json :30 npm run generate:embedded-skills && npm run build && npm run validate:fmcp-skills

declared dependencies 13

  • @modelcontextprotocol/sdk@^1.25.3
  • pino@^9.5.0
  • pino-pretty@^13.0.0
  • ws@^8.19.0
  • zod@^3.25.76
  • @biomejs/biome@^2.2.5
  • @types/jest@^29.5.14
  • @types/node@^22.10.2
  • @types/ws@^8.18.1
  • jest@^29.7.0
  • ts-jest@^29.2.5
  • tsx@^4.19.2
  • typescript@5.9.3

cursor-plugin 2

  • opaque (low) atezer-FMCP-5ebefc2/install/cursor/.cursor/mcp.json bundled .cursor/ plugin descriptor (atezer-FMCP-5ebefc2/install/cursor/.cursor/mcp.json) — presence-detected; review the descriptor
  • opaque (low) atezer-FMCP-5ebefc2/install/cursor/.cursor/rules/fmcp-orchestration.md bundled .cursor/ plugin descriptor (atezer-FMCP-5ebefc2/install/cursor/.cursor/rules/fmcp-orchestration.md) — presence-detected; review the descriptor