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

已驗證STDIO僅桌面效率與工作流媒體與設計

概覽

AI 產生的概覽

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。
安裝前請注意
會在環境變數或工作階段檔案中保存帳號憑證或工作階段權杖。寫入操作(增刪歌曲、留言、邀請、匯出、回答、上傳、刪除區段)經確認後送往 Vibo;確認行為取決於 MCP_CONFIRM_MODE 與 MCP_CONFIRM_ELICITATION,auto 模式允許模型自行審閱預覽後核准。上傳僅從指定上傳目錄讀取檔案。非官方且由 AI 維護,請自行斟酌使用。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Vibo Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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

json
{  "mcpServers": {    "vibo": {      "command": "npx",      "args": ["-y", "vibo-mcp"],      "env": {        "VIBO_EMAIL": "[email protected]",        "VIBO_PASSWORD": "your_password"      }    }  }}

Authentication

Choose one method:

MethodEnv varsWhen
Email + password (recommended)VIBO_EMAIL, VIBO_PASSWORDYou sign in to Vibo with an email/password.
Captured tokenVIBO_ACCESS_TOKEN (+ VIBO_REFRESH_TOKEN)Your account uses Apple/Google/Facebook sign-in (no password). Capture x-token/x-refresh-token from a signed-in web.vibodj.com session.
Browser capture (SSO)run vibo_capture_sessionWith the ContextMint Bridge browser extension installed and signed into web.vibodj.com, capture the token automatically (saved to ~/.vibo-mcp/session.json).

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, or images/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. A data:<type>;base64, prefix and line breaks are fine.
  • An upload slot (hosted deployments with a blob store). Call vibo_upload_slots with the filenames, PUT each file to the signed URL it returns (its curl field is a ready command), then pass the blobKey (blobKey, or imageBlobKeys/fileBlobKeys). The stored copy is deleted only after Vibo accepts the upload, and the result reports it in blobCleanup. 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_section adds a section and can place it (afterSectionId or a 0-based position). The web app only appends new sections to the end. Visibility is host (default, "Me and DJ") or public (guests too).
  • vibo_delete_section previews 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 pass force: true.
  • vibo_reorder_sections moves one or more sections to directly after another section, or to the start. vibo_reorder_songs does the same for songs within a section.

Vibo's limits, checked before anything is sent:

WhatLimit
Section name45 characters (the web app's limit)
Song comment (vibo_update_song)90 characters (an emoji counts as 2)

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.

variabledefault
MCP_CONFIRM_MODEask-userWhat 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, unless MCP_CONFIRM_ELICITATION=off. An unrecognised value is treated as refuse.
MCP_CONFIRM_ELICITATIONonoff never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE behaviour. Set it for a client that says it can show prompts but never does (the write hangs — opencode 2.0.x). Any other value is treated as on, with a warning on stderr.
MCP_CONFIRM_TTL_SECONDS600How long a token stays valid.
MCP_CONFIRM_SECRETrandom per processSigning key; set it only if tokens must survive a server restart.

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

bash
npm installnpm run build   # tsc + esbuild bundle → dist/npm test        # vitest

License

MIT

來源:README.md,提交 8d8b43d

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

17
  1. v2.6.0最新Nov 7, 2026
  2. v2.5.0Nov 4, 2026
  3. v2.4.5Oct 16, 2026
  4. v2.4.4Oct 10, 2026
  5. v2.4.3Oct 7, 2026
  6. v2.4.2Oct 5, 2026
  7. v2.4.1Oct 3, 2026
  8. v2.4.0Sep 28, 2026
  9. v2.3.1Sep 25, 2026
  10. v2.3.0Sep 24, 2026
  11. v2.2.3Sep 23, 2026
  12. v2.2.2Sep 23, 2026
  13. v2.2.1Sep 21, 2026
  14. v2.2.0Sep 20, 2026
  15. v2.1.0Sep 20, 2026
  16. v2.0.0Sep 19, 2026
  17. v1.8.2Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分