Skip to main content
Glama
mochammad123

MC Figma Bridge

by mochammad123

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Tools are mostly distinct: connection status, document info, selection, node read, text set, and frame creation each target a clear purpose. However, figma_get_selection and figma_read_node can both involve reading selected nodes, which may cause slight confusion.

    Naming Consistency4/5

    Most tools follow a 'figma_verb_noun' pattern (get_document_info, set_text, create_frame), but 'figma_connection_status' deviates from the verb_noun structure, and there is a mix of 'get' and 'read' verbs. Overall, the pattern is still easily recognizable.

    Tool Count5/5

    Six tools is a well-scoped set for a Figma bridge, covering essential read and write operations without being excessive. Each tool earns its place in the collection.

    Completeness3/5

    The set covers basic metadata reading, node reading, text editing, and frame creation, but lacks operations like editing other node properties, creating text nodes, or deleting nodes. Agents can handle simple tasks but will hit limitations for broader design manipulation.

  • Average 3.4/5 across 6 of 6 tools scored. Lowest: 2.8/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses one side effect ('select it') and the target context ('active Figma page'), but says nothing about potential overwrites, permissions, error cases, or effects on the existing selection. For a mutation tool, this is minimal and leaves important behaviors undisclosed.

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

    Conciseness4/5

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

    The description is a single, front-loaded sentence that directly conveys the core purpose without filler. It is appropriately concise for the main action, though it excludes important semantic details. It earns its place structurally, but could be slightly expanded without losing conciseness.

    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 lack of annotations, output schema, and parameter descriptions, the description is insufficiently complete for an agent to confidently invoke the tool. It does not explain return values, how coordinates relate to the page, or the consequences of creating a frame. The description is too sparse to support correct invocation in varied contexts.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description adds no information about any of the 6 parameters (x, y, name, width, height, timeoutMs). The description does not compensate for the lack of parameter documentation, leaving the agent without guidance on coordinate meanings, size limits, or naming conventions. This is a significant gap.

    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 clearly states the action: 'Create a frame on the active Figma page and select it.' It specifies a concrete verb (create), a resource (frame), and a location (active Figma page), making the tool's purpose unambiguous. It also distinguishes from sibling tools, which are mostly read/inspection tools (e.g., figma_get_selection, figma_read_node), so a creation tool is clearly differentiated.

    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 alternatives, nor any conditions or prerequisites. It does not mention that this should be used to create a new frame as opposed to modifying existing ones or reading the document. There are no exclusions or explicit references to sibling tools, leaving the agent without context for selection.

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

  • Behavior3/5

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

    With no annotations, the description carries the full behavioral burden. The verb 'read' implies a non-destructive operation, and the description adds scope (active file, current page), but it does not disclose any limitations, required context, or potential side effects beyond the basic read action.

    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 front-loads the verb and purpose. There is no redundant information or wasted words, making it easy to parse quickly.

    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?

    The tool has no output schema and no annotations, so the description must explain what is returned and any prerequisites. It only says 'basic metadata' without specifying which fields are included, nor does it mention error cases or dependency on an open Figma file, leaving significant ambiguity.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the tool description does not mention the timeoutMs parameter at all. The parameter name suggests a timeout in milliseconds, but no additional meaning or usage context is provided, leaving the agent to guess its effect.

    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 clearly states the tool reads basic metadata for the active Figma file and current page, using a specific verb ('read') and resource. This distinguishes it from siblings like figma_get_selection and figma_read_node, which target different data.

    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 alternatives, or any exclusions. It simply states what it does without mentioning situations where a different tool would be more appropriate.

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

  • Behavior2/5

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

    No annotations are provided, so the description must carry the full burden. It discloses that this is a read operation (non-mutating), but says nothing about behavior when there is no selection, the meaning of depth, timeout semantics, or error conditions. Minimal disclosure beyond the basic function.

    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?

    A single, directly worded sentence with no filler, clearly front-loaded with the action. It is concise and to the point, every word earns its place.

    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?

    The tool has two meaningful parameters and no output schema, but the description does not clarify depth semantics, timeout behavior, or return structure. Given the lack of annotations, the description is insufficient for an agent to fully understand behavior and edge cases.

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

    Parameters1/5

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

    Schema description coverage is 0%, so the description must compensate. It does not mention 'depth' or 'timeoutMs' at all, leaving their semantics entirely to the schema. The description adds no value beyond field names and defaults already shown in the schema.

    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 uses the specific verb 'Read' with the resource 'currently selected nodes' in the active Figma page, clearly distinguishing it from sibling tools like figma_read_node (specific node) and figma_get_document_info (general info).

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

    Usage Guidelines4/5

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

    The context is clear: use this tool to get the current selection. However, it does not explicitly mention alternatives or when not to use it, though the sister tools make the distinction implicit. This is clear context without exclusions.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It states it returns status and details, implying a read-only diagnostic operation, but it does not explicitly disclose side effects, prerequisites, or error behavior. This is adequate but minimal, with no extra context beyond the return value.

    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 front-loads the verb 'Return' and clearly states the resource. There is no unnecessary information or repetition, earning a perfect score.

    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?

    With no output schema and no annotations, the description should provide more detail about what 'status' and 'connection details' include. It is sufficiently complete for a simple status tool but leaves vagueness about the exact fields returned.

    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 the schema coverage is trivially 100%. Per the rubric, 0 parameters earns a baseline of 4. The description adds no parameter semantics because none exist.

    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 clearly states the tool returns the local WebSocket bridge status and active Figma plugin connection details. This is a specific verb+resource that distinguishes it from sibling tools like figma_get_document_info or figma_set_text, which handle document content.

    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 alternatives. It does not mention any context, prerequisites, or exclusions. The usage is only implied by the tool name and description, but there is no explicit direction for the agent.

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

  • Behavior3/5

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

    Since no annotations are provided, the description carries the behavioral disclosure burden. It discloses the fallback behavior when nodeId is omitted, which is valuable. However, it does not explain what the tool returns, how the depth parameter affects results, or any potential side effects, leaving gaps for a read operation.

    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 two sentences, leading with the primary action and adding a conditional fallback without any unnecessary detail. It is well-structured and easy to parse.

    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?

    The tool has no output schema and no annotations, so the description should cover return values and parameter effects. It covers the nodeId default but leaves depth and timeout entirely unexplained, and gives no indication of the response structure, making it incomplete for real-world use.

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

    Parameters2/5

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

    With 0% schema description coverage, the description must compensate. It indirectly explains nodeId by describing the omission behavior, adding some meaning. However, depth and timeoutMs are never mentioned, so the description fails to compensate for the other two parameters.

    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 uses the specific verb 'read' with the resource 'Figma node' and explicitly mentions the nodeId parameter, clearly distinguishing it from sibling tools like figma_get_selection or figma_set_text. The added fallback behavior for omitted nodeId further clarifies its scope.

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

    Usage Guidelines4/5

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

    It states that if nodeId is omitted, it reads the first selected node in the active page, providing a clear usage context. However, it does not explicitly name alternative tools or conditions when not to use it, so it lacks exclusionary guidance.

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

  • Behavior3/5

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

    With no annotations, the description carries the transparency burden. 'Replace' clearly indicates a mutating operation, and the fallback to selection is a useful behavioral detail. However, it fails to disclose failure modes (e.g., when no nodeId and no selection), irreversibility, or exact replacement semantics (full string vs partial).

    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 sentence that leads with the action and includes the most important condition. It is concise without sacrificing necessary information, making it easy to parse quickly.

    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?

    The tool appears simple, but the description omits key contextual details: what happens when neither nodeId nor a selection exists, the role of timeoutMs, and the return value (there is no output schema). It provides the core behavior but is incomplete for a tool with no annotations and an undocumented parameter.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description must compensate. It adds semantics only for nodeId (fallback to first selected node) and implicitly for text (the replacement string). The timeoutMs parameter is entirely unmentioned, leaving its purpose and acceptable values undocumented.

    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 uses a specific verb ('Replace') and a clear resource ('Figma text node'), which immediately distinguishes it from sibling read/create tools. It also adds a concrete detail about nodeId fallback, making the purpose unambiguous.

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

    Usage Guidelines4/5

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

    The description gives a clear usage hint: if nodeId is omitted, the first selected node is used. This implies when to rely on selection versus explicit node targeting. However, it doesn't explicitly mention alternatives or exclusions, such as not using it for other node types.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-figma MCP server

Copy to your README.md:

Score Badge

mcp-figma MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mochammad123/mcp-figma'

If you have feedback or need assistance with the MCP directory API, please join our Discord server