> model_context_protocol_
Your agent ↔ VibeMon
Two-way.
Hook lets VibeMon watch what your AI coding agent does. MCP lets your agent operate VibeMon back — create TODOs, mark them done, comment, fan-out @mentions. All from natural language inside Claude Code, Cursor, or any MCP client.
EXISTING · OBSERVATION
Hook (notify.sh / notify.py)
- ›VibeMon watches your agent
- ›signals.bash.category, file_path, tool_name
- ›Fires on every tool_use / prompt / stop
- ›Already installed via curl install.sh
NEW · CONTROL
MCP server (HTTP)
- ›Your agent operates VibeMon
- ›8 tools — todo CRUD + team queries
- ›tools/call → INSERT/UPDATE/SELECT
- ›install.sh registers it automatically
SECTION 01 — QUICK START
Get an API key
Install VibeMon on your phone to generate a vbm_* API key, then log in here to see install commands prefilled with your key.
vbm_YOUR_KEYLog in to see your real key inline — otherwise replace vbm_YOUR_KEY in the commands below.
SECTION 02 — INSTALL
Add VibeMon to your agent
If you already ran curl install.sh | sh, MCP is registered automatically alongside Hooks — nothing else to do. The tabs below show the manual equivalents.
claude mcp add --transport http vibemon https://vibemon.dev/api/mcp \ --header "Authorization: Bearer vbm_YOUR_KEY"
Adds a server entry to ~/.claude.json under mcpServers.vibemon. Restart Claude Code (or reload the window) for it to load tools.
SECTION 03 — TEST CONNECTION
Smoke test
Confirm your key reaches /api/mcp end-to-end. We send initialize + tools/list and report what the server replied.
SECTION 04 — TOOL CATALOG — 8
What your agent can do
todo_listList open TODOs across your teams. Filter by status / assignee=self / due.
{ team_id?, status?, assignee?, due?, limit? }todo_createCreate a new TODO. Caller becomes created_by.
{ team_id, title, description?, priority?, assignee?, due_date?, tags? }todo_updateUpdate any subset of fields by id or 8-char prefix.
{ id_or_prefix, status?, priority?, progress?, assignee?, due_date?, title?, description? }todo_completeShortcut for status=done. Marks the TODO complete and notifies watchers.
{ id_or_prefix }todo_archiveSoft-delete (sets archived_at).
{ id_or_prefix }todo_comment_addAdd a comment. @username triggers mention notifications + auto-watcher.
{ id_or_prefix, body }team_listList teams you belong to.
{}team_membersList members of a team (caller must be a member).
{ team_id }Slime / wallet / live-coders tools land in v2. Today's 8 cover the TODO loop end-to-end.
SECTION 05 — TROUBLESHOOTING
When something goes wrong
401 invalid_tokenWhen: 응답: { error: "invalid_token", error_description: "No authorization provided" }
Fix: Bearer 헤더 누락 또는 vbm_ prefix 가 아닌 키. ~/.claude.json 또는 ~/.cursor/mcp.json 의 Authorization 헤더 확인. 키 회전 시 `curl install.sh | sh` 재실행으로 자동 갱신.
403 forbidden_originWhen: 브라우저에서 호출 시 (제3자 도메인)
Fix: MCP 서버는 vibemon.dev / *.vercel.app / localhost 만 origin 허용 (DNS rebinding 방어). MCP client 는 보통 Origin 안 보내므로 무관 — 브라우저 자바스크립트로 직접 호출하는 경우만 발생.
ambiguous_prefixWhen: 응답: { error: "ambiguous_prefix", candidates: [...] }
Fix: 8자 prefix 가 같은 팀 안에서 2개 이상 todo 와 매칭. candidates 배열에서 정확한 id 골라서 재호출. UUID 전체를 쓰면 항상 unique.
forbidden_teamWhen: 본인이 멤버 아닌 팀에 todo_create / team_members
Fix: team_list 로 본인이 속한 팀 ID 확인. 다른 팀 todo 는 visible 도 아니고 mutate 도 불가 (per-member opt-in invariant).
no_teamsWhen: todo 도구 호출 시 caller 가 어떤 팀에도 속하지 않음
Fix: VibeMon 앱에서 팀 가입 또는 생성. 1인 팀 가능. mate_code 입력으로 1:1 팀 자동 생성도 됨.