Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
作者による説明(英語の原文)
Run any Relay model (image, video, audio, LLM), poll tasks, upload files and search Relay's docs.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
RELAY_API_KEY, X-API-Key「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"relaygpu": {
"command": "npx",
"args": [
"-y",
"@relaygpu/mcp"
],
"env": {
"RELAY_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http relaygpu https://mcp.relaygpu.com/mcp --header 'X-API-Key: your-value'claude mcp add relaygpu --env RELAY_API_KEY=your-value -- npx -y @relaygpu/mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"relaygpu": {
"url": "https://mcp.relaygpu.com/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"relaygpu": {
"command": "npx",
"args": [
"-y",
"@relaygpu/mcp"
],
"env": {
"RELAY_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"relaygpu": {
"type": "http",
"url": "https://mcp.relaygpu.com/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"relaygpu": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@relaygpu/mcp"
],
"env": {
"RELAY_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
X-API-Key 秘密 必須 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン relaygpu.com で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:RELAY_API_KEY, X-API-Key
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.8)がレジストリに届いたのは13 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Figma Context MCP, Claude Real Video, Figma MCP Server
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
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.
The Figma MCP server brings Figma design context directly into your AI workflow.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Relay's MCP server. Your agent can find a Relay model, read its input schema, run it, poll long tasks, upload files, run workflows and search the Relay docs, all from Claude Code, Cursor, VS Code or Claude Desktop. It is built on @relaygpu/client. The tools are generic and take the model as a string, so a model added to Relay works without a new release.
Connect to the hosted server, or run it locally:
| How | Credential | |
|---|---|---|
| Hosted (Streamable HTTP) | https://mcp.relaygpu.com/mcp, nothing to install | X-API-Key: relay_sk_... header, or Authorization: Bearer |
| Local (stdio) | npx -y @relaygpu/mcp (Node ≥ 20) | RELAY_API_KEY=relay_sk_... in its environment; optional RELAY_BASE_URL (default https://relaygpu.com) |
The server never stores your key: the hosted one reads it from each request and uses it for that request only, the local one reads it from its environment.
Claude Code, Codex, Cursor and VS Code connect to the hosted server: no Node, no npx. Claude Desktop accepts remote servers only through OAuth, which v0 does not offer yet, so it uses the local server through a one-click bundle. Every client can also run the local server; see Local server.
Terminal, in the CLI or the VS Code / JetBrains extension alike:
claude mcp add --transport http --scope user relay https://mcp.relaygpu.com/mcp --header "X-API-Key: relay_sk_..."
--scope user makes it available in every project; without it the server exists only in the directory you ran the command in. Check it with /mcp in a new session. If the terminal answers command not found: claude, the extension is installed but the CLI is not: install it with curl -fsSL https://claude.ai/install.sh | bash (or npm install -g @anthropic-ai/claude-code).
Codex sends the key as a Bearer token from an environment variable, so the key stays out of config.toml. Set RELAY_API_KEY in your shell profile, then:
codex mcp add relay --url https://mcp.relaygpu.com/mcp --bearer-token-env-var RELAY_API_KEY
The button installs the entry below with a placeholder key; replace relay_sk_... in Cursor's MCP settings afterwards. By hand: ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project).
{
"mcpServers": { "relay": { "url": "https://mcp.relaygpu.com/mcp", "headers": { "X-API-Key": "relay_sk_..." } } } }
This installs the server for VS Code's own agent (Copilot Chat). Using Claude Code inside VS Code? Use the Claude Code command instead: the Claude Code extension does not read VS Code's MCP config.
VS Code asks for the key once and keeps it in its secret storage. By hand, in .vscode/mcp.json (one workspace) or with MCP: Open User Configuration (every workspace):
{
"inputs": [{ "type": "promptString", "id": "relay-key", "description": "Relay API key (relay_sk_...)", "password": true }], "servers": { "relay": { "type": "http", "url": "https://mcp.relaygpu.com/mcp", "headers": { "X-API-Key": "${input:relay-key}" } } } }
relay.mcpb.The bundle runs on Claude Desktop's built-in Node, so nothing else needs to be installed. get_credits and get_usage read the account, so they take a dashboard JWT or a custom-tier superkey, never a plain key; every other tool works with a plain key.
By hand instead: Settings → Developer → Edit Config opens claude_desktop_config.json in your default editor. Add the block below at the top level, save, then quit Claude Desktop (⌘Q) and reopen it:
{
"mcpServers": { "relay": { "command": "npx", "args": ["-y", "@relaygpu/mcp"], "env": { "RELAY_API_KEY": "relay_sk_..." } } } }
Any client can run the server on your machine instead; it needs Node 20 or newer on the PATH the client sees (see Troubleshooting).
claude mcp add relay --scope user --env RELAY_API_KEY=relay_sk_... -- npx -y @relaygpu/mcp
codex mcp add relay --env RELAY_API_KEY=relay_sk_... -- npx -y @relaygpu/mcp
Cursor (~/.cursor/mcp.json) and VS Code take the same command / args / env entry as the Claude Desktop block above; VS Code adds "type": "stdio" and lists it under "servers".
Ready-to-copy files are in examples/.
"command": run which npx in a terminal and paste the result (for example /Users/you/.nvm/versions/node/v22.22.0/bin/npx)."command" at a newer npx.npx, use "command": "cmd" with "args": ["/c", "npx", "-y", "@relaygpu/mcp"].npx downloads the package once (about 5 s); later starts take about 1 s.Tools marked *keyless* work without a credential on the local server. Keyless tools answer the public catalog; with a credential, search_models, get_model, get_pricing, estimate_cost and run_model's model lookup answer your account's: the models your tier and grants can run appear and run. The others are billed or account tools and need one. A hosted server with OAuth on (see Self-hosting) takes no request without a credential, keyless tools included.
| Tool | What it does | Example |
|---|---|---|
search_models *keyless* | Find models by tag and/or text; image-to-image also lists every image model that takes an input image (accepts: ["image"]) | "Find a text-to-video model from Kling" → {tag: "text-to-video", query: "kling"} |
get_model *keyless* | Route, request schema, example, pricing and status of one model | {model: "Qwen/qwen-image"} |
get_pricing *keyless* | Prices (public; your account's with a credential) for one model or all of them, including the media_storage SKUs | {model: "KlingTeam/v3-T2V"} |
estimate_cost *keyless* | Estimate from the price list (public; your account's with a credential; not an invoice) | {model: "KlingTeam/v3-T2V", usage: {duration_seconds: 5, quality_mode: "std"}} |
run_model | Run any model by name and wait up to 45 s | {model: "Qwen/qwen-image", input: {prompt: "a red fox", size: "512x512"}} |
check_task *keyless* | Poll a task (waits up to 30 s) | {task_id: "direct:…", wait_seconds: 30} |
upload_file | Host a file and get a URL for any *_url input (or an image editor's image), or a one-time upload slot for a local file on the hosted server | {path: "./clip.mp4", retention: "relay1d"} · {slot: true} |
list_workflows | List the workflow templates | "Which workflows can I run?" |
run_workflow | Start a workflow run, wait up to 45 s | {workflow_id: "script-voiceover", inputs: {messages: [{role: "user", content: "a lighthouse at dusk"}], voice: "Cherry"}} |
check_workflow_run *keyless* | Poll a run (waits up to 30 s) | {run_id: "…", wait_seconds: 30} |
cancel_workflow_run | Cancel a run that is still in progress | {run_id: "…"} |
get_credits | Credit balance, promos and consumption (JWT or custom-tier superkey) | "How many credits do I have left?" |
get_usage | Usage analytics (JWT or custom-tier superkey) | {period: "7d"} |
search_docs *keyless* | Search the Relay docs | {query: "idempotency key"} |
The hosted server cannot read files on your computer. How a local file reaches a model, per client:
| Client | Local file → model |
|---|---|
| Claude Code, Cursor, VS Code, Codex (hosted server) | upload_file({slot: true}) returns a curl line; the agent runs it in your shell with the file's path (no key in the shell, single use, 10 minutes) and it prints the file's url; pass that url to run_model (for example as image). |
| claude.ai, Claude Desktop, ChatGPT | upload_file({slot: true}) returns a link: open the link in your browser, pick the photo, and paste the link the page shows back into the chat; the model passes it to run_model. No key leaves the chat, single use, 10 minutes. A public URL of the file works too. |
| Local server (stdio), any client | upload_file({path: "./photo.png"}) uploads the file and returns its url. |
Image editors: search_models({tag: "image-to-image"}) lists every image model that takes an input image, each with accepts: ["image"].
tools/list and the keyless tools answer without a credential. A hosted server with OAuth on answers every /mcp request without a credential with 401 and WWW-Authenticate: Bearer resource_metadata="…", scope="relay", which is how clients start the "Connect Relay" sign-in; X-API-Key and Authorization: Bearer keep working there. A billed tool called without one returns a MISSING_CREDENTIALS tool error that names what to set: the X-API-Key header (hosted) or RELAY_API_KEY (stdio). Errors from Relay come back as tool errors that include the error class, code, requestId and the server's detail. Your key never appears in a tool result or a log line.run_model waits up to 45 s (wait_seconds, 0–45). If the task is still running after that, it returns the task_id and the line "Do not resubmit: call check_task with this task_id". Every submit carries an Idempotency-Key, so a retry does not bill twice. Pass your own idempotency_key if your agent might send the same submit again. Since 0.1.7 every model whose input schema takes async (image, video, audio) is submitted as a task, so a long image run returns a task_id, never a 524; chat models still answer inline.store_output with a media_storage SKU from get_pricing (for example relay7d). That SKU adds a per-file fee.urls); the server returns those links in place of the base64, for 1 h or the store_output lifetime. A result that carries base64 without a Rel冒頭だけを表示しています。続きはリポジトリで読めます