@counterpoint-studio/audio-file-mcp-app 1.0.1 → 1.1.0
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 +55 -9
- package/dist/mcp-app.html +10 -9
- package/dist/server/app.js +20 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/resolve-annotations.js +33 -0
- package/dist/server/resolve-annotations.js.map +1 -0
- package/dist/shared/annotation-data.js +23 -0
- package/dist/shared/annotation-data.js.map +1 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -5,12 +5,13 @@ for playing and inspecting local audio files in an MCP host.
|
|
|
5
5
|
|
|
6
6
|

|
|
7
7
|
|
|
8
|
-
Renders an in-conversation UI with playback, metadata, loudness,
|
|
9
|
-
spectrogram.
|
|
8
|
+
Renders an in-conversation UI with playback, metadata, loudness, a
|
|
9
|
+
spectrogram, and an optional annotation-lane timeline.
|
|
10
10
|
|
|
11
|
-
File metadata, loudness statistics, the current playhead
|
|
12
|
-
|
|
13
|
-
follow-up tasks can refer to what the user is
|
|
11
|
+
File metadata, loudness statistics, the current playhead position, any
|
|
12
|
+
selected region, and the annotation lanes active at the playhead are also
|
|
13
|
+
exposed back to the model, so follow-up tasks can refer to what the user is
|
|
14
|
+
actually hearing and looking at.
|
|
14
15
|
|
|
15
16
|
## Features
|
|
16
17
|
|
|
@@ -28,6 +29,13 @@ follow-up tasks can refer to what the user is actually hearing and looking at.
|
|
|
28
29
|
- **Looping region selection.** Drag on the timeline to mark a region;
|
|
29
30
|
playback loops over it, and the region's start/end are passed back to
|
|
30
31
|
the model alongside the file's loudness and playhead state.
|
|
32
|
+
- **Annotation-lane timeline.** Supply timeline annotations and the widget
|
|
33
|
+
draws a stack of thin labelled lanes between the waveform and spectrogram,
|
|
34
|
+
aligned to the audio's own timeline. Each lane carries time spans, an
|
|
35
|
+
optional colour, and an optional envelope that fades span opacity along the
|
|
36
|
+
lane. Hovering a span reveals its label, and the lanes active at the
|
|
37
|
+
playhead — plus those starting, ending, or active within a selected region
|
|
38
|
+
— are reported back to the model.
|
|
31
39
|
|
|
32
40
|
## Install
|
|
33
41
|
|
|
@@ -54,6 +62,15 @@ Or add the server by hand to `claude_desktop_config.json`:
|
|
|
54
62
|
}
|
|
55
63
|
```
|
|
56
64
|
|
|
65
|
+
### Codex Desktop
|
|
66
|
+
|
|
67
|
+
1. Go to Settings -> MCP Servers
|
|
68
|
+
2. Add Server
|
|
69
|
+
3. Name: `audiofile-mcp-app`
|
|
70
|
+
4. Command to launch: `npx`
|
|
71
|
+
5. Arguments `-y` and `@counterpoint-studio/audio-file-mcp-app`
|
|
72
|
+
|
|
73
|
+
|
|
57
74
|
### VS Code (Copilot, Agent mode)
|
|
58
75
|
|
|
59
76
|
[](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)
|
|
@@ -100,18 +117,47 @@ example:
|
|
|
100
117
|
The host calls the `display_audio_file` tool, which renders the in-app UI
|
|
101
118
|
with waveform, spectrogram, loudness metrics, and playback transport.
|
|
102
119
|
|
|
120
|
+
### Annotation lanes
|
|
121
|
+
|
|
122
|
+
`display_audio_file` accepts an optional `annotations` object describing lanes
|
|
123
|
+
to draw on the timeline (or an `annotationsPath` pointing at a JSON file with
|
|
124
|
+
the same `{ "lanes": [...] }` shape — handy for large payloads):
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"annotations": {
|
|
129
|
+
"lanes": [
|
|
130
|
+
{
|
|
131
|
+
"label": "Delay tails",
|
|
132
|
+
"color": "#e6007e",
|
|
133
|
+
"spans": [{ "start": 8, "end": 24 }],
|
|
134
|
+
"envelope": [
|
|
135
|
+
{ "time": 8, "value": 0 },
|
|
136
|
+
{ "time": 24, "value": 1 }
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Times are in seconds on the audio's own timeline. `label`, `color`, and
|
|
145
|
+
`envelope` are optional; a lane with an envelope fades its span opacity along
|
|
146
|
+
the envelope curve, and uncoloured lanes use a light-accent fill. Overlapping
|
|
147
|
+
spans in a lane are truncated at the next span's start so rows never overlap.
|
|
148
|
+
The model can author annotations to point out sections, mark events, or
|
|
149
|
+
visualise an analysis it just ran.
|
|
150
|
+
|
|
103
151
|
## Client compatibility
|
|
104
152
|
|
|
105
153
|
Tested and known to work in:
|
|
106
154
|
|
|
107
|
-
- **Claude Desktop** — Chat and
|
|
155
|
+
- **Claude Desktop** — Chat, Cowork, and Code
|
|
156
|
+
- **Codex Desktop**
|
|
108
157
|
- **Visual Studio Code**
|
|
109
158
|
- **Goose**
|
|
110
159
|
- **MCP Inspector**
|
|
111
160
|
|
|
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
161
|
## Development
|
|
116
162
|
|
|
117
163
|
```bash
|