
Vibo Mcp
io.github.chrischall由 GitHub 账号 chrischall 发布v2.6.0更新于 Nov 7, 2026
Vibo (vibodj.com) MCP — plan & manage event music: timeline, songs, ideas, questions, guests
概览
Vibo(vibodj.com)的非官方 MCP 服务器,让助手浏览并管理主办方的活动音乐时间线、歌曲、点歌请求和问题。
- 可以做什么
- 浏览活动与时间线,查看点歌请求和问题
- 添加、点赞、评论和排序歌曲,创建、排序或删除时间线分区
- 回答宾客问题并设置头像,支持上传本地文件
- 管理通知,并将选曲导出到 Spotify 或 Apple Music
- 通过浏览器扩展为 SSO 账号捕获已登录会话令牌
- 适用场景
- 适合在 Vibo 中策划活动音乐的主办方或新人,希望用自然语言而非网页应用完成操作,例如添加点歌、安排时间线或导出选曲。
- 运行要求
- 通过 npx 本地运行(需 Node.js)。需要 Vibo 账号:VIBO_EMAIL 与 VIBO_PASSWORD,或捕获的 VIBO_ACCESS_TOKEN 与 VIBO_REFRESH_TOKEN。可选 VIBO_API_URL、VIBO_SESSION_FILE、VIBO_UPLOAD_DIR。SSO 捕获需安装 ContextMint Bridge Chrome 扩展。需能访问 Vibo 的 GraphQL API。
安装
在 SourceWeft 中
- 打开 控制台中的 Vibo Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
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
来源:README.md,提交 8d8b43d
工具
0版本历史
17- v2.6.0最新Nov 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
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分