vibo-mcp 2.2.2 → 2.3.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.
@@ -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": "2.2.2"
10
+ "version": "2.3.0"
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": "2.2.2",
18
+ "version": "2.3.0",
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": "2.2.2",
4
+ "version": "2.3.0",
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/README.md CHANGED
@@ -38,14 +38,38 @@ Choose one method:
38
38
  The server boots without credentials; the config error only surfaces on the
39
39
  first tool call.
40
40
 
41
+ ### Uploads
42
+
43
+ `vibo_set_profile_photo` and photo/file answers to `vibo_answer_question` only
44
+ read local files from the upload directory — `VIBO_UPLOAD_DIR`, default
45
+ `~/Downloads/vibo-mcp`. Copy a file there before asking Claude to upload it.
46
+ Hidden files, symlinks that lead outside the directory, and files over 25 MiB
47
+ are refused, and photo slots need an image file.
48
+
49
+ ### Confirmations
50
+
51
+ Every write (adding or removing songs, comments, invites, exports, answers,
52
+ uploads, …) is confirmed before anything is sent to Vibo.
53
+
54
+ | variable | default | |
55
+ |---|---|---|
56
+ | `MCP_CONFIRM_MODE` | `ask-user` | What a write does on a client that cannot show a confirmation prompt (claude.ai, Claude Desktop). `ask-user`: two steps — the first call does nothing and returns a preview plus a token, and the model must get your approval in chat before calling again with it. `auto`: the same two steps, but the model may use the token after reviewing the preview itself. `refuse`: writes are refused on such clients. A client that can show prompts (Claude Code) always gets the real prompt. An unrecognised value is treated as `refuse`. |
57
+ | `MCP_CONFIRM_TTL_SECONDS` | `600` | How long a token stays valid. |
58
+ | `MCP_CONFIRM_SECRET` | random per process | Signing key; set it only if tokens must survive a server restart. |
59
+
60
+ A token works once, only for the tool and arguments it was previewed with: a
61
+ changed argument or a reused token is refused and nothing is sent.
62
+
41
63
  ## How it works
42
64
 
43
65
  Vibo's app talks to a GraphQL API at `https://api.vibodj.com/v2/graphql`,
44
66
  authenticating with an `x-token` header obtained from an email/password
45
67
  `signIn`. This server reuses that same flow server-side (no browser needed) and
46
- wraps the host/couple operations as MCP tools. Every mutating tool is
47
- confirm-gated: without `confirm: true` it returns a dry-run preview and makes no
48
- network call.
68
+ wraps the host/couple operations as MCP tools. Every mutating tool asks you to
69
+ confirm first: a client that can show a confirmation prompt (Claude Code) shows
70
+ one; otherwise the first call makes no network call and returns a preview plus a
71
+ `confirmToken`, and only a repeat call with that token makes the change (see
72
+ [Confirmations](#confirmations)).
49
73
 
50
74
  See [docs/VIBO-API.md](docs/VIBO-API.md) for the reverse-engineered API notes
51
75
  and [skills/vibo-mcp/SKILL.md](skills/vibo-mcp/SKILL.md) for the full tool list.