
Vibo Mcp
io.github.chrischallPublished by GitHub account chrischallv2.6.0Updated Nov 7, 2026
Vibo (vibodj.com) MCP — plan & manage event music: timeline, songs, ideas, questions, guests
Overview
Unofficial MCP server for Vibo (vibodj.com) that lets an assistant browse and manage a host's event music timeline, songs, requests and questions.
- What you can do
- Browse events and timelines, and read song requests and questions
- Add, like, comment on and reorder songs, and create, reorder or delete timeline sections
- Answer guest questions and set a profile photo, including local file uploads
- Manage notifications and export selections to Spotify or Apple Music
- Capture a signed-in session token through a browser extension for SSO accounts
- When to use it
- Useful if you are a host or couple planning event music in Vibo and want to make changes in natural language instead of the web app, for example adding song requests, arranging the timeline or exporting selections.
- Requirements
- Runs locally via npx (Node.js). Needs a Vibo account: either VIBO_EMAIL and VIBO_PASSWORD, or a captured VIBO_ACCESS_TOKEN with VIBO_REFRESH_TOKEN. Optional VIBO_API_URL, VIBO_SESSION_FILE and VIBO_UPLOAD_DIR. SSO capture needs the ContextMint Bridge Chrome extension. Network access to the Vibo GraphQL API.
Installation
In SourceWeft
- Open Vibo Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
vibo-mcp
MCP server for Vibo (vibodj.com) — plan your event music as a host/couple. Browse your events and timeline, see and add song requests, like songs, manage notifications, and export selections to Spotify/Apple Music, all via natural language.
Developed and maintained by AI (Claude Code). Use at your own discretion. Unofficial — not affiliated with Vibo. Works only with your own account/data.
Install
Authentication
Choose one method:
The server boots without credentials; the config error only surfaces on the first tool call.
ContextMint Bridge (for SSO capture)
vibo_capture_session reads your signed-in tab through the ContextMint Bridge
browser extension. Install it from
github.com/nullnet-app/contextmint-bridge/releases:
- Chrome: download the Chrome zip, unzip it, and load it unpacked at
chrome://extensions(Developer mode → Load unpacked). - Safari: not available yet — it will ship inside the ContextMint app, which has no public download. Use Chrome for now.
Approve the pair code the extension shows on first use.
ContextMint Bridge is the fetchproxy browser extension under its new name, from
the same maintainer — fetchproxy's own README
(https://github.com/chrischall/fetchproxy#extension) points to it. Its source is
public at https://github.com/nullnet-app/contextmint-bridge: build it yourself,
or check a release zip against the .sha256 file published beside it
(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).
Uploads
vibo_set_profile_photo and photo/file answers to vibo_answer_question take
each file one of three ways:
- A local path (local installs only). Files are read only from the upload
directory —
VIBO_UPLOAD_DIR, default~/Downloads/vibo-mcp. Copy a file there before asking Claude to upload it. Hidden files and symlinks that lead outside the directory are refused. For a photo, the path you pass must be the file itself: any symlink is refused, even one pointing inside the upload directory. On a hosted deployment a path is refused, with a pointer to the routes below. - Inline base64 (
fileData, orimages/files), for small files on any deployment. It is decoded strictly: truncated, mis-padded or otherwise malformed base64 is refused rather than sent as a corrupt file. Adata:<type>;base64,prefix and line breaks are fine. - An upload slot (hosted deployments with a blob store). Call
vibo_upload_slotswith the filenames,PUTeach file to the signed URL it returns (itscurlfield is a ready command), then pass theblobKey(blobKey, orimageBlobKeys/fileBlobKeys). The stored copy is deleted only after Vibo accepts the upload, and the result reports it inblobCleanup. If the upload fails, the copy is kept so you can retry.
Every route is capped at 25 MiB. Photos must be real images (jpg/png/gif/webp/heic) by any route: the type must be an image type and the bytes must match it, so a renamed text file is refused. The confirmation preview shows each file's source, name, type, size and SHA-256. If the bytes change before you confirm, such as a different file at the same path or a re-uploaded slot, the confirmation is refused.
Timeline sections and limits
vibo_create_sectionadds a section and can place it (afterSectionIdor a 0-basedposition). The web app only appends new sections to the end. Visibility ishost(default, "Me and DJ") orpublic(guests too).vibo_delete_sectionpreviews the section's name, its song count and its answered questions before deleting. It refuses the DJ's do-not-play list (dontPlay) and timeline dividers (headline) unless you passforce: true.vibo_reorder_sectionsmoves one or more sections to directly after another section, or to the start.vibo_reorder_songsdoes the same for songs within a section.
Vibo's limits, checked before anything is sent:
A host can only do some things when the DJ's settings allow it: adding or reordering sections (event settings), or reordering one section's songs (that section's "hosts can order songs"). Vibo turns "hosts can order songs" off for every section a host creates, and only the DJ can turn it on. When a setting blocks you, the tool says which one instead of returning Vibo's bare "Action is not allowed for user".
Vibo doesn't store a section description set by a host, so
vibo_create_section takes a note (for the DJ) instead.
Confirmations
Every write (adding or removing songs, comments, invites, exports, answers, uploads, …) is confirmed before anything is sent to Vibo.
A token works once, only for the tool and arguments it was previewed with: a changed argument or a reused token is refused and nothing is sent.
How it works
Vibo's app talks to a GraphQL API at https://api.vibodj.com/v2/graphql,
authenticating with an x-token header obtained from an email/password
signIn. This server reuses that same flow server-side (no browser needed) and
wraps the host/couple operations as MCP tools. Every mutating tool asks you to
confirm first: a client that can show a confirmation prompt (Claude Code) shows
one (unless MCP_CONFIRM_ELICITATION=off); otherwise the first call makes no network call and returns a preview plus a
confirmToken, and only a repeat call with that token makes the change (see
Confirmations).
See docs/VIBO-API.md for the reverse-engineered API notes and skills/vibo-mcp/SKILL.md for the full tool list.
Upgrading
2.6.0 — upload previews. In a confirmation preview, willSend.photo (vibo_set_profile_photo) and each willSend.uploads[<key>] (question answers) are now objects, not strings: {source, path?, blobKey?, filename, mimeType, sizeBytes, sha256}, where source is path, inline or blob. They used to be the path, or the string "(inline bytes)". A caller that displayed the old string should show filename (and path when present). The sha256 is what the confirm token is bound to.
Development
License
MIT
Source: README.md at commit 8d8b43d
Tools
0Version history
17- v2.6.0LatestNov 7, 2026
- v2.5.0Nov 4, 2026
- v2.4.5Oct 16, 2026
- v2.4.4Oct 10, 2026
- v2.4.3Oct 7, 2026
- v2.4.2Oct 5, 2026
- v2.4.1Oct 3, 2026
- v2.4.0Sep 28, 2026
- v2.3.1Sep 25, 2026
- v2.3.0Sep 24, 2026
- v2.2.3Sep 23, 2026
- v2.2.2Sep 23, 2026
- v2.2.1Sep 21, 2026
- v2.2.0Sep 20, 2026
- v2.1.0Sep 20, 2026
- v2.0.0Sep 19, 2026
- v1.8.2Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts