Audio File MCP App

io.github.counterpoint-studio由 GitHub 帳號 counterpoint-studio 發布v1.1.1更新於 Oct 24, 2026

Inspect local audio files — playback, metadata, loudness, spectrogram.

已驗證STDIO僅桌面資料與分析媒體與設計

概覽

AI 產生的概覽

在對話介面中播放並檢視本機音訊檔案,向助理提供中繼資料、響度、頻譜圖與播放位置資訊。

可以做什麼
  • 依絕對路徑開啟本機音訊檔案,呈現含波形、頻譜圖與播放控制的面板
  • 讀取檔案中繼資料與 EBU R128 響度指標(整體響度、響度範圍、真峰值、取樣峰值、RMS)
  • 將即時響度、播放頭位置與選取的循環區間回傳給模型
  • 在時間軸上繪製標註軌道(可直接傳入或讀取 JSON 檔),並回報目前生效的片段
  • 讓模型自行撰寫標註,用來標示段落、事件或分析結果
適用情境
適合在對話中試聽與分析音訊:檢查響度是否符合標準、在頻譜圖上找出瞬態,或針對某段時間範圍與助理討論。
執行需求
透過 npx 從 npm 套件以 stdio 在本機執行;除宿主內建 Node.js(如 Claude Desktop)外需自行安裝 Node.js。不需帳號、API 金鑰或環境變數。音訊檔案需以本機絕對路徑提供。
安裝前請注意
顯示工具會開啟傳入的任意路徑,因此能呼叫工具的模型可開啟本機任何音訊檔案,只能靠宿主的呼叫確認來限制。錯誤訊息可能透露某路徑是否存在或 JSON 是否有效,但不含檔案內容。以目前使用者權限讀取檔案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Audio File MCP App,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Audio File MCP App

An MCP App for playing and inspecting local audio files in an MCP host.

[Audio File MCP App running in Claude Desktop]

Renders an in-conversation UI with playback, metadata, loudness, a spectrogram, and an optional annotation-lane timeline.

File metadata, loudness statistics, the current playhead position, any selected region, and the annotation lanes active at the playhead are also exposed back to the model, so follow-up tasks can refer to what the user is actually hearing and looking at.

Features

  • Global loudness metrics computed to EBU R128: Integrated Loudness (LUFS), Loudness Range (LRA), True Peak (dBTP), Sample Peak, and RMS.
  • Instantaneous loudness metrics while playing or hovering: Momentary (400 ms) and Short-Term (3 s) LUFS, plus sample-peak and RMS at the cursor position.
  • Waveform colouring by spectral centroid — each waveform slice is shaded along a tonal ramp using a low/mid/high band-energy ratio, so bright/dark regions read at a glance as bright/dark sound.
  • Reassigned spectrogram with log-frequency bins (20 Hz floor) and an Inferno colour scale; time-frequency reassignment sharpens transients and tonal partials beyond what a plain STFT shows.
  • Looping region selection. Drag on the timeline to mark a region; playback loops over it, and the region's start/end are passed back to the model alongside the file's loudness and playhead state.
  • Annotation-lane timeline. Supply timeline annotations and the widget draws a stack of thin labelled lanes between the waveform and spectrogram, aligned to the audio's own timeline. Each lane carries time spans, an optional colour, and an optional envelope that fades span opacity along the lane. Hovering a span reveals its label, and the lanes active at the playhead — plus those starting, ending, or active within a selected region — are reported back to the model.

Install

The server runs locally over stdio. Every install path below configures the same command: npx -y @counterpoint-studio/audio-file-mcp-app.

Claude Desktop

Easiest: grab the latest .mcpb from the Releases page and double-click it. Claude Desktop has Node bundled, so no extra runtime is needed.

Or add the server by hand to claude_desktop_config.json:

json
{  "mcpServers": {    "audio-file": {      "command": "npx",      "args": ["-y", "@counterpoint-studio/audio-file-mcp-app"]    }  }}

Codex Desktop

  1. Go to Settings -> MCP Servers
  2. Add Server
  3. Name: audiofile-mcp-app
  4. Command to launch: npx
  5. Arguments -y and @counterpoint-studio/audio-file-mcp-app

VS Code (Copilot, Agent mode)

