convex-mcp-visual 1.0.8 → 1.0.10
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/README.md +51 -931
- package/dist/apps/apps/realtime-dashboard/index.html +1 -1
- package/dist/apps/apps/schema-browser/index.html +1 -1
- package/dist/apps/assets/{realtime-dashboard-BPA99DZn.js → realtime-dashboard-BKgb9FSM.js} +13 -13
- package/dist/apps/assets/{schema-browser-BEcF8hRP.js → schema-browser-DIJDjZTI.js} +18 -5
- package/dist/convex-client.d.ts +36 -8
- package/dist/convex-client.d.ts.map +1 -1
- package/dist/convex-client.js +253 -90
- package/dist/convex-client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +157 -23
- package/dist/index.js.map +1 -1
- package/dist/resources/schema-browser.js +7 -6
- package/dist/resources/schema-browser.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +38 -38
- package/dist/server.js.map +1 -1
- package/dist/tools/dashboard.d.ts +2 -2
- package/dist/tools/dashboard.d.ts.map +1 -1
- package/dist/tools/dashboard.js +109 -87
- package/dist/tools/dashboard.js.map +1 -1
- package/dist/tools/schema-browser.d.ts +2 -2
- package/dist/tools/schema-browser.d.ts.map +1 -1
- package/dist/tools/schema-browser.js +93 -68
- package/dist/tools/schema-browser.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,284 +1,72 @@
|
|
|
1
1
|
# Convex MCP Visual
|
|
2
2
|
|
|
3
|
-
Visual MCP
|
|
3
|
+
Visual MCP tools for exploring Convex databases. Opens interactive browser UIs alongside terminal output.
|
|
4
4
|
|
|
5
5
|
**Features:**
|
|
6
|
-
- **Graph View** - Visual schema diagram with draggable nodes and relationship lines
|
|
7
|
-
- **List View** - Table-based schema explorer with document browser
|
|
8
|
-
- **Dashboard** - Real-time metrics and charts
|
|
9
|
-
- **Dark Mode** - VS Code-style dark theme (toggle in header)
|
|
10
|
-
- **Dual Output** - Terminal markdown + browser UI simultaneously
|
|
11
|
-
|
|
12
|
-
Works with Claude Code and any MCP-compatible client.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Table of Contents
|
|
17
|
-
|
|
18
|
-
- [How MCP Works](#how-mcp-works)
|
|
19
|
-
- [Installation](#installation)
|
|
20
|
-
- [Setup](#setup)
|
|
21
|
-
- [Usage](#usage)
|
|
22
|
-
- [Switching Convex Backends](#switching-convex-backends)
|
|
23
|
-
- [Tools Reference](#tools-reference)
|
|
24
|
-
- [Tech Stack](#tech-stack)
|
|
25
|
-
- [Architecture](#architecture)
|
|
26
|
-
- [Keyboard Shortcuts](#keyboard-shortcuts)
|
|
27
|
-
- [Testing](#testing)
|
|
28
|
-
- [Stopping the MCP Server](#stopping-the-mcp-server)
|
|
29
|
-
- [Uninstalling](#uninstalling)
|
|
30
|
-
- [Troubleshooting](#troubleshooting)
|
|
31
|
-
- [Development](#development)
|
|
32
|
-
- [Security](#security)
|
|
33
|
-
- [Why This Project Exists](#why-this-project-exists)
|
|
34
|
-
- [Current Limitations](#current-limitations)
|
|
35
|
-
- [Wishlist & Future Plans](#wishlist--future-plans)
|
|
36
|
-
- [Claude.ai Web Integration](#claudeai-web-integration-future)
|
|
37
|
-
- [Contributing](#contributing)
|
|
38
|
-
- [License](#license)
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## How MCP Works
|
|
43
|
-
|
|
44
|
-
MCP (Model Context Protocol) is a standard protocol that allows AI assistants like Claude to communicate with external tools and services. Here's how this MCP server works:
|
|
45
6
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
│ User: "Show me my Convex schema" │
|
|
51
|
-
└─────────────────────────────────────────────────────────────────────────┘
|
|
52
|
-
│
|
|
53
|
-
│ MCP Protocol (JSON-RPC over stdio)
|
|
54
|
-
▼
|
|
55
|
-
┌─────────────────────────────────────────────────────────────────────────┐
|
|
56
|
-
│ Convex MCP Visual Server │
|
|
57
|
-
│ │
|
|
58
|
-
│ • Receives tool requests via MCP protocol │
|
|
59
|
-
│ • Authenticates with Convex using local credentials │
|
|
60
|
-
│ • Queries Convex Cloud for schema/document data │
|
|
61
|
-
│ • Returns structured responses to Claude │
|
|
62
|
-
│ • Optionally opens browser UI on localhost:3456 │
|
|
63
|
-
└─────────────────────────────────────────────────────────────────────────┘
|
|
64
|
-
│ │
|
|
65
|
-
│ HTTP Client │ Local HTTP Server
|
|
66
|
-
▼ ▼
|
|
67
|
-
┌───────────────────────┐ ┌───────────────────────────┐
|
|
68
|
-
│ Convex Cloud │ │ Browser UI │
|
|
69
|
-
│ │ │ (localhost:3456) │
|
|
70
|
-
│ Your deployment at │ │ │
|
|
71
|
-
│ xyz.convex.cloud │ │ Interactive graph view, │
|
|
72
|
-
└───────────────────────┘ │ tables, dashboards │
|
|
73
|
-
└───────────────────────────┘
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
**Key Concepts:**
|
|
77
|
-
|
|
78
|
-
1. **stdio Mode**: The MCP server runs as a subprocess of Claude Code, communicating via stdin/stdout using JSON-RPC messages.
|
|
79
|
-
|
|
80
|
-
2. **Tools**: The server exposes two tools (`schema_browser`, `dashboard_view`) that Claude can invoke on your behalf.
|
|
81
|
-
|
|
82
|
-
3. **Dual Output**: Each tool returns both structured text for Claude AND opens a visual browser interface for you.
|
|
7
|
+
- Graph View with draggable table nodes and relationship lines
|
|
8
|
+
- List View with document browser and schema details
|
|
9
|
+
- Dashboard with real-time metrics and charts
|
|
10
|
+
- Dark mode support
|
|
83
11
|
|
|
84
|
-
|
|
12
|
+
Works with Claude Code, Claude Desktop, Cursor, and any MCP client.
|
|
85
13
|
|
|
86
|
-
|
|
14
|
+
## Quick Start
|
|
87
15
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
### Option 1: npx (Recommended)
|
|
91
|
-
|
|
92
|
-
The easiest way - no local installation needed. Works with any MCP client.
|
|
93
|
-
|
|
94
|
-
**npm package:** [npmjs.com/package/convex-mcp-visual](https://www.npmjs.com/package/convex-mcp-visual)
|
|
95
|
-
|
|
96
|
-
#### Claude Code (CLI)
|
|
16
|
+
### 1. Install
|
|
97
17
|
|
|
98
18
|
```bash
|
|
19
|
+
# Claude Code
|
|
99
20
|
claude mcp add convex-visual -- npx convex-mcp-visual --stdio
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
#### Claude Desktop
|
|
103
|
-
|
|
104
|
-
Add to your Claude Desktop config file:
|
|
105
|
-
|
|
106
|
-
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
107
|
-
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
108
|
-
|
|
109
|
-
```json
|
|
110
|
-
{
|
|
111
|
-
"mcpServers": {
|
|
112
|
-
"convex-visual": {
|
|
113
|
-
"command": "npx",
|
|
114
|
-
"args": ["convex-mcp-visual", "--stdio"]
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
#### Cursor / VS Code with MCP Extension
|
|
121
|
-
|
|
122
|
-
Add to your MCP settings:
|
|
123
|
-
|
|
124
|
-
```json
|
|
125
|
-
{
|
|
126
|
-
"mcp.servers": {
|
|
127
|
-
"convex-visual": {
|
|
128
|
-
"command": "npx",
|
|
129
|
-
"args": ["convex-mcp-visual", "--stdio"]
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
#### Any MCP Client
|
|
136
|
-
|
|
137
|
-
The server uses standard MCP protocol over stdio:
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
npx convex-mcp-visual --stdio
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Option 2: Global Install
|
|
144
21
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
# Install globally
|
|
22
|
+
# Or install globally
|
|
149
23
|
npm install -g convex-mcp-visual
|
|
150
|
-
|
|
151
|
-
# Then configure your MCP client to run:
|
|
152
|
-
convex-mcp-visual --stdio
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
**Claude Code:**
|
|
156
|
-
```bash
|
|
157
|
-
claude mcp add convex-visual -- convex-mcp-visual --stdio
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**Claude Desktop / Other clients:**
|
|
161
|
-
```json
|
|
162
|
-
{
|
|
163
|
-
"mcpServers": {
|
|
164
|
-
"convex-visual": {
|
|
165
|
-
"command": "convex-mcp-visual",
|
|
166
|
-
"args": ["--stdio"]
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
24
|
```
|
|
171
25
|
|
|
172
|
-
###
|
|
26
|
+
### 2. Setup Deploy Key
|
|
173
27
|
|
|
174
|
-
|
|
28
|
+
Run the interactive setup:
|
|
175
29
|
|
|
176
30
|
```bash
|
|
177
|
-
|
|
178
|
-
git clone https://github.com/waynesutton/convex-mcp-visual.git
|
|
179
|
-
cd convex-mcp-visual
|
|
180
|
-
|
|
181
|
-
# 2. Install dependencies
|
|
182
|
-
npm install
|
|
183
|
-
|
|
184
|
-
# 3. Build the project
|
|
185
|
-
npm run build
|
|
186
|
-
|
|
187
|
-
# 4. Configure your MCP client to run:
|
|
188
|
-
node /absolute/path/to/convex-mcp-visual/dist/index.js --stdio
|
|
31
|
+
npx convex-mcp-visual --setup
|
|
189
32
|
```
|
|
190
33
|
|
|
191
|
-
|
|
34
|
+
Or set the environment variable:
|
|
192
35
|
|
|
193
|
-
**Example paths:**
|
|
194
|
-
- macOS: `/Users/yourname/projects/convex-mcp-visual/dist/index.js`
|
|
195
|
-
- Linux: `/home/yourname/projects/convex-mcp-visual/dist/index.js`
|
|
196
|
-
- Windows: `C:\Users\yourname\projects\convex-mcp-visual\dist\index.js`
|
|
197
|
-
|
|
198
|
-
### Verify Installation
|
|
199
|
-
|
|
200
|
-
**Claude Code:**
|
|
201
36
|
```bash
|
|
202
|
-
|
|
203
|
-
# You should see: convex-visual
|
|
37
|
+
export CONVEX_DEPLOY_KEY="prod:your-deployment|your-key"
|
|
204
38
|
```
|
|
205
39
|
|
|
206
|
-
|
|
207
|
-
Restart the app, then check the MCP icon in the input area.
|
|
208
|
-
|
|
209
|
-
**Other clients:**
|
|
210
|
-
Check your client's MCP server status panel.
|
|
40
|
+
Get your deploy key from [dashboard.convex.dev](https://dashboard.convex.dev) under Settings > Deploy Keys.
|
|
211
41
|
|
|
212
|
-
###
|
|
42
|
+
### 3. Test Connection
|
|
213
43
|
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
│ claude mcp add convex-visual -- npx convex-mcp-visual --stdio │
|
|
217
|
-
│ │
|
|
218
|
-
│ This tells Claude Code: │
|
|
219
|
-
│ 1. Register a server named "convex-visual" │
|
|
220
|
-
│ 2. When tools are needed, run: npx convex-mcp-visual │
|
|
221
|
-
│ 3. Communicate via --stdio (stdin/stdout JSON-RPC) │
|
|
222
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
223
|
-
│
|
|
224
|
-
▼
|
|
225
|
-
┌─────────────────────────────────────────────────────────────────┐
|
|
226
|
-
│ When you say "Show me my Convex schema": │
|
|
227
|
-
│ │
|
|
228
|
-
│ 1. Claude Code starts the MCP server process │
|
|
229
|
-
│ 2. Sends JSON-RPC request: { method: "tools/call", ... } │
|
|
230
|
-
│ 3. Server queries your Convex deployment │
|
|
231
|
-
│ 4. Server opens browser UI on localhost:3456 │
|
|
232
|
-
│ 5. Server returns markdown to Claude │
|
|
233
|
-
│ 6. You see both: terminal output + browser visualization │
|
|
234
|
-
└─────────────────────────────────────────────────────────────────┘
|
|
44
|
+
```bash
|
|
45
|
+
npx convex-mcp-visual --test
|
|
235
46
|
```
|
|
236
47
|
|
|
237
|
-
|
|
48
|
+
### 4. Use It
|
|
238
49
|
|
|
239
|
-
|
|
50
|
+
In Claude, try:
|
|
240
51
|
|
|
241
|
-
|
|
52
|
+
- "Show me my Convex schema"
|
|
53
|
+
- "What tables do I have?"
|
|
54
|
+
- "Create a dashboard for my data"
|
|
242
55
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
1. Go to [dashboard.convex.dev](https://dashboard.convex.dev)
|
|
246
|
-
2. Select your project
|
|
247
|
-
3. Click **Settings** (gear icon)
|
|
248
|
-
4. Click **Deploy Keys** in the sidebar
|
|
249
|
-
5. Click **Generate Deploy Key**
|
|
250
|
-
6. Choose "Development" or "Production"
|
|
251
|
-
7. Copy the key (format: `prod:happy-animal-123|convex_deploy_abc123...`)
|
|
252
|
-
|
|
253
|
-
### Step 2: Save Your Deploy Key
|
|
254
|
-
|
|
255
|
-
Add the key to your shell profile so it's always available.
|
|
256
|
-
|
|
257
|
-
**For macOS/Linux (zsh):**
|
|
258
|
-
```bash
|
|
259
|
-
echo 'export CONVEX_DEPLOY_KEY="prod:your-deployment|your-key-here"' >> ~/.zshrc
|
|
260
|
-
source ~/.zshrc
|
|
261
|
-
```
|
|
56
|
+
## Documentation
|
|
262
57
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
58
|
+
- [Setup Guide](docs/setup.md) - Detailed configuration options
|
|
59
|
+
- [Tools Reference](docs/tools.md) - Parameters and keyboard shortcuts
|
|
60
|
+
- [Architecture](docs/architecture.md) - How it works
|
|
61
|
+
- [Troubleshooting](docs/troubleshooting.md) - Common issues and fixes
|
|
62
|
+
- [Limitations](docs/limitations.md) - Known limitations
|
|
268
63
|
|
|
269
|
-
|
|
270
|
-
```powershell
|
|
271
|
-
[Environment]::SetEnvironmentVariable("CONVEX_DEPLOY_KEY", "prod:your-deployment|your-key-here", "User")
|
|
272
|
-
```
|
|
64
|
+
## Configuration
|
|
273
65
|
|
|
274
|
-
###
|
|
66
|
+
### Claude Desktop
|
|
275
67
|
|
|
276
|
-
|
|
277
|
-
```bash
|
|
278
|
-
claude mcp add convex-visual -- npx convex-mcp-visual --stdio
|
|
279
|
-
```
|
|
68
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
280
69
|
|
|
281
|
-
**For Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
282
70
|
```json
|
|
283
71
|
{
|
|
284
72
|
"mcpServers": {
|
|
@@ -286,14 +74,17 @@ claude mcp add convex-visual -- npx convex-mcp-visual --stdio
|
|
|
286
74
|
"command": "npx",
|
|
287
75
|
"args": ["convex-mcp-visual", "--stdio"],
|
|
288
76
|
"env": {
|
|
289
|
-
"CONVEX_DEPLOY_KEY": "prod:your-deployment|your-key
|
|
77
|
+
"CONVEX_DEPLOY_KEY": "prod:your-deployment|your-key"
|
|
290
78
|
}
|
|
291
79
|
}
|
|
292
80
|
}
|
|
293
81
|
}
|
|
294
82
|
```
|
|
295
83
|
|
|
296
|
-
|
|
84
|
+
### Cursor / VS Code
|
|
85
|
+
|
|
86
|
+
Add to MCP settings:
|
|
87
|
+
|
|
297
88
|
```json
|
|
298
89
|
{
|
|
299
90
|
"mcp.servers": {
|
|
@@ -305,712 +96,41 @@ claude mcp add convex-visual -- npx convex-mcp-visual --stdio
|
|
|
305
96
|
}
|
|
306
97
|
```
|
|
307
98
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
# Check MCP server is registered (Claude Code)
|
|
312
|
-
claude mcp list
|
|
313
|
-
|
|
314
|
-
# Test the connection
|
|
315
|
-
npx convex-mcp-visual --test
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
You should see:
|
|
319
|
-
```
|
|
320
|
-
Testing Convex connection...
|
|
321
|
-
✓ Connected to: https://your-deployment.convex.cloud
|
|
322
|
-
✓ Found X tables: users, posts, ...
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
---
|
|
326
|
-
|
|
327
|
-
## Changing or Updating Your Deploy Key
|
|
328
|
-
|
|
329
|
-
To switch to a different Convex project or update your key:
|
|
330
|
-
|
|
331
|
-
**1. Edit your shell profile:**
|
|
332
|
-
```bash
|
|
333
|
-
# Open in your editor
|
|
334
|
-
nano ~/.zshrc # or ~/.bashrc
|
|
335
|
-
|
|
336
|
-
# Find and update this line:
|
|
337
|
-
export CONVEX_DEPLOY_KEY="prod:new-deployment|new-key-here"
|
|
338
|
-
|
|
339
|
-
# Save and reload
|
|
340
|
-
source ~/.zshrc
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
**2. Test the new connection:**
|
|
344
|
-
```bash
|
|
345
|
-
npx convex-mcp-visual --test
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
---
|
|
349
|
-
|
|
350
|
-
## Removing the MCP Server
|
|
351
|
-
|
|
352
|
-
**For Claude Code:**
|
|
353
|
-
```bash
|
|
354
|
-
claude mcp remove convex-visual
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
**For Claude Desktop:**
|
|
358
|
-
Edit `~/Library/Application Support/Claude/claude_desktop_config.json` and remove the `convex-visual` entry.
|
|
359
|
-
|
|
360
|
-
**Remove the environment variable (optional):**
|
|
361
|
-
```bash
|
|
362
|
-
# Edit your shell profile
|
|
363
|
-
nano ~/.zshrc
|
|
364
|
-
|
|
365
|
-
# Delete the CONVEX_DEPLOY_KEY line, then reload
|
|
366
|
-
source ~/.zshrc
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
---
|
|
370
|
-
|
|
371
|
-
## Usage
|
|
372
|
-
|
|
373
|
-
In Claude Code, simply ask:
|
|
374
|
-
|
|
375
|
-
| Request | What Happens |
|
|
376
|
-
|---------|--------------|
|
|
377
|
-
| "Show me my Convex schema" | Opens Schema Browser (graph view) |
|
|
378
|
-
| "What tables do I have?" | Shows tables in terminal + browser |
|
|
379
|
-
| "Show me the users table" | Opens Schema Browser pre-selected to users |
|
|
380
|
-
| "Create a dashboard for my data" | Opens Realtime Dashboard |
|
|
381
|
-
|
|
382
|
-
### Example Conversation
|
|
383
|
-
|
|
384
|
-
```
|
|
385
|
-
You: Show me my Convex schema
|
|
386
|
-
|
|
387
|
-
Claude: I'll open the Schema Browser for your Convex deployment.
|
|
388
|
-
|
|
389
|
-
[Opens browser with interactive graph view]
|
|
390
|
-
|
|
391
|
-
Here's your schema:
|
|
392
|
-
- users (245 documents)
|
|
393
|
-
- posts (1,234 documents)
|
|
394
|
-
- comments (892 documents)
|
|
395
|
-
|
|
396
|
-
The users table references posts, and comments reference both users and posts.
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
---
|
|
400
|
-
|
|
401
|
-
## Switching Convex Backends
|
|
402
|
-
|
|
403
|
-
You may need to switch between different Convex deployments (dev, staging, production).
|
|
404
|
-
|
|
405
|
-
### Method 1: Re-login to Different Project
|
|
406
|
-
|
|
407
|
-
```bash
|
|
408
|
-
# Logout from current deployment
|
|
409
|
-
npx convex logout
|
|
410
|
-
|
|
411
|
-
# Login to a different project
|
|
412
|
-
cd /path/to/other-convex-project
|
|
413
|
-
npx convex login
|
|
414
|
-
npx convex dev
|
|
415
|
-
```
|
|
416
|
-
|
|
417
|
-
### Method 2: Set Environment Variable
|
|
418
|
-
|
|
419
|
-
```bash
|
|
420
|
-
# Temporarily use a different deployment
|
|
421
|
-
export CONVEX_URL=https://different-project.convex.cloud
|
|
422
|
-
|
|
423
|
-
# Or with a deploy key
|
|
424
|
-
export CONVEX_DEPLOY_KEY=prod:your-other-key
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
### Method 3: Multiple MCP Registrations
|
|
428
|
-
|
|
429
|
-
You can register multiple instances for different backends:
|
|
430
|
-
|
|
431
|
-
```bash
|
|
432
|
-
# Production
|
|
433
|
-
claude mcp add convex-prod -- npx convex-mcp-visual --stdio
|
|
434
|
-
# Set CONVEX_DEPLOY_KEY in Claude Code settings for this instance
|
|
435
|
-
|
|
436
|
-
# Development
|
|
437
|
-
claude mcp add convex-dev -- npx convex-mcp-visual --stdio
|
|
438
|
-
```
|
|
439
|
-
|
|
440
|
-
### Viewing Current Deployment
|
|
441
|
-
|
|
442
|
-
In Claude Code, ask: "What Convex deployment am I connected to?"
|
|
443
|
-
|
|
444
|
-
The Schema Browser header also displays the current deployment URL.
|
|
445
|
-
|
|
446
|
-
---
|
|
447
|
-
|
|
448
|
-
## Tools Reference
|
|
449
|
-
|
|
450
|
-
### schema_browser
|
|
451
|
-
|
|
452
|
-
Interactive schema explorer with two view modes.
|
|
453
|
-
|
|
454
|
-
**Parameters:**
|
|
455
|
-
|
|
456
|
-
| Parameter | Type | Default | Description |
|
|
457
|
-
|-----------|------|---------|-------------|
|
|
458
|
-
| `table` | string | none | Pre-select a specific table |
|
|
459
|
-
| `showInferred` | boolean | true | Show inferred schemas from documents |
|
|
460
|
-
| `pageSize` | number | 50 | Documents per page in list view |
|
|
461
|
-
|
|
462
|
-
**Views:**
|
|
463
|
-
|
|
464
|
-
- **Graph View**: Visual diagram showing tables as nodes with relationship lines
|
|
465
|
-
- Drag nodes to rearrange
|
|
466
|
-
- Pan/zoom to navigate
|
|
467
|
-
- Click nodes to select
|
|
468
|
-
- Toggle dark mode in header
|
|
469
|
-
|
|
470
|
-
- **List View**: Traditional table list with schema details
|
|
471
|
-
- Paginated document browser
|
|
472
|
-
- Field types and optionality
|
|
473
|
-
- Search across tables
|
|
474
|
-
|
|
475
|
-
### dashboard_view
|
|
476
|
-
|
|
477
|
-
Real-time dashboard with metrics and charts.
|
|
478
|
-
|
|
479
|
-
**Parameters:**
|
|
480
|
-
|
|
481
|
-
| Parameter | Type | Default | Description |
|
|
482
|
-
|-----------|------|---------|-------------|
|
|
483
|
-
| `metrics` | array | [] | Metric definitions |
|
|
484
|
-
| `charts` | array | [] | Chart configurations |
|
|
485
|
-
| `refreshInterval` | number | 5 | Refresh interval in seconds |
|
|
486
|
-
|
|
487
|
-
**Metric Aggregations:** count, sum, avg, min, max
|
|
488
|
-
|
|
489
|
-
**Chart Types:** line, bar, pie
|
|
490
|
-
|
|
491
|
-
---
|
|
492
|
-
|
|
493
|
-
## Tech Stack
|
|
494
|
-
|
|
495
|
-
### Server
|
|
496
|
-
|
|
497
|
-
| Technology | Purpose |
|
|
498
|
-
|------------|---------|
|
|
499
|
-
| **Node.js 18+** | Runtime environment |
|
|
500
|
-
| **TypeScript** | Type-safe JavaScript |
|
|
501
|
-
| **@modelcontextprotocol/sdk** | Official MCP protocol implementation |
|
|
502
|
-
| **Convex SDK** | Convex database client |
|
|
503
|
-
|
|
504
|
-
### UI Applications
|
|
505
|
-
|
|
506
|
-
| Technology | Purpose |
|
|
507
|
-
|------------|---------|
|
|
508
|
-
| **Vanilla TypeScript** | No framework dependencies (React, Vue, etc.) |
|
|
509
|
-
| **HTML5 Canvas** | Graph rendering with pan/zoom/drag |
|
|
510
|
-
| **CSS3 Variables** | Theming (light/dark mode) |
|
|
511
|
-
| **Vite** | Fast bundling and hot reload |
|
|
512
|
-
|
|
513
|
-
### Why These Choices?
|
|
514
|
-
|
|
515
|
-
- **No UI framework**: Keeps bundle small (~62KB for schema browser), loads instantly
|
|
516
|
-
- **Canvas for graphs**: Smooth 60fps rendering, handles 100+ nodes easily
|
|
517
|
-
- **CSS Variables**: Runtime theme switching without JavaScript
|
|
518
|
-
- **TypeScript everywhere**: Catches errors at build time, better IDE support
|
|
519
|
-
- **Vanilla over frameworks**: Fewer dependencies = fewer security vulnerabilities
|
|
520
|
-
|
|
521
|
-
### Dependencies
|
|
522
|
-
|
|
523
|
-
```json
|
|
524
|
-
{
|
|
525
|
-
"dependencies": {
|
|
526
|
-
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
527
|
-
"convex": "^1.17.0"
|
|
528
|
-
},
|
|
529
|
-
"devDependencies": {
|
|
530
|
-
"@types/node": "^20.0.0",
|
|
531
|
-
"typescript": "^5.0.0",
|
|
532
|
-
"vite": "^6.4.1"
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
```
|
|
536
|
-
|
|
537
|
-
Only **2 runtime dependencies** - minimal attack surface, fast installs.
|
|
538
|
-
|
|
539
|
-
---
|
|
540
|
-
|
|
541
|
-
## Architecture
|
|
542
|
-
|
|
543
|
-
```
|
|
544
|
-
convex-mcp-visual/
|
|
545
|
-
├── src/
|
|
546
|
-
│ ├── index.ts # CLI entry (--stdio, --http, --test)
|
|
547
|
-
│ ├── server.ts # MCP server + tool handlers
|
|
548
|
-
│ ├── convex-client.ts # Convex authentication + queries
|
|
549
|
-
│ ├── ui-server.ts # Local HTTP server (port 3456)
|
|
550
|
-
│ ├── tools/
|
|
551
|
-
│ │ ├── schema-browser.ts
|
|
552
|
-
│ │ └── dashboard.ts
|
|
553
|
-
│ └── resources/
|
|
554
|
-
│ ├── schema-browser.ts
|
|
555
|
-
│ └── dashboard.ts
|
|
556
|
-
├── apps/
|
|
557
|
-
│ ├── schema-browser/ # Graph + list view UI
|
|
558
|
-
│ └── realtime-dashboard/
|
|
559
|
-
└── dist/ # Compiled output (published to npm)
|
|
560
|
-
```
|
|
561
|
-
|
|
562
|
-
---
|
|
563
|
-
|
|
564
|
-
## Keyboard Shortcuts
|
|
565
|
-
|
|
566
|
-
### Schema Browser
|
|
567
|
-
|
|
568
|
-
| Key | Action |
|
|
569
|
-
|-----|--------|
|
|
570
|
-
| `G` | Toggle Graph/List view |
|
|
571
|
-
| `B` | Toggle sidebar panel |
|
|
572
|
-
| `R` | Refresh data |
|
|
573
|
-
| `↑/↓` | Navigate tables |
|
|
574
|
-
| `←/→` | Change page (List view) |
|
|
575
|
-
| `/` | Focus search |
|
|
576
|
-
| `+/-` | Zoom in/out (Graph view) |
|
|
577
|
-
|
|
578
|
-
### Dashboard
|
|
579
|
-
|
|
580
|
-
| Key | Action |
|
|
581
|
-
|-----|--------|
|
|
582
|
-
| `R` | Refresh data |
|
|
583
|
-
|
|
584
|
-
---
|
|
585
|
-
|
|
586
|
-
## Testing
|
|
587
|
-
|
|
588
|
-
### Test Connection
|
|
589
|
-
|
|
590
|
-
```bash
|
|
591
|
-
# Test that Convex credentials work
|
|
592
|
-
npm test
|
|
593
|
-
# or
|
|
594
|
-
npx convex-mcp-visual --test
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
**Expected output:**
|
|
598
|
-
```
|
|
599
|
-
Testing Convex connection...
|
|
600
|
-
✓ Connected to: https://your-deployment.convex.cloud
|
|
601
|
-
✓ Found 5 tables: users, posts, comments, likes, sessions
|
|
602
|
-
```
|
|
603
|
-
|
|
604
|
-
### Test MCP Protocol
|
|
605
|
-
|
|
606
|
-
```bash
|
|
607
|
-
# Run in HTTP mode for debugging
|
|
608
|
-
npm run start:http
|
|
609
|
-
# Server runs on http://localhost:3001
|
|
610
|
-
|
|
611
|
-
# Test with curl
|
|
612
|
-
curl -X POST http://localhost:3001 \
|
|
613
|
-
-H "Content-Type: application/json" \
|
|
614
|
-
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
|
|
615
|
-
```
|
|
616
|
-
|
|
617
|
-
### Debug in Claude Code
|
|
99
|
+
## CLI Options
|
|
618
100
|
|
|
619
|
-
If tools aren't working:
|
|
620
|
-
1. Check `claude mcp list` shows the server
|
|
621
|
-
2. Try `claude mcp logs convex-visual` for error messages
|
|
622
|
-
3. Verify Convex credentials with `npm test`
|
|
623
|
-
|
|
624
|
-
---
|
|
625
|
-
|
|
626
|
-
## Stopping the MCP Server
|
|
627
|
-
|
|
628
|
-
MCP servers are managed by Claude Code and run as subprocesses.
|
|
629
|
-
|
|
630
|
-
### Stop Temporarily
|
|
631
|
-
|
|
632
|
-
The server stops automatically when Claude Code closes.
|
|
633
|
-
|
|
634
|
-
### Disable the Server
|
|
635
|
-
|
|
636
|
-
```bash
|
|
637
|
-
# Remove from Claude Code
|
|
638
|
-
claude mcp remove convex-visual
|
|
639
101
|
```
|
|
102
|
+
convex-mcp-visual [options]
|
|
640
103
|
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
# Kill it
|
|
650
|
-
kill <pid>
|
|
651
|
-
|
|
652
|
-
# Or kill all node MCP servers
|
|
653
|
-
pkill -f "convex-mcp-visual"
|
|
104
|
+
Options:
|
|
105
|
+
--stdio Run in stdio mode (default)
|
|
106
|
+
--http Run in HTTP mode
|
|
107
|
+
--port <num> Port for HTTP mode (default: 3001)
|
|
108
|
+
--test Test Convex connection
|
|
109
|
+
--setup Interactive setup wizard
|
|
110
|
+
-h, --help Show help
|
|
654
111
|
```
|
|
655
112
|
|
|
656
|
-
---
|
|
657
|
-
|
|
658
113
|
## Uninstalling
|
|
659
114
|
|
|
660
|
-
### Remove from Claude Code
|
|
661
|
-
|
|
662
115
|
```bash
|
|
116
|
+
# Remove from Claude Code
|
|
663
117
|
claude mcp remove convex-visual
|
|
664
|
-
```
|
|
665
|
-
|
|
666
|
-
### Remove Global Package
|
|
667
118
|
|
|
668
|
-
|
|
119
|
+
# Remove global package
|
|
669
120
|
npm uninstall -g convex-mcp-visual
|
|
670
121
|
```
|
|
671
122
|
|
|
672
|
-
### Remove Local Installation
|
|
673
|
-
|
|
674
|
-
```bash
|
|
675
|
-
rm -rf /path/to/convex-mcp-visual
|
|
676
|
-
```
|
|
677
|
-
|
|
678
|
-
### Logout from Convex (Optional)
|
|
679
|
-
|
|
680
|
-
```bash
|
|
681
|
-
npx convex logout
|
|
682
|
-
```
|
|
683
|
-
|
|
684
|
-
This removes `~/.convex/config.json` but doesn't affect your Convex deployment.
|
|
685
|
-
|
|
686
|
-
---
|
|
687
|
-
|
|
688
|
-
## Troubleshooting
|
|
689
|
-
|
|
690
|
-
### Server not showing in Claude Code
|
|
691
|
-
|
|
692
|
-
```bash
|
|
693
|
-
# 1. Verify the MCP server is registered
|
|
694
|
-
claude mcp list
|
|
695
|
-
|
|
696
|
-
# 2. If not listed, re-add with absolute path
|
|
697
|
-
claude mcp add convex-visual -- node /full/path/to/dist/index.js --stdio
|
|
698
|
-
|
|
699
|
-
# 3. Restart Claude Code
|
|
700
|
-
```
|
|
701
|
-
|
|
702
|
-
### "No Convex deployment configured"
|
|
703
|
-
|
|
704
|
-
You need to set `CONVEX_DEPLOY_KEY`. See [Setup](#setup) for how to get a deploy key.
|
|
705
|
-
|
|
706
|
-
```bash
|
|
707
|
-
# Re-add MCP server with your deploy key
|
|
708
|
-
claude mcp remove convex-visual
|
|
709
|
-
claude mcp add convex-visual -e CONVEX_DEPLOY_KEY=prod:your-deployment|your-key -- npx convex-mcp-visual --stdio
|
|
710
|
-
```
|
|
711
|
-
|
|
712
|
-
### "403 Forbidden" or "Connection failed"
|
|
713
|
-
|
|
714
|
-
This means authentication failed. Common causes:
|
|
715
|
-
1. **Missing or invalid deploy key** - Get a new one from [Convex Dashboard](https://dashboard.convex.dev) → Settings → Deploy Keys
|
|
716
|
-
2. **Wrong format** - Deploy key should be `prod:deployment-name|convex_deploy_xxx...`
|
|
717
|
-
3. **Expired key** - Generate a new deploy key
|
|
718
|
-
|
|
719
|
-
```bash
|
|
720
|
-
# Test your connection
|
|
721
|
-
CONVEX_DEPLOY_KEY=your-key-here npx convex-mcp-visual --test
|
|
722
|
-
```
|
|
723
|
-
|
|
724
|
-
### Browser doesn't open
|
|
725
|
-
|
|
726
|
-
- Check if port 3456 is available: `lsof -i :3456`
|
|
727
|
-
- The terminal output always works even if browser fails
|
|
728
|
-
- Try opening manually: `http://localhost:3456`
|
|
729
|
-
|
|
730
|
-
### Authentication errors
|
|
731
|
-
|
|
732
|
-
Get a new deploy key from the Convex Dashboard:
|
|
733
|
-
1. Go to [dashboard.convex.dev](https://dashboard.convex.dev)
|
|
734
|
-
2. Select your project → Settings → Deploy Keys
|
|
735
|
-
3. Generate a new key
|
|
736
|
-
4. Update your MCP server configuration
|
|
737
|
-
|
|
738
|
-
### Windows users
|
|
739
|
-
|
|
740
|
-
Use cmd wrapper in Claude Code settings:
|
|
741
|
-
|
|
742
|
-
```json
|
|
743
|
-
{
|
|
744
|
-
"command": "cmd",
|
|
745
|
-
"args": ["/c", "npx", "convex-mcp-visual", "--stdio"]
|
|
746
|
-
}
|
|
747
|
-
```
|
|
748
|
-
|
|
749
|
-
### "Connection closed" errors
|
|
750
|
-
|
|
751
|
-
This usually means the server crashed. Check:
|
|
752
|
-
1. Node.js version (requires 18+)
|
|
753
|
-
2. Run `npm test` to verify credentials
|
|
754
|
-
3. Check for error output in Claude Code logs
|
|
755
|
-
|
|
756
|
-
### Canvas appears blurry
|
|
757
|
-
|
|
758
|
-
The graph view scales for retina displays. If blurry, try:
|
|
759
|
-
- Refreshing the browser
|
|
760
|
-
- Zooming to 100% with the zoom controls
|
|
761
|
-
|
|
762
|
-
---
|
|
763
|
-
|
|
764
|
-
## Development
|
|
765
|
-
|
|
766
|
-
### Build Commands
|
|
767
|
-
|
|
768
|
-
```bash
|
|
769
|
-
npm install # Install dependencies
|
|
770
|
-
npm run build # Build server + UI apps
|
|
771
|
-
npm run build:server # Build only TypeScript server
|
|
772
|
-
npm run build:apps # Build only UI apps (Vite)
|
|
773
|
-
npm run dev # Watch mode for server
|
|
774
|
-
npm run clean # Remove dist/ folder
|
|
775
|
-
```
|
|
776
|
-
|
|
777
|
-
### Environment Variables
|
|
778
|
-
|
|
779
|
-
| Variable | Purpose | Default |
|
|
780
|
-
|----------|---------|---------|
|
|
781
|
-
| `CONVEX_URL` | Override deployment URL | From ~/.convex/ |
|
|
782
|
-
| `CONVEX_DEPLOY_KEY` | Deploy key for auth | None |
|
|
783
|
-
| `MCP_TIMEOUT` | Server startup timeout | 10000ms |
|
|
784
|
-
|
|
785
|
-
---
|
|
786
|
-
|
|
787
|
-
## Security
|
|
788
|
-
|
|
789
|
-
### What Data Does This Server Access?
|
|
790
|
-
|
|
791
|
-
- **Schema information**: Table names, field types, document counts
|
|
792
|
-
- **Sample documents**: First 50 documents per table (for display)
|
|
793
|
-
- **No write access**: This tool only reads data, never modifies
|
|
794
|
-
|
|
795
|
-
### Credentials Storage
|
|
796
|
-
|
|
797
|
-
- Credentials are read from `~/.convex/` or environment variables
|
|
798
|
-
- Credentials are never logged, stored, or transmitted elsewhere
|
|
799
|
-
- The local web server only binds to `localhost` (127.0.0.1)
|
|
800
|
-
|
|
801
|
-
### Network Security
|
|
802
|
-
|
|
803
|
-
- All Convex API calls use HTTPS
|
|
804
|
-
- The local UI server (port 3456) only accepts connections from localhost
|
|
805
|
-
- No data is sent to third parties
|
|
806
|
-
|
|
807
|
-
### Production Deploy Keys
|
|
808
|
-
|
|
809
|
-
If using `CONVEX_DEPLOY_KEY`:
|
|
810
|
-
- Use read-only deploy keys when possible
|
|
811
|
-
- Never commit deploy keys to version control
|
|
812
|
-
- Use environment variables or secrets management
|
|
813
|
-
|
|
814
|
-
---
|
|
815
|
-
|
|
816
|
-
## How It Differs from Official Convex MCP
|
|
817
|
-
|
|
818
|
-
| Feature | Official `npx convex mcp` | This Project |
|
|
819
|
-
|---------|---------------------------|--------------|
|
|
820
|
-
| Output | Text/JSON for AI | Visual browser UI |
|
|
821
|
-
| Purpose | AI coding assistant | Human exploration |
|
|
822
|
-
| Schema view | Text tables | Interactive graph diagram |
|
|
823
|
-
| Documents | JSON output | Paginated table browser |
|
|
824
|
-
| Dashboard | None | Real-time charts |
|
|
825
|
-
| Dark mode | No | Yes (VS Code style) |
|
|
826
|
-
|
|
827
|
-
**Use the official Convex MCP** for AI-assisted coding tasks.
|
|
828
|
-
**Use this project** when you want to visually explore your database.
|
|
829
|
-
|
|
830
|
-
---
|
|
831
|
-
|
|
832
|
-
## Why This Project Exists
|
|
833
|
-
|
|
834
|
-
### The Problem
|
|
835
|
-
|
|
836
|
-
When working with Convex databases, developers often need to:
|
|
837
|
-
- Quickly visualize table relationships and schema structure
|
|
838
|
-
- Browse documents without writing queries
|
|
839
|
-
- Understand how data flows between tables
|
|
840
|
-
- Get a high-level overview before diving into code
|
|
841
|
-
|
|
842
|
-
The official `npx convex mcp` is optimized for AI-assisted coding—it returns structured text that Claude can parse and use to help you write code. But humans often want to *see* their data visually.
|
|
843
|
-
|
|
844
|
-
### The Solution
|
|
845
|
-
|
|
846
|
-
This project bridges that gap by providing:
|
|
847
|
-
- **Visual schema diagrams** that show relationships at a glance
|
|
848
|
-
- **Interactive exploration** with drag, pan, and zoom
|
|
849
|
-
- **Real-time dashboards** for monitoring data
|
|
850
|
-
- **Dual output** so Claude still gets structured data while you get visuals
|
|
851
|
-
|
|
852
|
-
---
|
|
853
|
-
|
|
854
|
-
## Current Limitations
|
|
855
|
-
|
|
856
|
-
### What's Not Yet Supported
|
|
857
|
-
|
|
858
|
-
| Feature | Status | Notes |
|
|
859
|
-
|---------|--------|-------|
|
|
860
|
-
| Write operations | Not planned | Read-only by design for safety |
|
|
861
|
-
| Custom queries | Not implemented | Would require query builder UI |
|
|
862
|
-
| Real-time subscriptions | Partial | Dashboard refreshes on interval, not live |
|
|
863
|
-
| Multiple deployments | Manual | Must switch via env vars or re-login |
|
|
864
|
-
| Schema editing | Not planned | Use Convex dashboard for schema changes |
|
|
865
|
-
| Index visualization | Partial | Shows index names, not full definitions |
|
|
866
|
-
| Function introspection | Not implemented | Would show Convex functions |
|
|
867
|
-
|
|
868
|
-
### Known Issues
|
|
869
|
-
|
|
870
|
-
- **Large schemas**: Performance may degrade with 50+ tables
|
|
871
|
-
- **Complex relationships**: Only detects `Id<"table">` patterns, not custom references
|
|
872
|
-
- **Browser popup blockers**: May need to allow popups for localhost:3456
|
|
873
|
-
|
|
874
|
-
---
|
|
875
|
-
|
|
876
|
-
## Wishlist & Future Plans
|
|
877
|
-
|
|
878
|
-
### Short-Term (Next Release)
|
|
879
|
-
|
|
880
|
-
- [ ] **Export schema as image** - PNG/SVG export of graph view
|
|
881
|
-
- [ ] **Query builder** - Visual interface to build simple queries
|
|
882
|
-
- [ ] **Improved relationship detection** - Detect array references, nested IDs
|
|
883
|
-
- [ ] **Table statistics** - Show min/max/avg for numeric fields
|
|
884
|
-
- [ ] **Search within documents** - Full-text search across all tables
|
|
885
|
-
|
|
886
|
-
### Medium-Term
|
|
887
|
-
|
|
888
|
-
- [ ] **Schema diff view** - Compare schema between environments
|
|
889
|
-
- [ ] **Data sampling** - Statistical overview of field values
|
|
890
|
-
- [ ] **Relationship path finder** - Show how two tables connect
|
|
891
|
-
- [ ] **Custom themes** - User-defined color schemes
|
|
892
|
-
- [ ] **Bookmarks** - Save frequently accessed tables/views
|
|
893
|
-
|
|
894
|
-
### Long-Term Vision
|
|
895
|
-
|
|
896
|
-
- [ ] **Claude.ai web integration** (see below)
|
|
897
|
-
- [ ] **Collaborative viewing** - Share schema view with team
|
|
898
|
-
- [ ] **Schema history** - Track schema changes over time
|
|
899
|
-
- [ ] **AI-powered insights** - Claude analyzes schema and suggests optimizations
|
|
900
|
-
|
|
901
|
-
---
|
|
902
|
-
|
|
903
|
-
## Claude.ai Web Integration (Future)
|
|
904
|
-
|
|
905
|
-
### Current State
|
|
906
|
-
|
|
907
|
-
This MCP server currently works with:
|
|
908
|
-
- **Claude Code (CLI)** - Full support via stdio
|
|
909
|
-
- **Claude Desktop** - Full support via MCP configuration
|
|
910
|
-
- **Any MCP client** - Standard MCP protocol
|
|
911
|
-
|
|
912
|
-
It does **not** yet work with:
|
|
913
|
-
- **Claude.ai (web)** - Browser-based Claude at claude.ai
|
|
914
|
-
|
|
915
|
-
### Why It Doesn't Work on Claude.ai Web (Yet)
|
|
916
|
-
|
|
917
|
-
MCP servers run as local processes that communicate via stdio or HTTP. The Claude.ai web interface runs in a browser sandbox and cannot:
|
|
918
|
-
1. Spawn local processes
|
|
919
|
-
2. Access localhost servers
|
|
920
|
-
3. Read local files (~/.convex/)
|
|
921
|
-
|
|
922
|
-
### How It Could Work in the Future
|
|
923
|
-
|
|
924
|
-
Several approaches are being explored in the MCP ecosystem:
|
|
925
|
-
|
|
926
|
-
#### Option 1: MCP Gateway Service
|
|
927
|
-
```
|
|
928
|
-
Claude.ai (web) → MCP Gateway (cloud) → Your local MCP server
|
|
929
|
-
↑
|
|
930
|
-
Authenticated tunnel
|
|
931
|
-
```
|
|
932
|
-
|
|
933
|
-
A cloud gateway that securely proxies MCP requests to your local server. This would require:
|
|
934
|
-
- Secure authentication (OAuth, API keys)
|
|
935
|
-
- Tunnel software running locally
|
|
936
|
-
- Trust model for cloud proxy
|
|
937
|
-
|
|
938
|
-
#### Option 2: Browser Extension
|
|
939
|
-
```
|
|
940
|
-
Claude.ai (web) → Browser Extension → Local MCP server
|
|
941
|
-
```
|
|
942
|
-
|
|
943
|
-
A Chrome/Firefox extension that:
|
|
944
|
-
- Intercepts MCP tool requests from Claude.ai
|
|
945
|
-
- Routes them to localhost MCP servers
|
|
946
|
-
- Returns results to the web page
|
|
947
|
-
|
|
948
|
-
#### Option 3: Convex-Hosted MCP
|
|
949
|
-
```
|
|
950
|
-
Claude.ai (web) → Convex Cloud MCP endpoint
|
|
951
|
-
↓
|
|
952
|
-
Your Convex deployment
|
|
953
|
-
```
|
|
954
|
-
|
|
955
|
-
Convex could host MCP endpoints directly, eliminating the need for local servers. This would require:
|
|
956
|
-
- Convex adding MCP protocol support
|
|
957
|
-
- Authentication via Convex dashboard
|
|
958
|
-
- No local installation needed
|
|
959
|
-
|
|
960
|
-
#### Option 4: Claude.ai Native MCP Support
|
|
961
|
-
|
|
962
|
-
Anthropic could add native MCP support to Claude.ai with:
|
|
963
|
-
- Secure server registration in account settings
|
|
964
|
-
- OAuth-based authentication to your servers
|
|
965
|
-
- Sandboxed execution environment
|
|
966
|
-
|
|
967
|
-
### What You Can Do Now
|
|
968
|
-
|
|
969
|
-
1. **Use Claude Code CLI** - Full MCP support today
|
|
970
|
-
2. **Use Claude Desktop** - Configure MCP in settings
|
|
971
|
-
3. **Watch for updates** - MCP ecosystem is evolving rapidly
|
|
972
|
-
4. **Star the repo** - Show interest in web integration
|
|
973
|
-
|
|
974
|
-
### Preparing for Web Support
|
|
975
|
-
|
|
976
|
-
When web integration becomes available, this project is designed to be ready:
|
|
977
|
-
|
|
978
|
-
- **Stateless design**: Each request is independent
|
|
979
|
-
- **HTTP mode**: Already supports HTTP transport (`--http` flag)
|
|
980
|
-
- **Standard MCP**: Uses official MCP SDK
|
|
981
|
-
- **No local file requirements**: Can work with `CONVEX_DEPLOY_KEY` env var
|
|
982
|
-
|
|
983
|
-
---
|
|
984
|
-
|
|
985
123
|
## Contributing
|
|
986
124
|
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
1. **Testing on Windows** - Verify cmd wrapper works correctly
|
|
990
|
-
2. **Performance optimization** - Large schema handling
|
|
991
|
-
3. **Accessibility** - Keyboard navigation, screen reader support
|
|
992
|
-
4. **Documentation** - More examples, video tutorials
|
|
993
|
-
5. **UI polish** - Animations, transitions, edge cases
|
|
994
|
-
|
|
995
|
-
### Development Setup
|
|
125
|
+
See [Development](docs/architecture.md) for build instructions.
|
|
996
126
|
|
|
997
127
|
```bash
|
|
998
128
|
git clone https://github.com/waynesutton/convex-mcp-visual.git
|
|
999
129
|
cd convex-mcp-visual
|
|
1000
130
|
npm install
|
|
1001
|
-
npm run
|
|
131
|
+
npm run build
|
|
1002
132
|
```
|
|
1003
133
|
|
|
1004
|
-
### Submitting Changes
|
|
1005
|
-
|
|
1006
|
-
1. Fork the repository
|
|
1007
|
-
2. Create a feature branch
|
|
1008
|
-
3. Make your changes
|
|
1009
|
-
4. Run `npm run build` to verify
|
|
1010
|
-
5. Submit a pull request
|
|
1011
|
-
|
|
1012
|
-
---
|
|
1013
|
-
|
|
1014
134
|
## License
|
|
1015
135
|
|
|
1016
136
|
MIT
|