mcpField
W
webear

webear

ローカル
github.com/asume21開発ツール110 週間前に更新

webear について

webearは、稼働中のWebアプリの音声やブラウザー情報をAIコーディングエージェントに調べさせる、MCPサーバーとブラウザーSDKです。Web Audioグラフから直接音声を取得し、視覚、性能、ネットワーク、セキュリティ、コンソール情報にも対応します。

主な機能

  1. 01ブラウザー音声の直接キャプチャ
  2. 02音量、帯域、リズム、クリッピングの分析
  3. 03音声の説明と変化の比較
  4. 04視覚・性能・ネットワーク・セキュリティ情報の取得
  5. 05コンソールログと例外の確認

活用シーン

  1. 01Web Audioのミックスやリズムのデバッグ
  2. 02コード変更前後の音声比較
  3. 03ゲームや音楽アプリの音声回帰チェック
  4. 04ページ性能、ネットワーク、コンソール問題の調査

MCP 対応

MCPサーバーは、音声とブラウザーセンサーの取得・分析ツールをクライアントに提供します。ローカルのstdioサーバーまたはホスト型SSEエンドポイントで接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"asume21-webear": {
"command": "npx",
"args": [
"-y",
"webear"
],
"env": {
"WEBEAR_BASE_URL": "<WEBEAR_BASE_URL>",
"CODEDSWITCH_API_KEY": "<CODEDSWITCH_API_KEY>"
}
}
}
}
起動コマンドnpx -y webear
設定が必要な環境変数
WEBEAR_BASE_URLURL of your dev server where WebEar middleware is mounted
CODEDSWITCH_API_KEYシークレットAPI key from codedswitch.com for audio analysis

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmwebear1.2.4

ツール

4

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
duration_msnumberいいえ録音時間(ミリ秒、既定値 3000、最大 30000)

詳細

webear

npm version npm downloads License: MIT MCP Compatible

AI に本物の感覚を与えましょう。あらゆるウェブアプリを聞き、見て、感じられます。

MCP サーバーとブラウザー SDK を組み合わせ、AI コーディングアシスタントが稼働中のウェブアプリに直接、感覚的にアクセスできるようにします。音声、ビジュアル、パフォーマンス、ネットワーク、セキュリティ、コンソールの情報をブラウザーから取得し、リアルタイムで分析して MCP 経由で提供します。

「ビートが濁って聞こえます」 → AI が 3 秒間の音声をキャプチャし、スペクトル重心が 580 Hz、250 Hz 未満のエネルギーが 45%であることを測定して、その理由を具体的に説明します。


AI Web Perception Demo


できること

ツール説明
capture_audioウェブアプリが現在出力している音声を 500 ms~30 秒間録音します
analyze_audio信号を分析します。RMS、ピーク dB、クリッピング、スペクトル重心、周波数帯、BPM、タイミングジッター
describe_audio平易な言葉で AI が説明します — 「キック音は、80 Hz 付近でサブベースが大きく膨らみ、低音がこもっています」
diff_audio2 つのキャプチャを比較し、音量、音色、タイミング、クリッピングの変化を検出します

仕組み

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."

他のどのオーディオ MCP とも異なる点は、Web Audio グラフに直接接続することです。部屋の音響やマイクのハードウェアを介さず、ファイルをエクスポートする必要もありません。


クイックスタート

1. インストール
npm install webear
2. 開発サーバーに Express ミドルウェアを追加する
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)
3. ウェブアプリにクライアントのスニペットを追加する

オプション A — すべてを自動検出(Tone.js または生の Web Audio)

import WebEar from 'webear/client'
WebEar.init()

オプション B — AudioContext を明示的に指定

const ctx = new AudioContext()
const masterGain = ctx.createGain()
masterGain.connect(ctx.destination)

WebEar.init({ audioContext: ctx, outputNode: masterGain })

オプション C — Tone.js プロジェクト

