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)
Thai, English, Mandarin speech AI: TTS with playback, transcription, translation, OCR, extraction
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.
PAXA_API_KEY, PAXA_OUTPUT_DIR, PAXA_DEFAULT_VOICEValues 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": {
"paxalabs": {
"command": "npx",
"args": [
"-y",
"@paxalabs/mcp"
],
"env": {
"PAXA_API_KEY": "your-value",
"PAXA_OUTPUT_DIR": "your-value",
"PAXA_DEFAULT_VOICE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add paxalabs --env PAXA_API_KEY=your-value --env PAXA_OUTPUT_DIR=your-value --env PAXA_DEFAULT_VOICE=your-value -- npx -y @paxalabs/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"paxalabs": {
"command": "npx",
"args": [
"-y",
"@paxalabs/mcp"
],
"env": {
"PAXA_API_KEY": "your-value",
"PAXA_OUTPUT_DIR": "your-value",
"PAXA_DEFAULT_VOICE": "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": {
"paxalabs": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@paxalabs/mcp"
],
"env": {
"PAXA_API_KEY": "your-value",
"PAXA_OUTPUT_DIR": "your-value",
"PAXA_DEFAULT_VOICE": "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.
PAXA_OUTPUT_DIR envPAXA_DEFAULT_VOICE 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 against the domain paxalabs.com (the registry checks domain ownership)
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: PAXA_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-beta.18) reached the registry 2 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.
Official MCP server for the Paxa Labs API: Thai, English, and Mandarin Chinese speech AI for your agent, including local audio playback, plus transcription, translation, and document reading across languages.
An agent connected to this server can speak out loud through your machine's speakers, read long content aloud as a managed playback queue, save speech to audio files, listen for a spoken reply, transcribe recordings with subtitles, translate between 15 languages, read PDFs and images with OCR, and extract typed fields from documents.
Beta. The tool set is complete and tested end to end, but tool names and
behavior may still change before 1.0 as feedback comes in. Report problems at
https://github.com/paxalabs/mcp/issues.
You need a Paxa API key from paxalabs.com. New accounts include free credits.
claude mcp add paxa -e PAXA_API_KEY=pxa_your_key_here -- npx -y @paxalabs/mcp
Add to your client's MCP configuration (for Claude Desktop: claude_desktop_config.json):
{
"mcpServers": { "paxa": { "command": "npx", "args": ["-y", "@paxalabs/mcp"], "env": { "PAXA_API_KEY": "pxa_your_key_here" } } } }
One click for Cursor or VS Code: the buttons install the same entry into ~/.cursor/mcp.json or VS Code's MCP settings. Then replace pxa_your_key_here in the paxa entry with your key.
| Tool | What it does | Credits |
|---|---|---|
speak | Synthesize a short line and play it through the speakers, blocking until done | 10 per 1000 chars (12.5 in a designed voice) |
queue_speech | Read long content aloud: auto-chunks, synthesizes ahead while playing, returns immediately | 10 per 1000 chars (12.5 in a designed voice) |
control_playback | Control the shared audio queue: status, pause, resume, skip, clear | free |
play_audio | Play a local audio file through the speakers | free |
text_to_speech | Synthesize speech to an audio file (mp3, opus, wav, raw pcm, or mulaw and alaw for phone lines, with sample_rate for pcm and wav) without playing it: long scripts are split and joined into one file, and subtitles writes a matching srt or vtt | 10 per 1000 chars (12.5 with subtitles or in a designed voice, 15 with both) |
dialogue_to_speech | Synthesize a script of lines, each in its own voice, to one audio file with a set gap between lines: returns each line's start and end, and subtitles writes captions that never cross two lines | 10 per 1000 chars, each line at its voice's rate (12.5 with subtitles or in a designed voice, 15 with both) |
design_voice | Make a new voice from a written description and play the line it speaks | 5 per call |
refine_voice | Change a draft voice in words, such as "a little lower and slower", and play its new line | 5 per call |
save_voice | Save a draft as one of your voices, with an id the speech tools accept | free |
rename_voice | Rename one of your designed voices; the id and sound stay | free |
delete_voice | Delete one of your designed voices and free its slot | free |
translate | Translate into any of 15 languages from any of them, with formality, glossary, style examples, alternative renderings, and context controls | 25 per 1000 chars per rendering |
ocr_document | OCR a local PDF, PNG, JPEG, or WebP (Thai, English, Simplified Chinese, and more, mixed pages too) into Markdown or structured blocks | 6.5 per page |
extract_fields | Fill a schema of typed fields (Thai IDs, dates, amounts, banks, line items) from a local PDF or image; every value is printed in the document or null with the reason | 13 per page (19.5 for schemas over 50 fields) |
listen | Record one spoken turn from the microphone and return its transcript; the API detects when the user stops talking | 12.5 per minute listened |
send_feedback | Rate an output or report a problem to the Paxa team, tied to the request ids the tools print | free |
transcribe_audio | Transcribe a local recording or video (Thai, English, Mandarin, other languages, mixed; up to 120 minutes) to text, with optional speaker labels, word timings, srt or vtt subtitles, and a list of pauses to cut | 8.33 per minute |
list_voices | Your designed voices and slots, then the TTS voice roster with character notes | free |
list_models | Available models, limits, and pricing | free |
get_account | Credit balance, plan, and rate limits | free |
All audio flows through one ordered queue, so sounds never overlap: speak lines slip in ahead of queued long-form segments, and queue_speech keeps a book or article flowing gap-free by synthesizing the next segment while the current one plays.
With a streaming-capable player installed (see below), speech starts on the first bytes from the API instead of after the full download: about 0.3 s to the first word regardless of length, versus 0.7 s for a short line and 2.5 s for a long paragraph when buffered.
Three pieces turn Claude Code into something you can walk away from: it talks when it has news, and it calls you when it needs you.
1. Install the server (Quick start above).
2. Tell Claude when to talk. Add this to ~/.claude/CLAUDE.md, or to one project's CLAUDE.md:
## Voice
I have the Paxa MCP server (tools: speak, queue_speech, control_playback). I am often away from the screen, so use voice like this:
3. Get told when Claude needs you. When Claude Code waits for a permission or an answer, the model is not running, so it cannot call speak. Claude Code fires a hook at those moments instead, and paxa say turns the hook into a spoken phrase such as "Permission needed." Put the paxa command on your PATH:
npm install -g @paxalabs/mcp
Then add to ~/.claude/settings.json:
{
"hooks": { "Notification": [ { "matcher": "permission_prompt|idle_prompt|agent_needs_input", "hooks": [{ "type": "command", "command": "paxa say" }] } ] } }
paxa say takes the key from PAXA_API_KEY, or from the paxa entry in ~/.claude.json when that is unset, so step 1 is all the setup it needs. A Stop hook configured the same way speaks "Done." at the end of every turn.
The built-in phrases are synthesized once per voice and kept in your user cache directory (~/Library/Caches/paxa/say on macOS, ~/.cache/paxa/say on Linux, %LOCALAPPDATA%\paxa\cache\say on Windows). After that first play, which costs well under one credit, a notification plays from disk: no network round trip and no credits.
To change the words, write your own text in the hook command and add --cache so it gets the same treatment. One entry per event, since the matcher picks the event:
{
"hooks": { "Notification": [ { "matcher": "permission_prompt", "hooks": [{ "type": "command", "command": "paxa say --cache \"Hey, need your OK\"" }] }, { "matcher": "idle_prompt|agent_needs_input", "hooks": [{ "type": "command", "command": "paxa say --cache --voice cookie \"Your turn\"" }] } ] } }
Without --cache, nothing you type or pipe into paxa say is written to disk, and messages carried inside a hook payload never are.
On macOS the built-in afplay needs about half a second just to start and stop, which is most of the delay you hear on a short phrase. With brew install mpg123 (or ffmpeg) installed, cached phrases play through that instead: mpg123 starts in about 50 ms, ffplay in about 300 ms.
paxa say also works on its own:
paxa say "Build finished"
paxa say --voice cookie "Deploy is live"
If your editor or desktop app was not launched from a terminal, its PATH may not include your node bin directory, and the hook will fail silently. Use the absolute path to paxa in the hook command if that happens.
Speech runs on Paxa TTS Flash v2 by default: 50 voices that each speak Thai, English, and Mandarin Chinese, and every voice reads direction tags written into the text, such as [whispering], [laughs], [speaking slowly, close to the microphone], a weighted blend like [happy:0.7+sad:0.3], or and marks. Pause tags add silence where they stand: [short pause], [pause], [long pause], or an exact [pause 300ms] up to 500 ms. Nothing in brackets is spoken, tag characters bill as text, and a tag the model cannot do is refused before any charge. The directions guide lists every sound and rule.
temperature (0 to 2, default 0.5) sets how much a reading varies from one request to the next. Use 0 when a line must match the takes around it, such as one sentence regenerated inside a finished voiceover.
Pass model: "paxa-tts-flash-v1" on a call, or set PAXA_TTS_MODEL, only for v1's legacy features: four Thai voices with regional accents (Isan, Northern, Southern), the fixed emotion tags on khanomchan and kaprao, or one of the eight voices v2 does not carry (donut, toast, padthai, yoyo, somtam, larb, khaosoi, roti). Same price and limits on both.
When no catalog voice fits, describe the one you want. design_voice turns one or two sentences (who is speaking, how they sound, where it will be heard, and the language they speak) into a voice and plays the line it speaks. refine_voice takes one change at a time, such as "a little lower and slower"
Only the beginning is shown; read the rest in the repo