@nvanexan/figma-mcp
# @nvanexan/figma-mcp
Figma MCP server for GitHub Copilot coding agent — PAT auth via STDIO.
Extracts design context (layout, styles, typography, effects) from Figma files as CSS-like properties, and exports rendered images of Figma nodes. Built on the [Model Context Protocol](https://modelcontextprotocol.io/).
## Install
```bash
npm install -g @nvanexan/figma-mcp
```
Or use directly with npx:
```bash
npx @nvanexan/figma-mcp
```
## Setup
Set your Figma Personal Access Token as an environment variable:
```bash
export FIGMA_API_KEY=your-figma-pat
```
You can generate a token in Figma under **Settings > Personal Access Tokens**.
### GitHub Copilot / Claude Code
Add the server to your MCP configuration:
```json
{
"mcpServers": {
"figma": {
"command": "npx",
"args": ["-y", "@nvanexan/figma-mcp"],
"env": {
"FIGMA_API_KEY": "your-figma-pat"
}
}
}
}
```
## Tools
### `get_figma_context`
Extracts design context from a Figma URL and returns a simplified node tree with CSS-like properties (flexbox layout, colors, typography, effects, dimensions).
| Parameter | Type | Required | Description |
| --------- | ------ | -------- | ------------------------------------- |
| `figmaUrl`| string | yes | Figma file URL (with optional node-id)|
| `depth` | number | no | Node tree depth, 1–10 (default: 3) |
### `get_figma_image`
Exports a rendered image of a Figma node.
| Parameter | Type | Required | Description |
| --------- | ------ | -------- | ------------------------------------ |
| `figmaUrl`| string | yes | Figma URL with a node-id |
| `format` | string | no | `png`, `jpg`, `svg`, `pdf` (default: `png`) |
| `scale` | number | no | 0.01–4 (default: 2) |
## Development
```bash
npm install
npm run build
npm test
```
### Scripts
| Script | Description |
| ------------------ | ---------------------------------- |
| `npm run build` | Compile TypeScript to `dist/` |
| `npm run lint` | Lint source with ESLint |
| `npm test` | Run tests |
| `npm run test:watch` | Run tests in watch mode |
| `npm run test:coverage` | Run tests with coverage report |
## Releasing
This project uses GitHub Actions for CI and publishing.
**To release a new version:**
1. Update the version in `package.json` following [semver](https://semver.org/):
```bash
npm version patch # 0.1.0 → 0.1.1 (bug fixes)
npm version minor # 0.1.0 → 0.2.0 (new features)
npm version major # 0.1.0 → 1.0.0 (breaking changes)
```
2. Push the commit and tag:
```bash
git push origin main --follow-tags
```
3. The CI pipeline will automatically run tests and publish to npm.
## License
MIT
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one extracts design context as CSS-like properties, while the other exports rendered images. There is no overlap in functionality, making it easy for an agent to choose the right tool based on the need for data extraction versus visual output.
Both tools follow a consistent verb_noun pattern with 'get_figma_' as a prefix, using snake_case throughout. This predictable naming scheme enhances readability and makes the tool set coherent and easy to understand.
With only two tools, the server feels thin for a Figma integration, which typically involves more operations like creating or updating designs, listing files, or managing comments. The limited scope may restrict agent workflows, suggesting an incomplete surface for the domain.
The tool set is severely incomplete for a Figma MCP server, covering only context extraction and image export. It lacks core operations such as file management, design creation, or collaboration features, which are essential for comprehensive Figma integration, leading to potential agent failures in broader tasks.