Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
제작자가 쓴 설명(영어 원문)
Best moments + video-gen prompts per scene, beats, tempo, key. Spotify Audio Features alternative.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
X-API-Key비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
터미널에서 이 명령어를 실행하세요
claude mcp add --transport http songbrain https://api.songbrain.ai/v1/mcp --header 'X-API-Key: your-value'실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"songbrain": {
"url": "https://api.songbrain.ai/v1/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"songbrain": {
"type": "http",
"url": "https://api.songbrain.ai/v1/mcp",
"headers": {
"X-API-Key": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
X-API-Key 비밀 HTTP header이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
도구 이름과 설명은 서버가 2026년 11월 7일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
list_example_songsList real Songbrain analyses of Songbrain's own songs (no API key needed). Use one to show what the API returns before analysing a user's song.
get_example_analysisFull analysis of an example song: Song DNA, beat grid and sections, best moments, lyrics, scores, story and shot plan. No API key needed. Summary view by default (no per-word timings or beat arrays); set view='full' for everything.
get_example_shot_planThe beat-synced shot plan of an example song: every scene with start and end seconds, its act (setup, turn or payoff), the image/video prompt, framing, motion and the lyric sung under it, plus the story, world and palette. No key needed.
get_pricingSongbrain API prices (free songs per month, price per song) and limits.
analyze_songStart the analysis of a song at a public audio URL (MP3, WAV, FLAC, M4A, AAC, OGG or AIFF; 30 s to 10 min). Needs an API key on the MCP connection. Returns a song_id; poll get_song until status is 'done' (typically 60–90 seconds, up to ~2 minutes when busy). Uses one free song, o
get_songStatus of a song started with analyze_song, then its full analysis once done. Summary view by default; view='full' adds word timings and beat arrays.
add_video_directionFor a finished song analysed with mode 'dna': builds its story and beat-synced shot plan (scenes with seconds and image/video prompts) from the existing analysis. 15 credits, refunded if it fails. Then poll get_song (about 30 seconds).
get_accountFree songs left this month, credit balance and price per song for the connected key.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 songbrain-ai 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
434ms 만에 응답(HTTP 200)
로그인 필요 없음
도구 설명 8개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: X-API-Key
제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.4)은 19일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Figma Context MCP, Claude Real Video, Figma MCP Server
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도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, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Song in, video plan out — the music analysis API for AI video.
Send a song. Get back JSON that a video model can use directly: what the song is, where the beats and sections are, which part to use, what the words are and when they are sung, what the video should show, and a shot list with a prompt for every scene that cuts on the beat.
Under the hood that is beat detection with downbeats, song structure analysis (sections with repeat letters), best-moment detection and word-timed lyrics in one hosted API, plus an MCP server at https://api.songbrain.ai/v1/mcp so Claude, Cursor or ChatGPT can read a song directly (setup guide).
This repository holds the official SDKs for Python and JavaScript/TypeScript, examples, and the MCP server entry.
curl https://api.songbrain.ai/v1/examples/old-truck-home/shot-plan
This returns the story and shot plan of a real song in exactly the format your songs get. GET /v1/examples lists all examples.
One document per song (schema songbrain.song/1). Times are seconds from the start of the song.
| Section | What is in it |
|---|---|
song_dna | Genre and subgenre (37 subgenres), tempo, key and key changes, mood, vocal style, instruments, energy, loudness (LUFS, true peak, per-platform check), a tagline and similar tracks |
timeline | Every beat, every downbeat, time signature, sections with repeat letters (A, B, A) and energy, vocal changes, lyric hooks |
best_moments | Ranked windows with start, peak and end, a score, the reason they work and the measured signals behind it, the beats inside, the words sung |
lyrics | Lines with start and end, and every word with its own start and end |
scores | Virality, quality and lyrics scores with breakdowns, what works, what to fix, audience |
story | What the song means, one world, a three-colour palette, the one element the video is about (before, event, after), setup / turn / payoff |
shot_plan | A beat-synced edit of the best moment (about 15 s, 9:16): every scene with absolute start and end seconds, act, kind, camera motion, transition, framing and a ready image/video prompt. Plus a section-level plan for the full song with cut points on the beat |
One scene from the shot plan:
{
"index": 1, "kind": "tease", "act": "setup", "start_sec": 94.83, "end_sec": 96.246, "duration_sec": 1.416, "beats_in_scene": 4, "transition_in": "cold open, hold", "motion": "slow push-in on a still world", "prompt": "wide establishing shot of the empty space: A distant, warm yellow light source pulses faintly in the deep blue night ...", "sung": null }
A song takes 60–90 seconds to analyse (up to about 2 minutes when busy).
Most of a song is not worth animating. Songbrain ranks the strongest windows first (best_moments, each with the reason it works and the audio signals behind it) and builds the shot_plan on the top one: about 15 seconds, cut on the beat, one scene per cut. Every scene carries a ready prompt for an image or video model, written from the song's story, world and three-colour palette, so the scenes look like one film instead of unrelated clips.
{"index": 8, "act": "turn", "start_sec": 102.965, "end_sec": 103.282, "motion": "impact: frame lands displaced and settles, fast energy",
"prompt": "tight detail shot: The truck's grille, showing rust, illuminated by the faint glow of the low headlight. Faded brown and warm yellow, in ..."}
Pass the prompts to Kling, Runway, Luma, Veo or a hosted model on fal or Replicate, and cut the clips at the given seconds. Recipes: render-with-your-model.md, song_to_clips_fal.py, song_to_clips_replicate.py. The full-song plan (shot_plan.full_song) gives the cut points for a complete video.
Since November 27, 2024, new Spotify apps get a 403 on /audio-features and /audio-analysis. Songbrain returns the same kind of data from any audio file, released or not, and more:
| Spotify | Songbrain | Note |
|---|---|---|
tempo | song_dna.tempo_bpm | plus tempo_confidence |
key + mode | song_dna.key | "C minor"; key_changes[] with the second each one happens |
energy | song_dna.energy | 0–1, plus energy per section |
loudness | song_dna.loudness_lufs | EBU R128 integrated loudness and true peak |
valence, danceability | song_dna.mood[] | mood words rather than a number |
instrumentalness, speechiness | has_vocals, song_dna.vocals | vocal style or "instrumental" |
audio-analysis beats | timeline.beats | every beat in seconds |
audio-analysis bars | timeline.downbeats | first beat of each bar |
audio-analysis sections | timeline.sections | with repeat letters (A, B, A …) and relative energy |
| — | best_moments, lyrics, story, shot_plan | not in Spotify: the strongest windows and why, word timings, a shot list |
Migration guide with a ten-line example: https://www.songbrain.ai/guides/spotify-audio-features-alternative
pip install songbrain # Python 3.9+, one dependency (requests)
npm install songbrain # Node 18+, no runtime dependencies, ESM + CJS + types
from songbrain import Songbrain
sb = Songbrain() # reads SONGBRAIN_API_KEY song = sb.analyze("song.mp3") # or analyze(audio_url="https://…")
dna = song["song_dna"] print(dna["genre"], dna["tempo_bpm"], dna["key"]) for s in song"shot_plan"["scenes"]: print(f'{s["start_sec"]:.2f}-{s["end_sec"]:.2f} [{s["act"]}] {s["prompt"]}')
import { Songbrain } from "songbrain";
const sb = new Songbrain(); // reads SONGBRAIN_API_KEY const song = await sb.analyze({ file: "song.mp3" }); // or { audioUrl: "https://…" }
const dna = song.song_dna!; console.log(dna.genre, dna.tempo_bpm, dna.key); for (const s of song.shot_plan?.clip?.scenes ?? []) { console.log(${s.start_sec.toFixed(2)}-${s.end_sec.toFixed(2)} [${s.act}] ${s.prompt}); }
analyze() uploads, waits until the song is done and returns the full document. Pass wait=False (Python) or wait: false (JS) to get the id right away, then use a webhook or get_song / getSong later.
Every song is analysed in one of two modes. Use dna when you only need the data, or to sort many songs first. Then add the video direction to the ones you pick. dna plus the direction costs the same as full.
| Mode | What you get | Price |
|---|---|---|
dna | Song DNA: song_dna, timeline, best_moments, lyrics, scores. No story, no shot plan | 10 credits, about $0.20 |
full (default) | Song DNA + video direction: story and a beat-synced shot_plan with a prompt per scene | 25 credits, about $0.50 |
| Add direction later | story + shot_plan for a finished dna song. No new upload | 15 credits, about $0.30 |
song = sb.analyze("song.mp3", mode="dna") # 10 credits: no story, no shot plan
if song"scores"["score"] >= 80: song = sb.add_direction(song["id"]) # +15 credits, waits about 30-40 s print(song"shot_plan""scenes"["prompt"])
let song = await sb.analyze({ file: "song.mp3", mode: "dna" }); // 10 credits: no story, no shot plan
if ((song.scores?.virality.score ?? 0) >= 80) { song = await sb.addDirection(song.id); // +15 credits, waits about 30-40 s console.log(song.shot_plan?.clip?.scenes[0]?.prompt); }
The 5 free songs a month cover either mode. Adding the direction never uses a free song. If it fails, the 15 credits are refunded and the song stays dna. GET /v1/songs/{id}/shot-plan on a dna song answers 409 no_direction.
Without an SDK: send "mode": "dna" in the JSON body (or -F "mode=dna" with an upload), then POST /v1/songs/{id}/direction. Try the dna view without a key: GET https://api.songbrain.ai/v1/examples/sugar-rush?mode=dna.
Python uses snake_case and JS uses camelCase method names. Response fields are the API's own names in both.
| Python | JavaScript | API | Key | ||
|---|---|---|---|---|---|
| `analyze(file \ | audio_url=…, mode=None, test=False, idempotency_key=None, wait=True)` | `analyze({ file \ | audioUrl, mode, test, idempotencyKey, wait })` | POST /v1/songs + polling | yes |
add_direction(id, wait=True) | addDirection(id, { wait }) | POST /v1/songs/{id}/direction + polling | yes | ||
get_song(id, view, include) | getSong(id, { view, include }) | GET /v1/songs/{id} | yes | ||
shot_plan(id) | shotPlan(id) | GET /v1/songs/{id}/shot-plan | yes | ||
list_songs(limit, starting_after) | listSongs({ limit, startingAfter }) | GET /v1/songs | yes | ||
iter_songs(page_size) | iterSongs({ pageSize }) | GET /v1/songs, every page | yes | ||
delete_song(id) | deleteSong(id) | DELETE /v1/songs/{id} | yes | ||
account() | account() | GET /v1/account | yes | ||
test_webhook(url) | testWebhook(url) | POST /v1/webhooks/test | yes | ||
webhook_deliveries(limit) | webhookDeliveries({ limit }) | GET /v1/webhooks/deliveries | yes | ||
pricing() | pricing() | GET /v1/pricing | no | ||
examples() | examples() | GET /v1/examples | no | ||
example(id, view, include, mode) | example(id, { view, include, mode }) | GET /v1/examples/{id} | no | ||
example_shot_plan(id) | exampleShotPlan(id) | GET /v1/examples/{id}/shot-plan | no | ||
webhooks.verify(body, header, secret) | verifyWebhook(body, header, secret) | Songbrain-Signature header | – |
Both SDKs:
Authorization: Bearer sb_live_…,SongbrainError (status, code, message, request_id / requestId) and the subclasses AuthenticationError, InsufficientCredits, NotFound, RateLimited (with retry_after / retryAfter), AnalysisFailed and WaitTimeout,Idempotency-Key with every new song and retry network errors, 429 and 5xx up to 3 times with backoff, honouring Retry-After,last_rate_limit / lastRateLimit.Package docs: python/README.md · js/README.md
# 1. send a file (or JSON {"audio_url": "https://…"})
curl -X POST https://api.songbrain.ai/v1/songs \ -H "Authorization: Bearer $SONGBRAIN_API_KEY" \ -F "file=@song.mp3" -F "title=My Song"
curl https://api.songbrain.ai/v1/songs/$ID -H "Authorization: Bearer $SONGBRAIN_API_KEY"
Options on document
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요