slashvibe-mcp 0.3.19 → 0.3.20
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.
- package/LICENSE +21 -0
- package/README.md +258 -40
- package/config.js +15 -27
- package/index.js +153 -98
- package/intelligence/index.js +2 -9
- package/notify.js +1 -5
- package/package.json +16 -20
- package/prompts.js +1 -1
- package/protocol/index.js +0 -73
- package/store/api.js +211 -436
- package/store/profiles.js +12 -160
- package/store/sqlite.js +347 -0
- package/tools/_actions.js +21 -362
- package/tools/_discovery.js +26 -119
- package/tools/_shared/index.js +0 -64
- package/tools/artifact-create.js +3 -14
- package/tools/collaborative-drawing.js +1 -1
- package/tools/discover.js +34 -350
- package/tools/dm.js +8 -80
- package/tools/feed.js +4 -35
- package/tools/help.js +3 -3
- package/tools/idea.js +2 -9
- package/tools/inbox.js +105 -289
- package/tools/init.js +34 -131
- package/tools/invite.js +4 -15
- package/tools/migrate.js +3 -3
- package/tools/multiplayer-game.js +1 -1
- package/tools/onboarding.js +7 -7
- package/tools/open.js +12 -143
- package/tools/party-game.js +1 -1
- package/tools/report.js +1 -1
- package/tools/request.js +3 -17
- package/tools/settings.js +2 -90
- package/tools/ship.js +7 -30
- package/tools/start.js +12 -147
- package/tools/status.js +6 -53
- package/tools/suggest-tags.js +8 -6
- package/tools/tag-suggestions.js +1 -1
- package/tools/tip.js +77 -150
- package/tools/token.js +4 -4
- package/tools/update.js +1 -1
- package/tools/wallet.js +79 -221
- package/tools/who.js +1 -30
- package/version.json +8 -10
- package/analytics.js +0 -107
- package/auth-store.js +0 -148
- package/auto-update.js +0 -130
- package/bridges/bridge-monitor.js +0 -388
- package/bridges/discord-bot.js +0 -431
- package/bridges/farcaster.js +0 -299
- package/bridges/telegram.js +0 -261
- package/bridges/webhook-health.js +0 -420
- package/bridges/webhook-server.js +0 -437
- package/bridges/whatsapp.js +0 -441
- package/bridges/x-webhook.js +0 -423
- package/games/arcade.js +0 -406
- package/games/chess.js +0 -451
- package/games/colorguess.js +0 -343
- package/games/crossword-words.js +0 -171
- package/games/crossword.js +0 -461
- package/games/drawing.js +0 -347
- package/games/gameroulette.js +0 -300
- package/games/gamerouter.js +0 -336
- package/games/gamestatus.js +0 -337
- package/games/guessnumber.js +0 -209
- package/games/hangman.js +0 -279
- package/games/memory.js +0 -338
- package/games/multiplayer-tictactoe.js +0 -389
- package/games/pixelart.js +0 -399
- package/games/quickduel.js +0 -354
- package/games/riddle.js +0 -371
- package/games/rockpaperscissors.js +0 -291
- package/games/snake.js +0 -406
- package/games/storybuilder.js +0 -343
- package/games/tictactoe.js +0 -345
- package/games/twentyquestions.js +0 -286
- package/games/twotruths.js +0 -207
- package/games/werewolf.js +0 -508
- package/games/wordassociation.js +0 -247
- package/games/wordchain.js +0 -135
- package/intelligence/interests.js +0 -369
- package/notification-emitter.js +0 -77
- package/setup.js +0 -480
- package/tools/_shared.js +0 -234
- package/tools/_work-context.js +0 -338
- package/tools/_work-context.manual-test.js +0 -199
- package/tools/_work-context.test.js +0 -260
- package/tools/activity.js +0 -220
- package/tools/analytics.js +0 -191
- package/tools/approve.js +0 -197
- package/tools/artifacts-price.js +0 -107
- package/tools/available.js +0 -120
- package/tools/broadcast.js +0 -286
- package/tools/chat.js +0 -202
- package/tools/connection-status.js +0 -178
- package/tools/earnings.js +0 -126
- package/tools/follow.js +0 -224
- package/tools/friends.js +0 -207
- package/tools/gig-browse.js +0 -206
- package/tools/gig-complete.js +0 -144
- package/tools/plan.js +0 -225
- package/tools/proof-of-work.js +0 -144
- package/tools/reply.js +0 -166
- package/tools/schedule.js +0 -367
- package/tools/search-messages.js +0 -123
- package/tools/session.js +0 -420
- package/tools/session_price.js +0 -128
- package/tools/smart-check.js +0 -201
- package/tools/stuck.js +0 -297
- package/tools/subscribe.js +0 -148
- package/tools/subscriptions.js +0 -134
- package/tools/watch.js +0 -157
- package/tools/withdraw.js +0 -145
- package/tools/work-summary.js +0 -96
- /package/tools/{_deprecated/auto-suggest-connections.js → auto-suggest-connections.js} +0 -0
- /package/tools/{_deprecated/away.js → away.js} +0 -0
- /package/tools/{_deprecated/back.js → back.js} +0 -0
- /package/tools/{_deprecated/bootstrap-skills.js → bootstrap-skills.js} +0 -0
- /package/tools/{_deprecated/bridge-dashboard.js → bridge-dashboard.js} +0 -0
- /package/tools/{_deprecated/bridge-health.js → bridge-health.js} +0 -0
- /package/tools/{_deprecated/bridge-live.js → bridge-live.js} +0 -0
- /package/tools/{_deprecated/bridges.js → bridges.js} +0 -0
- /package/tools/{_deprecated/colorguess.js → colorguess.js} +0 -0
- /package/tools/{_deprecated/discover-insights.js → discover-insights.js} +0 -0
- /package/tools/{_deprecated/discover-momentum.js → discover-momentum.js} +0 -0
- /package/tools/{_deprecated/discovery-analytics.js → discovery-analytics.js} +0 -0
- /package/tools/{_deprecated/discovery-auto-suggest.js → discovery-auto-suggest.js} +0 -0
- /package/tools/{_deprecated/discovery-bootstrap.js → discovery-bootstrap.js} +0 -0
- /package/tools/{_deprecated/discovery-daily.js → discovery-daily.js} +0 -0
- /package/tools/{_deprecated/discovery-dashboard.js → discovery-dashboard.js} +0 -0
- /package/tools/{_deprecated/discovery-digest.js → discovery-digest.js} +0 -0
- /package/tools/{_deprecated/discovery-hub.js → discovery-hub.js} +0 -0
- /package/tools/{_deprecated/discovery-insights.js → discovery-insights.js} +0 -0
- /package/tools/{_deprecated/discovery-momentum.js → discovery-momentum.js} +0 -0
- /package/tools/{_deprecated/discovery-monitor.js → discovery-monitor.js} +0 -0
- /package/tools/{_deprecated/discovery-proactive.js → discovery-proactive.js} +0 -0
- /package/tools/{_deprecated/draw.js → draw.js} +0 -0
- /package/tools/{_deprecated/farcaster.js → farcaster.js} +0 -0
- /package/tools/{_deprecated/forget.js → forget.js} +0 -0
- /package/tools/{_deprecated/games-catalog.js → games-catalog.js} +0 -0
- /package/tools/{_deprecated/games.js → games.js} +0 -0
- /package/tools/{_deprecated/guessnumber.js → guessnumber.js} +0 -0
- /package/tools/{_deprecated/hangman.js → hangman.js} +0 -0
- /package/tools/{_deprecated/multiplayer-tictactoe.js → multiplayer-tictactoe.js} +0 -0
- /package/tools/{_deprecated/mute.js → mute.js} +0 -0
- /package/tools/{_deprecated/recall.js → recall.js} +0 -0
- /package/tools/{_deprecated/remember.js → remember.js} +0 -0
- /package/tools/{_deprecated/riddle.js → riddle.js} +0 -0
- /package/tools/{_deprecated/run-bootstrap.js → run-bootstrap.js} +0 -0
- /package/tools/{_deprecated/skills-analytics.js → skills-analytics.js} +0 -0
- /package/tools/{_deprecated/skills-bootstrap.js → skills-bootstrap.js} +0 -0
- /package/tools/{_deprecated/skills-dashboard.js → skills-dashboard.js} +0 -0
- /package/tools/{_deprecated/skills-exchange.js → skills-exchange.js} +0 -0
- /package/tools/{_deprecated/skills.js → skills.js} +0 -0
- /package/tools/{_deprecated/smart-intro.js → smart-intro.js} +0 -0
- /package/tools/{_deprecated/storybuilder.js → storybuilder.js} +0 -0
- /package/tools/{_deprecated/telegram-bot.js → telegram-bot.js} +0 -0
- /package/tools/{_deprecated/telegram-setup.js → telegram-setup.js} +0 -0
- /package/tools/{_deprecated/tictactoe.js → tictactoe.js} +0 -0
- /package/tools/{_deprecated/twentyquestions.js → twentyquestions.js} +0 -0
- /package/tools/{_deprecated/wordassociation.js → wordassociation.js} +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Slash Vibe, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,70 +1,288 @@
|
|
|
1
|
-
# vibe
|
|
1
|
+
# /vibe MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The social layer for AI coding. DMs, presence, discovery, and games between developers — without leaving your editor.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Works with Claude Code, Cursor, VS Code, Windsurf, Cline, Continue.dev, JetBrains, and any MCP-compatible client.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
# Install globally
|
|
9
|
-
npm install -g vibe-mcp
|
|
7
|
+
## Install
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
claude mcp add vibe-mcp
|
|
13
|
-
```
|
|
9
|
+
Add to your MCP config and restart your editor:
|
|
14
10
|
|
|
15
|
-
|
|
11
|
+
<details open>
|
|
12
|
+
<summary><strong>Claude Code</strong></summary>
|
|
16
13
|
|
|
17
14
|
Add to `~/.claude.json`:
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"mcpServers": {
|
|
18
|
+
"vibe": {
|
|
19
|
+
"command": "npx",
|
|
20
|
+
"args": ["-y", "slashvibe-mcp"]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
```
|
|
18
25
|
|
|
26
|
+
Or via CLI:
|
|
27
|
+
```bash
|
|
28
|
+
claude mcp add vibe -- npx -y slashvibe-mcp
|
|
29
|
+
```
|
|
30
|
+
</details>
|
|
31
|
+
|
|
32
|
+
<details>
|
|
33
|
+
<summary><strong>Cursor</strong></summary>
|
|
34
|
+
|
|
35
|
+
Add to `~/.cursor/mcp.json`:
|
|
19
36
|
```json
|
|
20
37
|
{
|
|
21
38
|
"mcpServers": {
|
|
22
39
|
"vibe": {
|
|
23
40
|
"command": "npx",
|
|
24
|
-
"args": ["
|
|
25
|
-
|
|
26
|
-
|
|
41
|
+
"args": ["-y", "slashvibe-mcp"]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
</details>
|
|
47
|
+
|
|
48
|
+
<details>
|
|
49
|
+
<summary><strong>VS Code (GitHub Copilot)</strong></summary>
|
|
50
|
+
|
|
51
|
+
Add to `.vscode/mcp.json` in your workspace:
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"servers": {
|
|
55
|
+
"vibe": {
|
|
56
|
+
"command": "npx",
|
|
57
|
+
"args": ["-y", "slashvibe-mcp"]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or add to your `settings.json`:
|
|
64
|
+
```json
|
|
65
|
+
{
|
|
66
|
+
"mcp": {
|
|
67
|
+
"servers": {
|
|
68
|
+
"vibe": {
|
|
69
|
+
"command": "npx",
|
|
70
|
+
"args": ["-y", "slashvibe-mcp"]
|
|
27
71
|
}
|
|
28
72
|
}
|
|
29
73
|
}
|
|
30
74
|
}
|
|
31
75
|
```
|
|
76
|
+
</details>
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary><strong>Windsurf</strong></summary>
|
|
80
|
+
|
|
81
|
+
Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mcpServers": {
|
|
85
|
+
"vibe": {
|
|
86
|
+
"command": "npx",
|
|
87
|
+
"args": ["-y", "slashvibe-mcp"]
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
</details>
|
|
93
|
+
|
|
94
|
+
<details>
|
|
95
|
+
<summary><strong>Cline (VS Code)</strong></summary>
|
|
96
|
+
|
|
97
|
+
Open Cline > MCP Servers icon > Configure > Edit JSON, then add:
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"mcpServers": {
|
|
101
|
+
"vibe": {
|
|
102
|
+
"command": "npx",
|
|
103
|
+
"args": ["-y", "slashvibe-mcp"]
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
</details>
|
|
109
|
+
|
|
110
|
+
<details>
|
|
111
|
+
<summary><strong>Continue.dev</strong></summary>
|
|
112
|
+
|
|
113
|
+
Create `.continue/mcpServers/vibe.json`:
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"command": "npx",
|
|
117
|
+
"args": ["-y", "slashvibe-mcp"]
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
</details>
|
|
121
|
+
|
|
122
|
+
<details>
|
|
123
|
+
<summary><strong>JetBrains (IntelliJ, WebStorm, etc.)</strong></summary>
|
|
124
|
+
|
|
125
|
+
Go to **Settings > Tools > AI Assistant > Model Context Protocol (MCP)** and add a new server:
|
|
126
|
+
- **Command:** `npx`
|
|
127
|
+
- **Arguments:** `-y slashvibe-mcp`
|
|
128
|
+
|
|
129
|
+
Or import from your Claude Code config if you already have one.
|
|
130
|
+
</details>
|
|
131
|
+
|
|
132
|
+
## Getting Started
|
|
133
|
+
|
|
134
|
+
Once installed, tell Claude:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
"let's vibe"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
That's it. Claude will authenticate you via GitHub, show who's online, and check your inbox.
|
|
141
|
+
|
|
142
|
+
If you prefer step-by-step:
|
|
143
|
+
|
|
144
|
+
1. **Authenticate** — `vibe init` opens GitHub OAuth in your browser. Takes 30 seconds.
|
|
145
|
+
2. **See who's around** — `vibe who` shows online builders and what they're working on.
|
|
146
|
+
3. **Check messages** — `vibe inbox` shows unread DMs.
|
|
147
|
+
4. **Send your first message** — `vibe dm @seth hey, just set up /vibe!`
|
|
148
|
+
|
|
149
|
+
## Tools
|
|
150
|
+
|
|
151
|
+
### Core — Messaging & Presence
|
|
152
|
+
|
|
153
|
+
| Tool | What it does |
|
|
154
|
+
|------|-------------|
|
|
155
|
+
| `vibe_start` | Entry point — authenticates, shows who's online, checks inbox |
|
|
156
|
+
| `vibe_init` | Set up your identity via GitHub OAuth |
|
|
157
|
+
| `vibe_who` | See who's online and what they're building |
|
|
158
|
+
| `vibe_dm` | Send a direct message |
|
|
159
|
+
| `vibe_inbox` | Check your unread messages |
|
|
160
|
+
| `vibe_open` | Open a conversation thread with someone |
|
|
161
|
+
| `vibe_ping` | Send a quick wave to someone |
|
|
162
|
+
| `vibe_react` | React to a message |
|
|
163
|
+
| `vibe_status` | Set your mood or what you're working on |
|
|
164
|
+
| `vibe_away` / `vibe_back` | Set yourself away or return |
|
|
165
|
+
| `vibe_bye` | End your session |
|
|
32
166
|
|
|
33
|
-
|
|
167
|
+
### Discovery — Find Your People
|
|
34
168
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
169
|
+
| Tool | What it does |
|
|
170
|
+
|------|-------------|
|
|
171
|
+
| `vibe_discover` | Find builders by interests, projects, or activity |
|
|
172
|
+
| `vibe_suggest_tags` | Get tag suggestions for your profile |
|
|
173
|
+
| `vibe_skills_exchange` | Browse and offer skills |
|
|
174
|
+
| `vibe_workshop_buddy` | Find a learning partner |
|
|
175
|
+
| `vibe_invite` | Generate an invite link |
|
|
40
176
|
|
|
41
|
-
|
|
177
|
+
### Creative — Ship & Share
|
|
42
178
|
|
|
43
|
-
|
|
179
|
+
| Tool | What it does |
|
|
180
|
+
|------|-------------|
|
|
181
|
+
| `vibe_ship` | Announce what you shipped |
|
|
182
|
+
| `vibe_idea` | Share an idea with the community |
|
|
183
|
+
| `vibe_request` | Ask the community for help |
|
|
184
|
+
| `vibe_feed` | See what people are shipping and sharing |
|
|
185
|
+
| `vibe_create_artifact` | Create a shareable guide, workspace, or learning |
|
|
186
|
+
| `vibe_view_artifact` | View shared artifacts |
|
|
44
187
|
|
|
45
|
-
|
|
46
|
-
|---------|-------------|
|
|
47
|
-
| `vibe` | Check inbox and see who's online |
|
|
48
|
-
| `vibe who` | List online users |
|
|
49
|
-
| `vibe dm @handle "message"` | Send a DM |
|
|
50
|
-
| `vibe status shipping` | Set your status |
|
|
51
|
-
| `vibe remember @handle "note"` | Save a memory |
|
|
52
|
-
| `vibe recall @handle` | Recall memories |
|
|
188
|
+
### Memory — Context That Persists
|
|
53
189
|
|
|
54
|
-
|
|
190
|
+
| Tool | What it does |
|
|
191
|
+
|------|-------------|
|
|
192
|
+
| `vibe_remember` | Save a note about someone for next time |
|
|
193
|
+
| `vibe_recall` | Pull up everything you know about someone |
|
|
194
|
+
| `vibe_forget` | Delete a memory |
|
|
195
|
+
| `vibe_handoff` | Create an AIRC context handoff for another tool |
|
|
55
196
|
|
|
56
|
-
|
|
57
|
-
- User presence and discovery
|
|
58
|
-
- Message routing
|
|
59
|
-
- Identity verification
|
|
197
|
+
### Games — 27 Multiplayer & Solo Games
|
|
60
198
|
|
|
61
|
-
|
|
199
|
+
| Tool | What it does |
|
|
200
|
+
|------|-------------|
|
|
201
|
+
| `vibe_game` | Start a multiplayer game with someone |
|
|
202
|
+
| `vibe_solo_game` | Play a solo game (riddles, hangman, number guess) |
|
|
203
|
+
| `vibe_tictactoe` | Challenge someone to tic-tac-toe |
|
|
204
|
+
| `vibe_crossword` | Collaborative crossword puzzle |
|
|
205
|
+
| `vibe_drawing` | Collaborative ASCII drawing |
|
|
206
|
+
| `vibe_party_game` | Start a party game for 3+ players |
|
|
62
207
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
208
|
+
### Bridges — Cross-Platform Social
|
|
209
|
+
|
|
210
|
+
| Tool | What it does |
|
|
211
|
+
|------|-------------|
|
|
212
|
+
| `vibe_x_mentions` | Check your X/Twitter mentions |
|
|
213
|
+
| `vibe_x_reply` | Reply on X from the terminal |
|
|
214
|
+
| `vibe_social_inbox` | Unified inbox across platforms |
|
|
215
|
+
| `vibe_social_post` | Post to multiple networks at once |
|
|
216
|
+
|
|
217
|
+
### Diagnostics
|
|
218
|
+
|
|
219
|
+
| Tool | What it does |
|
|
220
|
+
|------|-------------|
|
|
221
|
+
| `vibe_doctor` | Full health check — API, auth, storage, presence |
|
|
222
|
+
| `vibe_test` | Quick connection and identity test |
|
|
223
|
+
| `vibe_help` | Show available commands |
|
|
224
|
+
| `vibe_update` | Check for and apply updates |
|
|
225
|
+
| `vibe_settings` | Configure preferences |
|
|
226
|
+
|
|
227
|
+
## How It Works
|
|
228
|
+
|
|
229
|
+
/vibe is an MCP server that connects your editor to [slashvibe.dev](https://slashvibe.dev). Messages sync via a Postgres backend with local SQLite persistence for offline-first speed. Everyone using /vibe is on the same network — regardless of which editor they use.
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
Your Editor ←→ /vibe MCP (stdio) ←→ slashvibe.dev API ←→ Other users
|
|
233
|
+
↕
|
|
234
|
+
Local SQLite DB
|
|
235
|
+
(~/.vibecodings/sessions.db)
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
- **Identity** persists via GitHub OAuth — your handle follows you across sessions
|
|
239
|
+
- **Messages** are stored locally first, then synced to the server (optimistic send)
|
|
240
|
+
- **Presence** broadcasts via heartbeat — others see you in real time
|
|
241
|
+
- **Memory** is local — notes you save about people stay on your machine
|
|
242
|
+
|
|
243
|
+
## Troubleshooting
|
|
244
|
+
|
|
245
|
+
**"I installed but don't see /vibe tools in Claude Code"**
|
|
246
|
+
- Make sure you restarted Claude Code after adding the MCP config
|
|
247
|
+
- Check your config file: `~/.claude.json` or `~/.config/claude-code/mcp.json`
|
|
248
|
+
- Run `vibe doctor` to diagnose issues
|
|
249
|
+
|
|
250
|
+
**"Authentication failed or timed out"**
|
|
251
|
+
- The OAuth flow opens a browser window — if it didn't open, go to [slashvibe.dev/login](https://slashvibe.dev/login) manually
|
|
252
|
+
- The auth callback runs on `localhost:9876` — make sure that port is free
|
|
253
|
+
- You have 2 minutes to complete the GitHub login
|
|
254
|
+
|
|
255
|
+
**"Messages aren't sending"**
|
|
256
|
+
- Run `vibe doctor` to check API connectivity
|
|
257
|
+
- Check your internet connection
|
|
258
|
+
- Messages are saved locally even if the API is down — they'll sync when you reconnect
|
|
259
|
+
|
|
260
|
+
**"I see 'Unknown tool' errors"**
|
|
261
|
+
- You may be running an older version. Run `vibe update` or reinstall: `npm install -g slashvibe-mcp`
|
|
262
|
+
|
|
263
|
+
## Configuration
|
|
264
|
+
|
|
265
|
+
Config lives at `~/.vibecodings/config.json` (primary) or `~/.vibe/config.json` (legacy fallback).
|
|
266
|
+
|
|
267
|
+
Local message database: `~/.vibecodings/sessions.db` (SQLite, shared with Vibe Terminal desktop app).
|
|
268
|
+
|
|
269
|
+
## Contributing
|
|
270
|
+
|
|
271
|
+
We welcome contributions. Please read our [Contributor License Agreement](./CLA.md) before submitting pull requests.
|
|
272
|
+
|
|
273
|
+
- Report bugs via [GitHub Issues](https://github.com/VibeCodingInc/vibe-mcp/issues)
|
|
274
|
+
- Propose features via [Discussions](https://github.com/VibeCodingInc/vibe-mcp/discussions)
|
|
67
275
|
|
|
68
276
|
## License
|
|
69
277
|
|
|
70
|
-
MIT
|
|
278
|
+
MIT — see [LICENSE](./LICENSE)
|
|
279
|
+
|
|
280
|
+
## Links
|
|
281
|
+
|
|
282
|
+
- [slashvibe.dev](https://slashvibe.dev) — The platform
|
|
283
|
+
- [Vibe Terminal](https://github.com/VibeCodingInc/vibe-terminal) — Desktop app
|
|
284
|
+
- [@slashvibe on X](https://twitter.com/slashvibe) — Updates
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
Built by [Slash Vibe, Inc.](https://slashvibe.dev)
|
package/config.js
CHANGED
|
@@ -72,8 +72,8 @@ function save(config) {
|
|
|
72
72
|
// GitHub Activity settings
|
|
73
73
|
github_activity_enabled: config.github_activity_enabled !== undefined ? config.github_activity_enabled : existing.github_activity_enabled,
|
|
74
74
|
github_activity_privacy: config.github_activity_privacy || existing.github_activity_privacy || null,
|
|
75
|
-
// OAuth token (persisted across MCP process restarts)
|
|
76
|
-
|
|
75
|
+
// Privy OAuth token (persisted across MCP process restarts)
|
|
76
|
+
privyToken: config.privyToken || existing.privyToken || null,
|
|
77
77
|
authMethod: config.authMethod || existing.authMethod || null
|
|
78
78
|
};
|
|
79
79
|
fs.writeFileSync(PRIMARY_CONFIG, JSON.stringify(data, null, 2));
|
|
@@ -217,52 +217,43 @@ function getAuthToken() {
|
|
|
217
217
|
|
|
218
218
|
// Fall back to shared config (persisted across MCP process restarts)
|
|
219
219
|
const cfg = load();
|
|
220
|
-
return cfg?.
|
|
220
|
+
return cfg?.privyToken || null;
|
|
221
221
|
}
|
|
222
222
|
|
|
223
223
|
/**
|
|
224
|
-
* Save
|
|
225
|
-
* @param {string} token -
|
|
224
|
+
* Save Privy JWT token (used after browser OAuth flow)
|
|
225
|
+
* @param {string} token - Privy access token
|
|
226
226
|
*/
|
|
227
|
-
function
|
|
227
|
+
function savePrivyToken(token) {
|
|
228
228
|
// Save to session data
|
|
229
229
|
const data = getSessionData() || {};
|
|
230
230
|
saveSessionData({
|
|
231
231
|
...data,
|
|
232
232
|
sessionId: data.sessionId || generateSessionId(),
|
|
233
233
|
token,
|
|
234
|
-
authMethod: '
|
|
234
|
+
authMethod: 'privy' // Track that this is a Privy token
|
|
235
235
|
});
|
|
236
236
|
|
|
237
237
|
// Also save to shared config for persistence across MCP restarts
|
|
238
238
|
const cfg = load();
|
|
239
|
-
cfg.
|
|
240
|
-
cfg.authMethod = '
|
|
239
|
+
cfg.privyToken = token;
|
|
240
|
+
cfg.authMethod = 'privy';
|
|
241
241
|
save(cfg);
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
-
// Backwards compatibility alias
|
|
245
|
-
const savePrivyToken = saveAuthToken;
|
|
246
|
-
|
|
247
244
|
/**
|
|
248
|
-
* Check if user has
|
|
249
|
-
* Accepts 'github', 'privy', and 'browser' as valid auth methods (backwards compat)
|
|
245
|
+
* Check if user has Privy auth (vs legacy keypair)
|
|
250
246
|
*/
|
|
251
|
-
function
|
|
252
|
-
const validAuthMethods = ['github', 'privy', 'browser'];
|
|
253
|
-
|
|
247
|
+
function hasPrivyAuth() {
|
|
254
248
|
const data = getSessionData();
|
|
255
|
-
if (
|
|
249
|
+
if (data?.authMethod === 'privy' && data?.token) return true;
|
|
256
250
|
|
|
257
251
|
const cfg = load();
|
|
258
|
-
return
|
|
252
|
+
return cfg?.authMethod === 'privy' && cfg?.privyToken;
|
|
259
253
|
}
|
|
260
254
|
|
|
261
|
-
// Backwards compatibility alias
|
|
262
|
-
const hasPrivyAuth = hasOAuth;
|
|
263
|
-
|
|
264
255
|
/**
|
|
265
|
-
* Remove keypair after migration to
|
|
256
|
+
* Remove keypair after migration to Privy
|
|
266
257
|
* Clears private key from config (security improvement)
|
|
267
258
|
*/
|
|
268
259
|
function removeKeypair() {
|
|
@@ -418,10 +409,7 @@ module.exports = {
|
|
|
418
409
|
getGithubActivityPrivacy,
|
|
419
410
|
setGithubActivityPrivacy,
|
|
420
411
|
getApiUrl,
|
|
421
|
-
// OAuth helpers
|
|
422
|
-
saveAuthToken,
|
|
423
|
-
hasOAuth,
|
|
424
|
-
// Backwards compatibility aliases
|
|
412
|
+
// Privy OAuth helpers
|
|
425
413
|
savePrivyToken,
|
|
426
414
|
hasPrivyAuth,
|
|
427
415
|
removeKeypair,
|