Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Analyze video mood and pace, then recommend license-safe BGM with a mix spec.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
GEMINI_API_KEY, JAMENDO_CLIENT_ID, FREESOUND_API_KEYค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
เติมค่าที่เว้นว่างไว้ก่อนรัน
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub js713-lab ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: GEMINI_API_KEY, JAMENDO_CLIENT_ID, FREESOUND_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.0) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี MCPB ในเครื่องด้วย
ในหมวดเดียวกันมี Figma Context MCP, Claude Real Video, Figma MCP Server
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า 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.
server ทางการของ Figma ส่งข้อมูลงานออกแบบให้ AI อ่าน เพื่อเปลี่ยนแบบเป็นโค้ดหรืออธิบายแบบได้ตรงขึ้น ต่อผ่านคลาวด์ของ Figma
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Video-native MCP server for license-safe BGM. Watches the footage — not the script — and returns a shortlist, a 12–20s hook, and an ffmpeg ducking spec.
Package / CLI: sonicmatch-mcp. A Model Context Protocol server for Claude Desktop, Cursor, Codex, and other MCP clients. Drop an Instagram Reel, YouTube Short, or TikTok-style clip. Get royalty-free / Creative Commons matches with the license printed on every row.
Video-to-BGM already exists. The wedge is not “I also match music”:
Catalog quality will kill or save this. More tools will not.
Video or URL in
→ scene / mood / pace / speech analysis → license-safe BGM shortlist
Do not treat this as “script in → YouTube Music search out.” That already exists (mcp-bgm-recommender). Sonicmatch watches the video.
| You own | You do not own |
|---|---|
| Local file / public URL ingest | Platform music licenses |
| Mood, energy curve, speech vs silence, scene cuts | Meta/TikTok “trending audio” graph |
| CC / royalty-free catalogs + optional paid adapters | Spotify / IG official libraries |
| Ranked tracks, preview URLs, mix spec, ffmpeg | Auto-publish to Instagram |
North star: ingest_video → analyze_video_music → recommend_bgm → preview_mix → export_mix_spec
examples/user_library.example.json). Do not scrape those sites.I dropped
./clip.mp4. Analyze it for an Instagram Reel and recommend 5 instrumental BGMs. Then mix the top pick with ducking and give me the ffmpeg command.
That prompt is the product. Install below, wire Claude Desktop, Cursor, or Codex, and paste it.
Requires Python 3.10+ and ffmpeg / ffprobe on PATH. yt-dlp is optional and off by default (SONICMATCH_ALLOW_YTDLP=0) because platform extractors break and may violate ToS. Prefer a local file.
The PyPI project is sonicmatch-mcp. The console script is sonicmatch-mcp, which is what uvx and pipx run. python -m sonicmatch is the same server. The PyPI badge stays empty until the first tag is published. Install from git until then. Maintainer steps: PUBLISH.md.
uvx --from git+https://github.com/js713-lab/sonic-match-mcp.git sonicmatch-mcp
pip install git+https://github.com/js713-lab/sonic-match-mcp.git
sonicmatch-mcp --version # or: python -m sonicmatch --version
uvx sonicmatch-mcp
pipx install sonicmatch-mcp sonicmatch-mcp --version
git clone https://github.com/js713-lab/sonic-match-mcp.git
cd sonic-match-mcp python3 -m venv .venv source .venv/bin/activate pip install -e ".[dev]" cp .env.example .env # optional keys
sonicmatch-mcp
sonicmatch-mcp --http --port 8765
# same clone, uv
uv venv && uv pip install -e ".[dev]" uv run sonicmatch-mcp
pytest # generates tiny color mp4s with ffmpeg
ruff check src tests
The seed catalog is about 20 Reel-editor rows (cafe, product, talking-head, travel, food, fashion, event) plus a vocal fixture and a CC-BY-NC fixture. It runs without API keys. Gemini, Jamendo, and Freesound are optional and degrade with a note in the tool response. Seed rows have no hosted audio on purpose — preview_mix synthesizes a demo bed. For real ads, point SONICMATCH_LIBRARY_PATH / EPIDEMIC_LIBRARY_PATH / ARTLIST_LIBRARY_PATH at JSON you already licensed.
| Variable | Required | What it does |
|---|---|---|
GEMINI_API_KEY | no | Gemini video understanding for analyze_video_music |
JAMENDO_CLIENT_ID | no | Jamendo search |
FREESOUND_API_KEY | no | Freesound beds and loops |
SONICMATCH_LIBRARY_PATH | no | User-owned library JSON. Also EPIDEMIC_LIBRARY_PATH, ARTLIST_LIBRARY_PATH |
SONICMATCH_ALLOW_YTDLP | no | 1 turns on platform URL ingest. Default 0 |
SONICMATCH_MAX_DOWNLOAD_MB | no | Download cap. Default 200 |
SONICMATCH_HTTP_HOST / SONICMATCH_HTTP_PORT | no | --http bind. Default 127.0.0.1:8765 |
GEMINI_API_KEY is set; otherwise local ffmpeg / audio heuristics (optional Whisper, PySceneDetect, librosa).asset_id.suggest_cuts snaps scene cuts to a BPM grid and returns EDL-ish intro / peak / outro.brand_kit=… into recommend_bgm.analyze_batch (max 20) clusters mood and returns one shared mini-playlist.| Tool | What it does |
|---|---|
status | ffmpeg / keys / seed count / day-1 risk gates |
ingest_video | Local path or HTTPS URL → asset_id (never video bytes). Platform URLs need SONICMATCH_ALLOW_YTDLP=1 |
analyze_video_music | Mood, energy curve, speech, scenes, hook window, BPM, search queries |
recommend_bgm | 3–7 ranked tracks + why + license + hook in/out |
search_music | Free-text / BPM / mood over seed + optional catalogs |
get_track | One track’s metadata, license, attribution, URLs |
preview_mix | Hook trim, loop, optional ducking → preview files + ffmpeg + mix spec |
export_mix_spec | Mix spec + ffmpeg + attribution (no render unless render=true) |
suggest_cuts | Beat grid, snapped scene cuts, EDL, intro / peak / outro |
generate_bed | Demo bed marked source=generated. Requires i_understand_not_commercially_cleared=true |
save_brand_kit | Persist BPM / moods / no-vocals for recommend_bgm(brand_kit=…) |
analyze_batch | Up to 20 clips → mood cluster + shared mini-playlist |
Also ships a prompt template: “Score this video like an IG music sticker.”
speech_coverage > 0.25cuts at 0.8s average, 112 BPM, warm gold hour)Prompt:
I dropped
./clip.mp4. Analyze it for an Instagram Reel and recommend 5 instrumental BGMs. Then mix the top pick with ducking and give me the ffmpeg command.
The agent should call, in order:
ingest_video with the local path. The result is an asset_id, not video bytes.analyze_video_music with platform_hint set to instagram_reel.recommend_bgm with that asset_id and max_results of 5.preview_mix on the top track with ducking, then export_mix_spec.A recommendation row carries score, reason, suggested_in_out (the hook), ducking, license_ok_for_platform, and content_id_risk (unknown or likely, never cleared). Seed fixtures include seed_golden_hour_latte (CC0-1.0) and seed_indie_porch_110 (CC-BY-4.0). They have no hosted audio. preview_mix synthesizes a demo bed. CC-BY-NC rows are searchable and are not auto-recommended.
claude_desktop_config.json. From git, no clone:
{
"mcpServers": { "sonicmatch": { "command": "uvx", "args": [ "--from", "git+https://github.com/js713-lab/sonic-match-mcp.git", "sonicmatch-mcp" ], "env": { "GEMINI_API_KEY": "", "JAMENDO_CLIENT_ID": "", "FREESOUND_API_KEY": "" } } } }
After a clone, command can be the absolute path of .venv/bin/sonicmatch-mcp. After the PyPI release, args is just ["sonicmatch-mcp"]. Copy-paste files: examples/claude_desktop.mcp.json, examples/claude_desktop.pypi.mcp.json.
.cursor/mcp.json (project) or ~/.cursor/mcp.json. From git, no clone — examples/cursor.mcp.json:
{
"mcpServers": { "sonicmatch": { "command": "uvx", "args": [ "--from", "git+https://github.com/js713-lab/sonic-match-mcp.git", "sonicmatch-mcp" ], "env": { "GEMINI_API_KEY": "", "JAMENDO_CLIENT_ID": "", "FREESOUND_API_KEY": "" } } } }
After PyPI, use examples/cursor.pypi.mcp.json (uvx with args ["sonicmatch-mcp"]). From a clone: "command": "uv", "args": ["--directory", "/absolute/path/to/sonic-match-mcp", "run", "sonicmatch-mcp"]. After pip install, "command": "python3", "args": ["-m", "sonicmatch"] works if that interpreter has the package.
Codex reads ~/.codex/config.toml. The same file is shared with the Codex IDE extension and the ChatGPT desktop app. Works today — examples/codex.config.toml:
[mcp_servers.sonicmatch]
command = "uvx" args = ["--from", "git+https://github.com/js713-lab/sonic-match-mcp.git", "sonicmatch-mcp"]
[mcp_servers.sonicmatch.env] GEMINI_API_KEY = "" JAMENDO_CLIENT_ID = "" FREESOUND_API_KEY = ""
Or from the CLI:
codex mcp add sonicmatch -- uvx --from git+https://github.com/js713-lab/sonic-match-mcp.git sonicmatch-mcp
After the PyPI release, the args shrink to sonicmatch-mcp. That file is [`examples/codex.pypi.config.to
ตัดมาแค่ช่วงต้น อ่านต่อใน repo