Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Description from the maker (original English)
Tell your human in person: a 3D character walks onto their open browser tab and says it out loud.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
THREE_WS_API_KEY, THREE_WS_BASE, THREE_WS_TIMEOUT_MSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"herald": {
"command": "npx",
"args": [
"-y",
"@three-ws/herald-mcp"
],
"env": {
"THREE_WS_API_KEY": "your-value",
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add herald --env THREE_WS_API_KEY=your-value --env THREE_WS_BASE=your-value --env THREE_WS_TIMEOUT_MS=your-value -- npx -y @three-ws/herald-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"herald": {
"command": "npx",
"args": [
"-y",
"@three-ws/herald-mcp"
],
"env": {
"THREE_WS_API_KEY": "your-value",
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"herald": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/herald-mcp"
],
"env": {
"THREE_WS_API_KEY": "your-value",
"THREE_WS_BASE": "your-value",
"THREE_WS_TIMEOUT_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
THREE_WS_BASE envTHREE_WS_TIMEOUT_MS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account nirholas, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: THREE_WS_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 38 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Let your agent tell you something in person.
An MCP server with one idea behind it: when an agent finishes something that mattered, or gets stuck, it should not add a line to a log you will never scroll back to. It should walk up to you and say so.
Wire this in, and it does. Your own 3D companion appears in the corner of whatever browser tab you have open, gestures, and says the line out loud, with a link to click through.
you: run the migration, then the backfill, and tell me when it's done
agent: [runs for 22 minutes] [calls announce_result: task "the backfill", outcome succeeded, 1320s] your browser: your avatar walks on: "the backfill finished in 22m"
| Tool | What it does |
|---|---|
announce | Say one line, with importance (0-100), tone, a gesture, and an optional link. |
announce_result | Report a finished task. The urgency is chosen from the outcome, so a failure cuts through quiet hours and a success does not. |
check_rail | Prove the key and the rail work, without interrupting anybody (queues at importance 0, which every client drops). |
npx -y @three-ws/herald-mcp
Claude Code:
claude mcp add herald -e THREE_WS_API_KEY=sk_live_... -- npx -y @three-ws/herald-mcp
Claude Desktop / Cursor (mcp.json):
{
"mcpServers": { "herald": { "command": "npx", "args": ["-y", "@three-ws/herald-mcp"], "env": { "THREE_WS_API_KEY": "sk_live_..." } } } }
Create one at three.ws/dashboard/developers with the `herald:announce` scope, and put it in THREE_WS_API_KEY.
An announcement is always delivered to the key owner's own live sessions. There is no recipient parameter: this server cannot be pointed at anybody else, so the worst a leaked key can do is annoy the person who leaked it. Revoke it in the same place.
| Variable | Required | Default | Notes |
|---|---|---|---|
THREE_WS_API_KEY | yes | API key with herald:announce, or an OAuth access token. Aliases: THREE_WS_TOKEN, THREE_WS_BEARER. | |
THREE_WS_BASE | no | https://three.ws | Override for self-hosting or a preview deployment. |
THREE_WS_TIMEOUT_MS | no | 20000 | Per-request timeout. |
Announcements are scarce on purpose. The receiving client applies an importance floor, a rate limit, dedupe, quiet hours, and a freshness window, so anything that does not clear the bar is dropped rather than queued. That is the feature: an interruption only works while it is rare.
Good: a long job finished, a job failed, a decision is needed, something broke, money moved.
Bad: progress updates, "starting step 3 of 7", anything the person can read later. Those belong in the notification inbox (@three-ws/notifications-mcp).
If nothing is open to hear it, the line expires in about five minutes. The rail is a live channel, not an archive.
// something broke, and it should wake somebody up
{ "name": "announce", "arguments": { "text": "The payments worker has been failing for 10 minutes", "from": "watchdog", "importance": 95, "tone": "error", "url": "https://three.ws/dashboard", "key": "payments-worker-down" } }
// a long task finished, and it should not { "name": "announce_result", "arguments": { "task": "the nightly backfill", "outcome": "succeeded", "seconds": 1320 } }
// wiring check { "name": "check_rail", "arguments": { "note": "claude-code" } }
POST /api/herald/announce queues the line on the account's rail; the page listens over SSE and hands it to @three-ws/herald, which decides whether it clears the person's own rules and then delivers it through the 3D companion (or an accessible card when there is no GPU).
Try the whole loop, including the rules engine, at three.ws/herald.
Apache-2.0.