Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
作者による説明(英語の原文)
Give your AI coding assistant ears — capture, analyze, and describe live audio.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
WEBEAR_BASE_URL, CODEDSWITCH_API_KEY「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"webear": {
"command": "npx",
"args": [
"-y",
"webear"
],
"env": {
"WEBEAR_BASE_URL": "your-value",
"CODEDSWITCH_API_KEY": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add webear --env WEBEAR_BASE_URL=your-value --env CODEDSWITCH_API_KEY=your-value -- npx -y webear動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"webear": {
"command": "npx",
"args": [
"-y",
"webear"
],
"env": {
"WEBEAR_BASE_URL": "your-value",
"CODEDSWITCH_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"webear": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"webear"
],
"env": {
"WEBEAR_BASE_URL": "your-value",
"CODEDSWITCH_API_KEY": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
WEBEAR_BASE_URL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント asume21 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:CODEDSWITCH_API_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.2.4)がレジストリに届いたのは7 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには: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、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Give your AI real senses — hear, see, and feel any web app.
An MCP server + browser SDK that gives AI coding assistants direct sensory access to a live web application. Audio, visuals, performance, network, security, and console — captured from the browser, analyzed in real time, delivered via MCP.
*"The beat sounds muddy"* → your AI captures 3 seconds, measures the spectral centroid at 580 Hz with 45% energy below 250 Hz, and tells you exactly why.
| Tool | Description |
|---|---|
capture_audio | Record a short clip (500ms–30s) of what your web app is outputting right now |
analyze_audio | Signal analysis: RMS, peak dB, clipping, spectral centroid, frequency bands, BPM, timing jitter |
describe_audio | Plain-English AI description — *"the kick is boomy with heavy sub buildup around 80 Hz"* |
diff_audio | Compare two captures and flag what changed — loudness, tone, timing, clipping |
Browser (Web Audio API)
↓ MediaRecorder taps the AudioContext output node ↓ Uploads WebM blob via HTTP POST Express Middleware (your dev server) ↓ Stores captures in memory, dispatches commands via SSE MCP Server (stdio — runs inside your IDE) ↓ Retrieves captures, sends to CodedSwitch analysis API AI Coding Assistant → "Your bass band is 42% of the mix (high), spectral centroid is 580 Hz (muddy), and timing jitter is 23ms — the scheduler is drifting under load."
The key difference from every other audio MCP: this taps the Web Audio graph directly, bypassing room acoustics, microphone hardware, and the need to export files.
npm install webear
import express from 'express'
import { webearMiddleware } from 'webear/middleware'
const app = express() app.use(express.json())
// Mount the audio debug bridge (automatically disabled in production) app.use('/api/webear', webearMiddleware())
app.listen(5000)
Option A — auto-detect everything (Tone.js or raw Web Audio)
import WebEar from 'webear/client'
WebEar.init()
Option B — explicit AudioContext
const ctx = new AudioContext()
const masterGain = ctx.createGain() masterGain.connect(ctx.destination)
WebEar.init({ audioContext: ctx, outputNode: masterGain })
Option C — Tone.js project
import * as Tone from 'tone'
WebEar.init({ toneJs: true })
Option D — Three.js WebGL Game
import * as THREE from 'three'
const listener = new THREE.AudioListener() camera.add(listener) WebEar.init({ tapNode: listener.getInput() })
Option E — plain script tag
<script src="node_modules/webear/client-snippet.js"></script>
Claude Code (.mcp.json in project root):
{
"mcpServers": { "webear": { "command": "npx", "args": ["webear"], "env": { "WEBEAR_BASE_URL": "http://localhost:5000", "CODEDSWITCH_API_KEY": "your-key-here" } } } }
Cursor (.cursor/mcp.json):
{
"mcpServers": { "webear": { "command": "npx", "args": ["webear"], "env": { "WEBEAR_BASE_URL": "http://localhost:5000", "CODEDSWITCH_API_KEY": "your-key-here" } } } }
Windsurf (mcp_config.json):
{
"webear": { "command": "npx", "args": ["webear"], "disabled": false, "env": { "WEBEAR_BASE_URL": "http://localhost:5000", "CODEDSWITCH_API_KEY": "your-key-here" } } }
`analyze_audio` works with no key and no account. If ffmpeg is on your PATH, it decodes and analyzes the capture on your machine and returns a basic report: duration, loudness, peak level and whether the audio is clipping. Nothing is uploaded. Try the tool before you sign up for anything.
A key unlocks the parts that need more than arithmetic:
| No key | With key | |
|---|---|---|
capture_audio | ✓ | ✓ |
analyze_audio | Basic — duration, loudness, peak, clipping (local) | Full — spectral centroid, band energy, crest factor, BPM, timing jitter |
describe_audio — what it SOUNDS like | — | ✓ |
mix_coach — measured + heard | — | ✓ |
diff_audio — before/after | — | ✓ |
To get one:
CODEDSWITCH_API_KEY. Keys start with wbr_.Free tier: 50 analyses/day. No credit card required.
"Capture 3 seconds and tell me why the bass sounds muddy."
"Compare the audio before and after my last commit."
"Is there any clipping in the high-frequency range?"
analyze_audio── Audio Analysis Report ──────────────────────────────
Duration: 3.02s
── Loudness ───────────────────────────────────────── RMS: -12.4 dBFS Peak: -1.2 dBFS Dynamic range: 11.2 dB Crest factor: 3.63 Clipping: none
── Tone ────────────────────────────────────────────── Spectral centroid: 2847 Hz DC offset: 0.00012 (ok)
── Frequency Bands ─────────────────────────────────── Sub (20-80 Hz): 8.2% Bass (80-250 Hz): 22.1% Mid (250-2k Hz): 38.4% Hi-mid (2-6k Hz): 21.8% High (6k+ Hz): 9.5%
── Rhythm ──────────────────────────────────────────── Estimated BPM: 92 Onset count: 12 Timing jitter: 4.2 ms std dev
── Summary ─────────────────────────────────────────── Loudness: -12.4 dBFS RMS, peak -1.2 dBFS. Tone: balanced (centroid 2847 Hz). Band mix — sub: 8% | bass: 22% | mid: 38% | hi-mid: 22% | high: 10%. Rhythm: estimated 92 BPM, 12 onsets detected. Timing: very tight (< 5 ms jitter).
diff_audio── Audio Diff: a1b2c3d4… → e5f6g7h8… ──
── Loudness ────────────────────────────────────────── RMS: -14.2 dBFS → -12.4 dBFS (+1.8 dBFS) ⚠ Peak: -3.1 dBFS → -0.2 dBFS (+2.9 dBFS) ⚠ CLIPPING INTRODUCED — gain staging regression
── Tone ────────────────────────────────────────────── ⚠ Spectral centroid: 2847.0 Hz → 1920.0 Hz (-927.0 Hz)
── Interpretation ──────────────────────────────────── A gain bug was introduced that causes clipping. Tonal character changed noticeably — EQ or filter behaviour may have shifted.
| Variable | Default | Description |
|---|---|---|
WEBEAR_BASE_URL | http://localhost:4000 | URL of your dev server (where middleware is mounted) |
CODEDSWITCH_API_KEY | — | API key from codedswitch.com — required for analyze_audio and describe_audio |
MCP_API_URL | https://www.codedswitch.com | Override the analysis API base (advanced / self-hosted) |
webearMiddleware({
maxCaptures: 50, // Max captures in memory (default: 50) maxAgeMins: 10, // Auto-evict after N minutes (default: 10) maxUploadBytes: 50e6, // Max upload size (default: 50MB) devOnly: true, // Disable in production (default: true) })
WebEar.init({
audioContext: myCtx, // Your AudioContext instance outputNode: myGainNode, // The node to tap (defaults to destination) toneJs: true, // Auto-detect Tone.js context bridgeBase: '/api/webear', // Override API path devOnly: true, // Only init outside of production (default: true) })
MediaRecorder (Chrome, Firefox, Edge, Safari 14+)CODEDSWITCH_API_KEY for analysis (free at codedswitch.com)diff_audioMicrophone MCPs capture room sound — your fan noise, chair creaks, and room reverb are all in the recording. webear taps the Web Audio API before it hits the DAC, giving you a clean digital signal with no room artifacts.
WebEar started as audio-only. Web Perception expands it to 6 senses:
| Sensor | What it perceives |
|---|---|
| WebEar | Audio — mix quality, rhythm, instruments, clipping |
| WebEye | Visual — canvas, UI layout, animations, screenshots |
| WebSense | Performance — frame rate, memory, audio latency |
| WebNerve | Network — API latencies, connection quality, storage |
| WebShield | Security — cookies, storage exposure, CSP, framing |
| WebLog | Console — logs, warnings, errors, uncaught exceptions |
import { WebPerception } from 'webear/perception'
WebPerception.init({ apiKey: 'wbr_YOUR_API_KEY', relayUrl: 'https://www.codedswitch.com', sensors: ['ear', 'eye', 'sense', 'nerve', 'shield', 'log'], })
Or use a single sensor:
import { WebEar } from 'webear/perception'
WebEar.init({ apiKey: 'wbr_YOUR_API_KEY', ear: { audioContext: myCtx, audioNode: masterGain }, })
{
"mcpServers": { "webear": { "url": "https://www.codedswitch.com/api/webear/mcp/sse", "headers": { "Authorization": "Bearer wbr_YOUR_API_KEY" } } } }
| Sensor | Tool | Credits | Description |
|---|---|---|---|
| Ear | capture_audio | Free | Record live tab audio |
| Ear | analyze_audio | 1 | BPM, loudness, frequency bands, clipping, dynamic range |
| Ear | describe_audio | 2 | AI plain-English description — instruments, genre, mood, mix notes |
| Ear | diff_audio | 1 | Compare two captures — loudness, tone, timing deltas |
| Ear | groove_score | 2 | Grid alignment, swing factor, consistency (0–100%) |
| Ear | capture_and_analyze | 1 | Capture + analysis in one call |
| Ear | mix_coach | 3 | Structured mixing feedback |
| Eye | capture_video | Free | Record canvas/video from the tab |
| Eye | describe_video | 2 | AI visual description — layout, colors, bugs |
| Eye | diff_visuals | 2 | Compare two visual captures |
| Sense | capture_telemetry | Free | FPS, memory, layout shifts, audio latency |
| Sense | analyze_telemetry | 1 | Frame drops, memory pressure, audio underruns |
| Nerve | capture_nerve | Free | API timings, connection quality, storage size |
| Nerve | analyze_nerve | 1 | Slow APIs, connection quality, storage bloat |
| Shield | capture_shield | Free | Cookies, CSP, storage exposure, framing |
| Shield | analyze_shield | 1 | CORS issues, non-HttpOnly cookies, missing CSP |
| Log | capture_logs | Free | Console o
冒頭だけを表示しています。続きはリポジトリで読めます