Skip to main content
Glama
Rachit0-glitch

Unified Figma MCP

统一 Figma MCP

第一阶段调查项目,旨在构建一个统一的 Figma MCP 协调器,能够在无需修改任一现有后端的前提下,适当地使用 Plumb 和 Custom MCP。

正确的本地路径:

C:\Users\rachi\OneDrive\Documents\FIGMA UNIFIED MCP

第一阶段状态

第一阶段仅包含文档和验证。该仓库目前包含架构文档、测试结果以及一个 Custom MCP SDK 探针。尚未添加任何生产级协调器实现。

Related MCP server: Local Figma MCP Server

关键发现

Plumb 和 Custom 都是真实的 Figma MCP 路径,但当前的 Figma 工作流一次仅支持一个活动的 MCP 插件桥。因此,统一 MCP 应显式地暴露后端健康状态,并提供清晰的切换提示。

文档

  • docs/CURRENT_SYSTEM.md

  • docs/PLUMB_ARCHITECTURE.md

  • docs/CUSTOM_MCP_ARCHITECTURE.md

  • docs/PROTOCOL_MAP.md

  • docs/CAPABILITY_MATRIX.md

  • docs/ARCHITECTURE_OPTIONS.md

  • docs/FAILURE_ANALYSIS.md

  • docs/IMPLEMENTATION_RECOMMENDATION.md

  • docs/TEST_PLAN.md

  • docs/STAGE1_RESULTS.md

诊断脚本

scripts/custom-mcp-sdk-probe.mjs

示例:

node scripts\custom-mcp-sdk-probe.mjs --wait-paired --read --write

该脚本将现有的 Custom MCP 服务器作为子进程启动,使用 FIGMA-CUSTOM-MCP 中安装的 MCP SDK 通过 stdio 进行 MCP 通信,并可选择性地验证状态、读取、写入和清理操作。

第二阶段 状态

第二阶段添加了第一个真正的统一 MCP 协调器运行时:

npm run start

诊断辅助工具:

node scripts\unified-probe.mjs unified_status
node scripts\unified-probe.mjs unified_probe_backend '{"backend":"plumb"}'
node scripts\unified-probe.mjs unified_probe_backend '{"backend":"custom"}'
node scripts\unified-live-sequence.mjs

第二阶段文档:

  • docs/STAGE2_ARCHITECTURE.md

  • docs/STAGE2_TEST_PLAN.md

  • docs/STAGE2_RESULTS.md

  • docs/BACKEND_ADAPTERS.md

  • docs/STATUS_MODEL.md

  • docs/ERROR_MODEL.md

第三阶段 状态

第三阶段调查了自动化后端交接。结果:自动化交接被阻止,在当前的双插件架构下无法实现。统一 MCP 可以观察手动后端变更,但在没有新的插件架构或脆弱的 UI 自动化的情况下,无法合法地启动非活动的 Figma 插件。

第三阶段文档:

  • docs/STAGE3_INVESTIGATION.md

  • docs/HANDOFF_STATE_MACHINE.md

  • docs/BACKEND_LIFECYCLE.md

  • docs/STAGE3_TEST_PLAN.md

  • docs/STAGE3_RESULTS.md

  • docs/HANDOFF_BLOCKER.md

  • docs/RUNTIME_ALTERNATIVES.md

Available Tools

4 tools
unified_active_backendA

Return only the currently detected active Figma backend.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations to rely on, so the description must carry the burden of behavioral transparency. It only states the return action without disclosing potential side effects, error handling, or whether the tool is read-only. This minimal disclosure leaves ambiguity about edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that conveys the essential information without superfluous content. It is well-structured and directly to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool and the absence of parameters or output schema, the description is largely complete. However, it does not clarify what constitutes 'active' or 'detected', which might be relevant for a user to fully understand the tool's behavior in ambiguous scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool accepts no parameters, so there is nothing to explain. The description correctly does not mention any inputs, and the schema confirms zero parameters, making this dimension trivially satisfied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states that the tool returns the currently active detected Figma backend, which is a clear and specific purpose. It distinguishes this tool from potential alternatives by focusing on the active backend only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus the sibling tools (unified_status, unified_backends, unified_probe_backend), nor does it mention any conditions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unified_backendsB

