vibo-mcp 1.7.0 → 1.7.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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/bundle.js +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/skills/vibo-mcp/SKILL.md +60 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "MCP server for Vibo (vibodj.com) — plan & manage event music, song requests, ideas, guests, and playlists via natural language",
|
|
10
|
-
"version": "1.7.
|
|
10
|
+
"version": "1.7.1"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "Vibo",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "MCP server for Vibo — browse & manage events, timeline, songs, the DJ song ideas/questions, guests, and exports to Spotify/Apple Music",
|
|
18
|
-
"version": "1.7.
|
|
18
|
+
"version": "1.7.1",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibo-mcp",
|
|
3
3
|
"displayName": "Vibo",
|
|
4
|
-
"version": "1.7.
|
|
4
|
+
"version": "1.7.1",
|
|
5
5
|
"description": "MCP server for Vibo (vibodj.com) — plan & manage event music, song requests, ideas, guests, and playlists via natural language",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Hall",
|
package/dist/bundle.js
CHANGED
|
@@ -35790,7 +35790,7 @@ function toolAnnotations(opts = {}) {
|
|
|
35790
35790
|
}
|
|
35791
35791
|
|
|
35792
35792
|
// src/version.ts
|
|
35793
|
-
var VERSION = "1.7.
|
|
35793
|
+
var VERSION = "1.7.1";
|
|
35794
35794
|
|
|
35795
35795
|
// src/client.ts
|
|
35796
35796
|
import { dirname as dirname2, join as join3 } from "path";
|
package/dist/version.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
// literal on the line carrying the release marker; every manifest and the MCP
|
|
3
3
|
// server banner import VERSION from here, so there is exactly one place to keep
|
|
4
4
|
// in sync (and one release-please extra-files entry).
|
|
5
|
-
export const VERSION = '1.7.
|
|
5
|
+
export const VERSION = '1.7.1'; // x-release-please-version
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibo-mcp",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"mcpName": "io.github.chrischall/vibo-mcp",
|
|
5
5
|
"description": "Vibo (vibodj.com) MCP server for Claude — host/couple event music planning & management. Developed and maintained by AI (Claude Code).",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/chrischall/vibo-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "1.7.
|
|
9
|
+
"version": "1.7.1",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "vibo-mcp",
|
|
14
|
-
"version": "1.7.
|
|
14
|
+
"version": "1.7.1",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
package/skills/vibo-mcp/SKILL.md
CHANGED
|
@@ -85,6 +85,66 @@ you get a dry-run preview of exactly what would be sent.
|
|
|
85
85
|
- `vibo_mark_notifications_read`.
|
|
86
86
|
- `vibo_export_event_to_spotify` / `vibo_export_event_to_apple_music`.
|
|
87
87
|
|
|
88
|
+
## Response shape (`view`)
|
|
89
|
+
|
|
90
|
+
Exactly one of this server's 39 tools takes `view: "compact" | "full"` —
|
|
91
|
+
**`vibo_search_songs`** — and on it **`compact` is the DEFAULT**. You get the
|
|
92
|
+
slim rung without asking for it.
|
|
93
|
+
|
|
94
|
+
**Compact here is media stripping, not a field projection.** `src/view.ts`
|
|
95
|
+
writes no field list, because this repo holds no captured Vibo payload to
|
|
96
|
+
derive one from honestly; instead it removes keys whose value is a picture,
|
|
97
|
+
which is subtractive and so cannot drop a field nobody knew about.
|
|
98
|
+
|
|
99
|
+
Why `vibo_search_songs` is the tool that got it: `annotateSearchResults`
|
|
100
|
+
SPREADS Vibo's own song objects (`{ ...song, quality }`), so it is a
|
|
101
|
+
pass-through with a verdict attached rather than a projection — and the search
|
|
102
|
+
query selects `thumbnails { s180x180 original }` per track, so every cover-art
|
|
103
|
+
URL in the catalog was coming straight back to the caller. Compact removes
|
|
104
|
+
those.
|
|
105
|
+
|
|
106
|
+
What compact does **not** touch on that tool is the point of the tool:
|
|
107
|
+
`songUrl`, the `links` block (`spotify` / `youtube` / `appleMusic`) and the
|
|
108
|
+
`quality` verdict all survive. A streaming link is this server's product, not
|
|
109
|
+
decoration — `vibo_add_song_to_section` cannot add anything without `songUrl`,
|
|
110
|
+
and the quality verdict is computed from how many services carry a track. A
|
|
111
|
+
`null` link survives too: an absent key and a null one are the same to
|
|
112
|
+
`JSON.parse` but not to a reader deciding whether a service was checked.
|
|
113
|
+
|
|
114
|
+
`view: "full"` returns Vibo's payload untouched, cover art included. There is
|
|
115
|
+
deliberately **no `raw` rung**: nothing here re-serialises or normalises the
|
|
116
|
+
GraphQL response, so `full` already IS the upstream payload and a third value
|
|
117
|
+
would silently alias one that exists.
|
|
118
|
+
|
|
119
|
+
### The other 38 tools have no `view` — and one group of them matters
|
|
120
|
+
|
|
121
|
+
- **The 24 mutating tools** (every confirm-gated write, plus
|
|
122
|
+
`vibo_capture_session`) answer with a dry-run preview or a receipt — an id,
|
|
123
|
+
a count, a status. Nothing in a receipt is decoration, and slimming one is
|
|
124
|
+
how you lose the field that says what actually happened.
|
|
125
|
+
- **`vibo_healthcheck`** answers with a connectivity/auth diagnostic, for the
|
|
126
|
+
same reason.
|
|
127
|
+
- **The 13 remaining reads hand back Vibo's GraphQL payload as it arrived.**
|
|
128
|
+
No rung is declared on them, so there is no slim option to ask for — and a
|
|
129
|
+
`view` passed anyway is dropped by zod without a warning, so a successful
|
|
130
|
+
call is not evidence the rung was honoured.
|
|
131
|
+
|
|
132
|
+
That last group is not a neutral fact, so budget for it. **Five of those reads
|
|
133
|
+
select media fields from Vibo and return them in full:**
|
|
134
|
+
|
|
135
|
+
| Tool | What arrives per record |
|
|
136
|
+
| --- | --- |
|
|
137
|
+
| `vibo_get_section_songs` | `thumbnails { s180x180 original }` per song |
|
|
138
|
+
| `vibo_list_song_ideas_songs` | `thumbnails { s180x180 original }` per song |
|
|
139
|
+
| `vibo_list_event_users` | `imageUrl` per person |
|
|
140
|
+
| `vibo_list_notifications` | `imageUrl` per notification |
|
|
141
|
+
| `vibo_get_me` | `imageUrl` |
|
|
142
|
+
|
|
143
|
+
`vibo_get_section_songs` is the one to watch: it returns the same catalog's
|
|
144
|
+
song records that `vibo_search_songs` returns, carrying the same per-track
|
|
145
|
+
cover art — but with no rung to drop it. Page it with `limit` rather than
|
|
146
|
+
reaching for a `view` that is not there.
|
|
147
|
+
|
|
88
148
|
## Typical flow
|
|
89
149
|
|
|
90
150
|
1. `vibo_list_events` → pick an event id.
|