Skip to main content
Glama
MatthewDailey

Figma MCP Server

post_comment

Add comments to specific elements in Figma files to provide feedback, ask questions, or mark design areas for review.

Instructions

Post a comment on a node in a Figma file

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
file_keyYesThe key of the Figma file
node_idNoThe ID of the node to comment on. Node ids have the format `<number>:<number>`
messageYesThe comment message
xYesThe x coordinate of the comment pin
yYesThe y coordinate of the comment pin

Implementation Reference

  • Primary handler function for the post_comment tool. It calls the Figma API helper and formats the response as MCP CallToolResult.
    async function doPostComment(
      fileKey: string,
      message: string,
      x: number,
      y: number,
      nodeId?: string
    ): Promise<CallToolResult> {
      const data = await postComment(fileKey, message, x, y, nodeId);
      return {
        content: [
          {
            type: "text",
            text: JSON.stringify(data, null, 2),
          },
        ],
      };
    }
  • Tool definition for post_comment, including name, description, and detailed input schema.
    const POST_COMMENT: Tool = {
      name: "post_comment",
      description: "Post a comment on a node in a Figma file",
      inputSchema: {
        type: "object",
        properties: {
          file_key: {
            type: "string",
            description: "The key of the Figma file",
          },
          node_id: {
            type: "string",
            description:
              "The ID of the node to comment on. Node ids have the format `<number>:<number>`",
          },
          message: {
            type: "string",
            description: "The comment message",
          },
          x: {
            type: "number",
            description: "The x coordinate of the comment pin",
          },
          y: {
            type: "number",
            description: "The y coordinate of the comment pin",
          },
        },
        required: ["file_key", "message", "x", "y"],
      },
    };
  • index.ts:138-140 (registration)
    Registration of the POST_COMMENT tool in the listTools request handler.
    server.setRequestHandler(ListToolsRequestSchema, async () => ({
      tools: [ADD_FIGMA_FILE, VIEW_NODE, READ_COMMENTS, POST_COMMENT, REPLY_TO_COMMENT],
    }));
  • Dispatch handler in CallToolRequestSchema that routes post_comment requests to the doPostComment function.
    if (request.params.name === "post_comment") {
      const input = request.params.arguments as {
        file_key: string;
        node_id?: string;
        message: string;
        x: number;
        y: number;
      };
      return doPostComment(input.file_key, input.message, input.x, input.y, input.node_id);
    }
  • Core helper function that performs the actual HTTP POST request to the Figma Comments API.
    export async function postComment(
      fileKey: string,
      message: string,
      x: number,
      y: number,
      nodeId?: string
    ) {
      const response = await axios.post(
        `https://api.figma.com/v1/files/${fileKey}/comments`,
        {
          message,
          client_meta: { node_offset: { x, y }, node_id: nodeId },
        },
        {
          headers: {
            "X-FIGMA-TOKEN": getFigmaApiKey(),
            "Content-Type": "application/json",
          },
        }
      );
      return response.data;
    }

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/MatthewDailey/figma-mcp'

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