import * as Tone from 'tone'
WebEar.init({ toneJs: true })

オプション D — Three.js WebGL ゲーム

import * as THREE from 'three'
const listener = new THREE.AudioListener()
camera.add(listener)
WebEar.init({ tapNode: listener.getInput() })

オプション E — 通常の script タグ

<script src="node_modules/webear/client-snippet.js"></script>
<script>WebEar.init()</script>
4. IDE を設定する

Claude Code(プロジェクトルートの .mcp.json):

{
  "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"
    }
  }
}
5. API キーを取得する — 任意です。まずはキーなしでお試しください

analyze_audio はキーもアカウントも不要で利用できます。 ffmpeg が PATH にある場合、キャプチャをお使いのマシン上でデコードして分析し、基本的なレポートを返します。レポートには、長さ、音量、ピークレベル、クリッピングの有無が含まれます。アップロードは一切行われません。何かに登録する前に、ツールをお試しください。

キーを取得すると、計算だけではできない機能を利用できます。

キーなしキーあり
capture_audio✓✓
analyze_audio基本 — 長さ、音量、ピーク、クリッピング(ローカル)完全 — スペクトル重心、帯域エネルギー、クレストファクター、BPM、タイミングジッター
describe_audio — どのように聞こえるか—✓
mix_coach — 測定値と聴感—✓
diff_audio — 変更前後の比較—✓

取得方法:

  1. codedswitch.com で無料アカウントを作成します。
  2. codedswitch.com/developer にアクセスします(アカウントメニューの Developer API からもアクセスできます)。
  3. Generate API Key をクリックします。その値が CODEDSWITCH_API_KEY です。キーは wbr_ で始まります。

無料枠では 1 日 50 回分析できます。クレジットカードは不要です。

6. 開発サーバーを起動し、アプリを開いて音声を再生してから、AI に質問します

「3 秒間キャプチャして、ベース音がこもって聞こえる理由を教えてください。」

「最後のコミットの前後で音声を比較してください。」

「高周波帯にクリッピングはありますか?」


出力例

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.

設定

環境変数
変数デフォルト説明
WEBEAR_BASE_URLhttp://localhost:4000開発サーバーの URL(ミドルウェアがマウントされている場所)
CODEDSWITCH_API_KEY—codedswitch.com の API キー — analyze_audio と describe_audio に必要です
MCP_API_URLhttps://www.codedswitch.com分析 API のベース URL を上書きします(上級者向け/セルフホスト)
ミドルウェアのオプション
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)
})

要件

  • Node.js >= 18
  • MediaRecorder に対応したブラウザー(Chrome、Firefox、Edge、Safari 14 以降)
  • 分析用の CODEDSWITCH_API_KEY(codedswitch.com で無料取得できます)

対象ユーザー

  • Web Audio/Tone.js の開発者 — IDE を離れることなく、ビート、シンセ、エフェクト、ミキシングをデバッグできます
  • ゲームオーディオの開発者 — 効果音、空間オーディオ、ミキシングをリアルタイムで確認できます
  • 音楽アプリの開発者 — diff_audio でコード変更間のリグレッションを検出できます
  • ポッドキャスト/ストリーミングアプリの開発者 — 音質、レベル、エンコーディングを検証できます
  • 音の出るアプリを開発しているすべての方 — Web Audio グラフがあれば、AI が音を聞き取れるようになります

マイクを使うだけでは不十分な理由

マイク MCP は室内の音を拾うため、ファンの騒音、椅子のきしみ、部屋の残響もすべて録音に含まれます。webear は Web Audio API の信号を DAC に届く前に取り込むため、室内の影響を受けないクリーンなデジタル信号を取得できます。


Web Perception — 完全なセンサーセット

WebEar は音声のみを対象として始まりました。Web Perception は、これを 6 つの感覚へと拡張します。

センサー認識する内容
WebEarオーディオ — ミックスの品質、リズム、楽器、クリッピング
WebEyeビジュアル — キャンバス、UI レイアウト、アニメーション、スクリーンショット
WebSenseパフォーマンス — フレームレート、メモリ、オーディオレイテンシ
WebNerveネットワーク — API のレイテンシ、接続品質、ストレージ
WebShieldセキュリティ — Cookie、ストレージの露出、CSP、フレーミング
WebLogコンソール — ログ、警告、エラー、捕捉されなかった例外
ブラウザー SDK 全体をインストールする
import { WebPerception } from 'webear/perception'

WebPerception.init({
  apiKey: 'wbr_YOUR_API_KEY',
  relayUrl: 'https://www.codedswitch.com',
  sensors: ['ear', 'eye', 'sense', 'nerve', 'shield', 'log'],
})

または、単一のセンサーを使用します。

import { WebEar } from 'webear/perception'

WebEar.init({
  apiKey: 'wbr_YOUR_API_KEY',
  ear: { audioContext: myCtx, audioNode: masterGain },
})
MCP 経由で接続する(ホスト型リレー — ローカルサーバーは不要)
{
  "mcpServers": {
    "webear": {
      "url": "https://www.codedswitch.com/api/webear/mcp/sse",
      "headers": {
        "Authorization": "Bearer wbr_YOUR_API_KEY"
      }
    }
  }
}
利用可能な MCP ツール
センサーツールクレジット説明
Earcapture_audio無料タブの音声をリアルタイムで録音
Earanalyze_audio1BPM、ラウドネス、周波数帯域、クリッピング、ダイナミックレンジ
Eardescribe_audio2AI による平易な説明 — 楽器、ジャンル、ムード、ミックスに関するメモ
Eardiff_audio12 つのキャプチャを比較 — ラウドネス、音色、タイミングの差分
Eargroove_score2グリッドとの整合性、スウィング係数、一貫性(0~100%)
Earcapture_and_analyze11 回の呼び出しでキャプチャと分析を実行
Earmix_coach3構造化されたミキシングのフィードバック
Eyecapture_video無料タブのキャンバス/動画を録画
Eyedescribe_video2AI によるビジュアルの説明 — レイアウト、色、バグ
Eyediff_visuals22 つのビジュアルキャプチャを比較
Sensecapture_telemetry無料FPS、メモリ、レイアウトシフト、オーディオレイテンシ
Senseanalyze_telemetry1フレーム落ち、メモリの負荷、オーディオのアンダーラン
Nervecapture_nerve無料API の所要時間、接続品質、ストレージサイズ
Nerveanalyze_nerve1遅い API、接続品質、ストレージの肥大化
Shieldcapture_shield無料Cookie、CSP、ストレージの露出、フレーミング
Shieldanalyze_shield1CORS の問題、HttpOnly でない Cookie、CSP の欠落
Logcapture_logs無料コンソール出力と捕捉されなかった例外
Loganalyze_logs1エラーのパターン、スタックトレース、繰り返し発生する警告
API キーを取得する
  1. codedswitch.com で無料アカウントを作成します。
  2. codedswitch.com/developer を開きます。アカウントメニューの Developer API からもアクセスできます。
  3. Generate API Key をクリックして、キーをコピーします。キーは wbr_ で始まります。

無料プランでは、クレジットカードの登録なしで1日50回分析できます。


変更履歴

2.0.1
  • API キーの取得手順を修正しました。 以前の手順(「Settings → WebEar」)は誤りでした。Settings に WebEar セクションはありません。 キーは codedswitch.com/developer にあります(アカウントメニューの Developer API からアクセスできます)。クイックスタートと Web Perception の両セクションで、正しい場所を案内するようになりました。
  • SDK で「API キーがありません」というコンソールエラーが発生した場合に、キーのページへ直接リンクするようになりました。

コントリビューション

CONTRIBUTING.md を参照してください。

ライセンス

MIT — LICENSE を参照してください。

作者

@asume21 が開発しました — CodedSwitch

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。