[Question] Multiple Figma MCP instances with separate tokens - Best practice?

Hi everyone,

I am integrating several Figma projects (Back-office, Front-office, and Design System) into my Cursor workflow using the Model Context Protocol (MCP).

Since these environments are distinct and I want to avoid context “pollution” for the AI, I am looking for the best way to structure my mcp_config.json. My goal is to ensure that each project is isolated with its own File Key and potentially different Access Tokens.

Is the following “multi-instance” approach the recommended way to handle this in Cursor?

JSON

{
  "mcpServers": {
    "figma-backoffice": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-figma"],
      "env": {
        "FIGMA_PERSONAL_ACCESS_TOKEN": "TOKEN_1",
        "FIGMA_FILE_KEYS": "BACKOFFICE_KEY"
      }
    },
    "figma-frontoffice": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-figma"],
      "env": {
        "FIGMA_PERSONAL_ACCESS_TOKEN": "TOKEN_2",
        "FIGMA_FILE_KEYS": "FRONTOFFICE_KEY"
      }
    }
  }
}

Specifically, I have two questions:

  1. Context Switching: Will Cursor effectively treat these as two separate tools? Can I explicitly tell the chat to “Query the figma-backoffice server” to avoid it searching through the Front-office files by mistake?

  2. Resource Usage: Does running multiple instances of the same MCP server (@modelcontextprotocol/server-figma) impact performance or cause conflicts in Cursor?

If there is a better way to manage multiple Figma entry points via a single server instance while keeping the tokens/keys separate, I’d love to hear your thoughts.

Thanks for your help!

Hey, good question. The multi-instance approach you outlined will work, but there’s one nuance worth knowing about.

Context switching: Yes, Cursor treats these as separate MCP servers with unique names (figma-backoffice, figma-frontoffice). You can tell the agent to use a specific one. That said, since both instances of @modelcontextprotocol/server-figma expose the same underlying tool names, there used to be a routing bug where Cursor would send all calls to whichever server registered first. This was fixed in Cursor 2.3 (related thread), but at least one user reported intermittent issues afterward. Make sure you’re on the latest version.

Resource usage: Running multiple stdio-based MCP instances has minimal overhead. Each one is just a separate Node process. No conflicts expected at that level.

A couple of tips:

  1. If you hit routing issues (the agent calls the wrong server), the proven workaround is to fork the MCP server code and give each instance unique tool names. This thread describes the approach.

  2. Figma now has an official SSE-based MCP server at https://mcp.figma.com/mcp (listed in our docs). It might be worth checking if it fits your multi-project workflow better than the npm package.

  3. Being explicit in your prompts helps. Something like “Use the figma-backoffice MCP to get the layout for page X” will guide the agent to the right server.

Let me know if you run into any issues with the setup.