Return known Unified MCP backends and their capability summaries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavior. It says it returns backends and capability summaries, but it doesn't specify what 'known' means (e.g., static list, dynamic discovery), whether it involves network calls, or what the output structure is. It is not misleading, but it is under-transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence, front-loaded, and wastes no words. It achieves conciseness without under-specification (though room remains for more detail).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and no annotations, the description gives a high-level purpose but lacks details like the format of 'capability summaries' or whether the result is a list or map. It is adequate for simple discovery but leaves meaningful questions for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0 parameters, there is no additional meaning to provide. The baseline for no parameters is 4, and the description appropriately focuses on the purpose. It exceeds because it clarifies the output includes capability summaries, which is useful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool returns known backends and their capabilities, which is clear and specific. It could be improved by distinguishing it from sibling tools like 'unified_status' or 'unified_active_backend', but it stands on its own.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for discovering backends, but does not explicitly state when to use it versus alternatives. Sibling tools exist for status and active backend, but no guidance is given on when to prefer this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unified_probe_backendA

Run a safe read-only diagnostic through one backend: plumb or custom.

ParametersJSON Schema
NameRequiredDescriptionDefault
backendYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

States the operation is safe and read-only, but no details on what the diagnostic entails, potential results, or side effects. Since no annotations exist, the description carries the full burden and is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise and to the point. Includes essential information (safe, read-only, backend choices) without redundancy or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description lacks details about what the diagnostic returns or accomplishes. It's vague about the nature of the probe, leaving the agent uncertain about outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'backend' is well-defined via enum and required, providing full schema coverage. The description adds minimal value beyond restating the options, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool runs a safe read-only diagnostic and specifies the backend options (plumb or custom). Distinguishes from sibling tools like unified_status or unified_backends by focusing on probing a backend.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a hint of usage ('diagnostic', 'safe read-only') but lacks explicit guidance on when to choose this tool over alternatives. No mention of conditions or context for probing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unified_statusB

Return current normalized health for Plumb and Custom backends plus active backend detection.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only health status operation but does not explain what 'normalized' means, whether probing occurs, what counts as active, or any side effects or data-access implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It efficiently conveys the core action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, no annotations, and several closely related sibling tools, the description is too thin. It does not explain the meaning of 'normalized health', what 'active backend detection' entails, or how this endpoint differs from unified_active_backend.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so there is nothing for the description to add about parameters. The baseline of 4 is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb ('Return') and specifies a resource ('current normalized health for Plumb and Custom backends plus active backend detection'), which conveys the core purpose. However, it does not explicitly distinguish itself from the sibling tool unified_active_backend, which likely also covers active backend detection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus siblings such as unified_backends, unified_active_backend, or unified_probe_backend. There is no context about scenarios, exclusions, or preferred alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedunified_active_backend
    • First observedunified_backends
    • First observedunified_probe_backend
    • First observedunified_status

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation2/5

unified_status and unified_active_backend clearly overlap—both report active backend detection, making one redundant. unified_backends and unified_probe_backend are more distinct, but boundaries between status, backends, and probing are not crisp, causing potential misselection.

Naming Consistency4/5

All tools share the 'unified_' prefix and use snake_case, creating a predictable pattern. Minor inconsistency exists because three are noun-based (status, backends, active_backend) while probe_backend is verb+noun, but overall naming remains coherent and easily scannable.

Tool Count4/5

Four tools is within the ideal range for a focused server, but the overlap between status and active_backend reduces efficiency. Still, the count is not excessive and each tool has a named purpose, even if some purposes are redundant.

Completeness4/5

The server appears scoped to backend status and diagnostic coverage; it includes health normalization, capability listing, active detection, and probing. It lacks operations like switching backends or configuration, but for a read-only status server, coverage is largely sufficient.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Local-first MCP bridge for live Figma documents, enabling design inspection, editing, asset export, component authoring, and variable management through a plugin and WebSocket server without consuming Figma REST API requests.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP-compatible AI clients to read and modify the user's currently open Figma file by executing JavaScript in Figma's sandbox, all through a local bridge with status monitoring, node jumping, and automatic rollback on errors.
    1
    MIT