[Install in VS Code]

Or add to .vscode/mcp.json (workspace) or your user mcp.json:

json
{  "servers": {    "audio-file": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@counterpoint-studio/audio-file-mcp-app"]    }  }}

Goose

Paste this deep link into your browser (Goose Desktop must be installed; the custom URI scheme can't be a real link in a GitHub README):

goose://extension?id=audio-file&name=Audio%20File%20MCP%20App&cmd=npx&arg=-y&arg=%40counterpoint-studio%2Faudio-file-mcp-app

Or run goose configure → Add Extension → Command-line Extension and enter npx -y @counterpoint-studio/audio-file-mcp-app.

MCP Inspector

bash
npx @modelcontextprotocol/inspector npx -y @counterpoint-studio/audio-file-mcp-app

Usage

Ask the host to show you a local audio file by its absolute path. For example:

"Show me /Users/me/Music/track.wav"

The host calls the display_audio_file tool, which renders the in-app UI with waveform, spectrogram, loudness metrics, and playback transport.

Annotation lanes

display_audio_file accepts an optional annotations object describing lanes to draw on the timeline (or an annotationsPath pointing at a JSON file with the same { "lanes": [...] } shape — handy for large payloads):

json
{  "annotations": {    "lanes": [      {        "label": "Delay tails",        "color": "#e6007e",        "spans": [{ "start": 8, "end": 24 }],        "envelope": [          { "time": 8, "value": 0 },          { "time": 24, "value": 1 }        ]      }    ]  }}

Times are in seconds on the audio's own timeline. label, color, and envelope are optional; a lane with an envelope fades its span opacity along the envelope curve, and uncoloured lanes use a light-accent fill. Overlapping spans in a lane are truncated at the next span's start so rows never overlap. The model can author annotations to point out sections, mark events, or visualise an analysis it just ran.

Security model

  • The server runs locally over stdio, with your user account's permissions.
  • display_audio_file opens any file path it is given, by design, but only accepts files recognised as audio.
  • The player streams the file through a byte-range resource (audiofile-range://…). It returns bytes only of files recognised as audio; anything else, including a path that doesn't exist, gets the same "Not a recognised audio file" error.
  • annotationsPath reads a JSON file you name, and only uses it if it matches the annotation format.
  • Tool errors are specific on purpose, so you can see what went wrong: they can reveal whether a named path exists, is a regular file, or (for annotationsPath) is valid JSON in the annotation format. They never include the file's contents.
  • What remains: a model that can call tools can open any audio file on your machine. Hosts that ask for approval before tool calls are the control for that.

To report a vulnerability, see SECURITY.md.

Client compatibility

Tested and known to work in:

  • Claude Desktop — Chat, Cowork, and Code
  • Codex Desktop
  • Visual Studio Code
  • Goose
  • MCP Inspector

Development

bash
pnpm installpnpm run build:dsp   # emsdk required; see WASM-BUILD.mdpnpm run serve       # runs the server with tsx, no compile steppnpm test

pnpm run build:dist produces the publishable layout under dist/ (dist/mcp-app.html + dist/server/).

Releasing

bash
pnpm version <bump>          # bumps every version string (package.json, server.json,                             # mcpb/manifest.json, src/server/app.ts) + commits + tagsgit push && git push --tagssource /path/to/emsdk_env.sh # prepublishOnly rebuilds the DSP code with Emscriptenpnpm publish --access public # publishes to npmgh workflow run publish-registry.yml -f tag=v<version> # MCP Registry, once npm shows the versionpnpm run build:mcpb          # produces dist/audio-file-mcp-app-<version>.mcpbgh release create v<version> dist/*.mcpb # attaches the bundle to a GitHub release

npm can hold a new version in validating for up to an hour before it appears. The registry checks the npm package, so run the registry workflow only after npm view @counterpoint-studio/audio-file-mcp-app version shows the new version.

The MCP Registry is published from GitHub Actions (.github/workflows/publish-registry.yml) because the interactive mcp-publisher login github only grants a personal namespace, not io.github.counterpoint-studio/*.

License

ISC © Counterpoint Studio OÜ

來源:README.md,提交 af20e3e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v1.1.1最新Oct 9, 2026
  2. v1.1.0Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分