@counterpoint-studio/audio-file-mcp-app 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +133 -5
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -1,17 +1,145 @@
|
|
|
1
1
|
# Audio File MCP App
|
|
2
2
|
|
|
3
|
-
An MCP
|
|
3
|
+
An [MCP App](https://blog.modelcontextprotocol.io/posts/2026-01-26-mcp-apps/)
|
|
4
|
+
for playing and inspecting local audio files in an MCP host.
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
Renders an in-conversation UI with playback, metadata, loudness, and a
|
|
9
|
+
spectrogram.
|
|
10
|
+
|
|
11
|
+
File metadata, loudness statistics, the current playhead
|
|
12
|
+
position, and any selected region are also exposed back to the model, so
|
|
13
|
+
follow-up tasks can refer to what the user is actually hearing and looking at.
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
- **Global loudness metrics** computed to EBU R128: Integrated Loudness
|
|
18
|
+
(LUFS), Loudness Range (LRA), True Peak (dBTP), Sample Peak, and RMS.
|
|
19
|
+
- **Instantaneous loudness metrics** while playing or hovering: Momentary
|
|
20
|
+
(400 ms) and Short-Term (3 s) LUFS, plus sample-peak and RMS at the
|
|
21
|
+
cursor position.
|
|
22
|
+
- **Waveform colouring** by spectral centroid — each waveform slice is
|
|
23
|
+
shaded along a tonal ramp using a low/mid/high band-energy ratio, so
|
|
24
|
+
bright/dark regions read at a glance as bright/dark sound.
|
|
25
|
+
- **Reassigned spectrogram** with log-frequency bins (20 Hz floor) and an
|
|
26
|
+
Inferno colour scale; time-frequency reassignment sharpens transients
|
|
27
|
+
and tonal partials beyond what a plain STFT shows.
|
|
28
|
+
- **Looping region selection.** Drag on the timeline to mark a region;
|
|
29
|
+
playback loops over it, and the region's start/end are passed back to
|
|
30
|
+
the model alongside the file's loudness and playhead state.
|
|
31
|
+
|
|
32
|
+
## Install
|
|
33
|
+
|
|
34
|
+
The server runs locally over stdio. Every install path below configures the
|
|
35
|
+
same command: `npx -y @counterpoint-studio/audio-file-mcp-app`.
|
|
36
|
+
|
|
37
|
+
### Claude Desktop
|
|
38
|
+
|
|
39
|
+
Easiest: grab the latest `.mcpb` from the
|
|
40
|
+
[Releases page](https://github.com/counterpoint-studio/audio-file-mcp-app/releases/latest)
|
|
41
|
+
and double-click it. Claude Desktop has Node bundled, so no extra runtime
|
|
42
|
+
is needed.
|
|
43
|
+
|
|
44
|
+
Or add the server by hand to `claude_desktop_config.json`:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"mcpServers": {
|
|
49
|
+
"audio-file": {
|
|
50
|
+
"command": "npx",
|
|
51
|
+
"args": ["-y", "@counterpoint-studio/audio-file-mcp-app"]
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### VS Code (Copilot, Agent mode)
|
|
58
|
+
|
|
59
|
+
[](https://insiders.vscode.dev/redirect/mcp/install?name=audio-file&config=%7B%22type%22%3A%22stdio%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40counterpoint-studio%2Faudio-file-mcp-app%22%5D%7D)
|
|
60
|
+
|
|
61
|
+
Or add to `.vscode/mcp.json` (workspace) or your user `mcp.json`:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"servers": {
|
|
66
|
+
"audio-file": {
|
|
67
|
+
"type": "stdio",
|
|
68
|
+
"command": "npx",
|
|
69
|
+
"args": ["-y", "@counterpoint-studio/audio-file-mcp-app"]
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Goose
|
|
76
|
+
|
|
77
|
+
Paste this deep link into your browser (Goose Desktop must be installed; the
|
|
78
|
+
custom URI scheme can't be a real link in a GitHub README):
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
goose://extension?id=audio-file&name=Audio%20File%20MCP%20App&cmd=npx&arg=-y&arg=%40counterpoint-studio%2Faudio-file-mcp-app
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Or run `goose configure` → **Add Extension** → **Command-line Extension** and
|
|
85
|
+
enter `npx -y @counterpoint-studio/audio-file-mcp-app`.
|
|
86
|
+
|
|
87
|
+
### MCP Inspector
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npx @modelcontextprotocol/inspector npx -y @counterpoint-studio/audio-file-mcp-app
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Usage
|
|
94
|
+
|
|
95
|
+
Ask the host to show you a local audio file by its absolute path. For
|
|
96
|
+
example:
|
|
97
|
+
|
|
98
|
+
> "Show me `/Users/me/Music/track.wav`"
|
|
99
|
+
|
|
100
|
+
The host calls the `display_audio_file` tool, which renders the in-app UI
|
|
101
|
+
with waveform, spectrogram, loudness metrics, and playback transport.
|
|
6
102
|
|
|
7
103
|
## Client compatibility
|
|
8
104
|
|
|
9
|
-
|
|
105
|
+
Tested and known to work in:
|
|
10
106
|
|
|
11
|
-
- **Claude Desktop**
|
|
107
|
+
- **Claude Desktop** — Chat and Cowork
|
|
12
108
|
- **Visual Studio Code**
|
|
13
109
|
- **Goose**
|
|
14
110
|
- **MCP Inspector**
|
|
15
111
|
|
|
16
|
-
The Codex app has been tested, but
|
|
112
|
+
The Codex app has been tested too, but
|
|
113
|
+
[its MCP App support is currently broken](https://github.com/openai/codex/issues/21019).
|
|
114
|
+
|
|
115
|
+
## Development
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
pnpm install
|
|
119
|
+
pnpm run build:dsp # emsdk required; see WASM-BUILD.md
|
|
120
|
+
pnpm run serve # runs the server with tsx, no compile step
|
|
121
|
+
pnpm test
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
`pnpm run build:dist` produces the publishable layout under `dist/`
|
|
125
|
+
(`dist/mcp-app.html` + `dist/server/`).
|
|
126
|
+
|
|
127
|
+
## Releasing
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
pnpm version <bump> # bumps package.json + tags
|
|
131
|
+
pnpm publish --access public # publishes to npm
|
|
132
|
+
pnpm run build:mcpb # produces dist/audio-file-mcp-app-<version>.mcpb
|
|
133
|
+
gh release create v<version> dist/*.mcpb # attaches the bundle to a GitHub release
|
|
134
|
+
mcp-publisher login github && mcp-publisher publish # updates the MCP Registry listing
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
`mcp-publisher` is a Go binary; install it via
|
|
138
|
+
`brew install mcp-publisher` or per the
|
|
139
|
+
[registry quickstart](https://modelcontextprotocol.io/registry/quickstart).
|
|
140
|
+
It reads `server.json` from the repo root — keep its `version` in sync with
|
|
141
|
+
`package.json` before publishing.
|
|
142
|
+
|
|
143
|
+
## License
|
|
17
144
|
|
|
145
|
+
ISC © Counterpoint Studio OÜ
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@counterpoint-studio/audio-file-mcp-app",
|
|
3
|
-
"
|
|
3
|
+
"mcpName": "io.github.counterpoint-studio/audio-file-mcp-app",
|
|
4
|
+
"version": "1.0.1",
|
|
4
5
|
"description": "An MCP app for inspecting audio files in audio workflows. Playback, metadata, statistics",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"audio",
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
"zod": "^4.4.3"
|
|
39
40
|
},
|
|
40
41
|
"devDependencies": {
|
|
42
|
+
"@anthropic-ai/mcpb": "^2.1.2",
|
|
41
43
|
"@types/node": "^25.6.2",
|
|
42
44
|
"tsx": "^4.21.0",
|
|
43
45
|
"typescript": "^6.0.3",
|
|
@@ -52,6 +54,8 @@
|
|
|
52
54
|
"build:dsp": "scripts/build-wasm.sh && scripts/build-js-dsp.sh",
|
|
53
55
|
"build:server": "tsc -p tsconfig.server-build.json && node scripts/add-shebang.mjs",
|
|
54
56
|
"build:dist": "pnpm run build && pnpm run build:server",
|
|
57
|
+
"build:mcpb": "node scripts/build-mcpb.mjs",
|
|
58
|
+
"clean:mcpb": "rm -rf build/mcpb dist/*.mcpb",
|
|
55
59
|
"serve": "npx tsx src/server/app.ts",
|
|
56
60
|
"test": "vitest run",
|
|
57
61
|
"typecheck": "tsc -b"
|