Common issues and solutions for the vCon MCP Server.
Installation Issues
Error: "Cannot find module 'dotenv'"
Symptom:
Error: Cannot find module 'dotenv'
Cause: Dependencies not installed
Solution:
Error: "ENOENT: no such file or directory, open 'dist/index.js'"
Symptom:
Error: ENOENT: no such file or directory, open '/path/to/vcon-mcp/dist/index.js'
Cause: Project not built
Solution:
Error: "Invalid Supabase URL"
Symptom:
Cause: Missing or incorrect environment variables
Solution:
Verify format (no quotes needed):
Get correct values from Supabase:
Dashboard → Settings → API
Copy Project URL and anon public key
Database Issues
Error: "relation 'vcons' does not exist"
Symptom:
Cause: Database migrations not applied
Solution:
Option A: Using Supabase CLI
Option B: Manual via Dashboard
Go to Supabase SQL Editor
Run each migration from supabase/migrations/ in order
Error: "permission denied for table vcons"
Symptom:
Cause: RLS policies not configured or using wrong key
Solution:
Check you're using the correct key (anon key, not service role key for testing)
Verify RLS policies exist:
If missing, run RLS migration:
Database connection timeout
Symptom:
Cause: Network issues or invalid URL
Solution:
Test connection:
Should return 200 OK
Check Supabase project is active (not paused)
Verify URL format: https://PROJECT_ID.supabase.co
Claude Desktop Issues
Symptom: Claude doesn't list vCon tools when asked "What tools do you have?"
Checklist:
✅ Used absolute path in config
✅ Restarted Claude Desktop completely
Quit Claude Desktop (not just close window)
✅ .env file in project root
✅ Valid Supabase credentials
Debug Steps:
Test server directly:
Should output MCP initialization messages Press Ctrl+C to stop
Check config syntax:
Verify valid JSON (no trailing commas, proper brackets)
Check logs:
Look for MCP server errors
Error: "spawn node ENOENT"
Symptom:
Cause: Node.js not in PATH for Claude Desktop
Solution:
macOS:
Find node path:
Claude can't find vCons
Symptom:
Cause: Empty database
Solution:
Create test vCon:
Verify in database:
Error: "vCon validation failed"
Symptom:
Cause: Invalid vCon data structure
Solution:
Check error message for specific field
Verify required fields:
vcon version (e.g., "0.3.0")
created_at (ISO 8601 timestamp)
Error: "Analysis vendor required"
Symptom:
Cause: Missing required vendor field in analysis
Solution:
Always include vendor when adding analysis:
Symptom:
Cause: Malformed UUID
Solution:
Use valid UUID v4 format:
Get UUID from vCon list:
Semantic search not working
Symptom:
Cause: Embeddings not configured or generated
Solution:
Enable pgvector extension:
Search returns no results
Symptom: Search finds nothing when data exists
Cause: Various possibilities
Solutions:
Check search mode:
Basic search: subject/party/dates only
Keyword search: full-text in dialog/analysis
Semantic search: requires embeddings
Verify content is searchable:
Dialog must have encoding: "none" for keyword search
Attachments not included in search
Symptom: Queries take >2 seconds
Cause: Missing indexes or large dataset
Solution:
Symptom:
Cause: Large dataset operations
Solution:
Use pagination in searches:
Use resources for simple reads:
Tests fail with "database connection error"
Symptom:
Cause: Test environment not configured
Solution:
Use test database (separate from production):
Run migrations on test database
Tests pass but code fails
Symptom: Tests succeed but actual usage fails
Cause: Different environment (test vs production)
Solution:
Verify .env vs .env.test settings
Check both databases have same schema
Test with production credentials (carefully)
Plugin not loading
Symptom:
Cause: Plugin path or format incorrect
Solution:
Check environment variable:
TypeScript compilation errors
Symptom:
Solution:
Check TypeScript version:
Fix type errors shown in output
Missing dependencies
Symptom:
Solution:
If persists:
Getting More Help
Enable detailed logging:
Check System Status
If you can't resolve an issue:
Create new issue with:
Error message (full text)
Environment details (OS, Node.js version, etc.)
Relevant config (sanitized, no keys)
"It just doesn't work"
Try this sequence:
Reset to fresh state
Still stuck? Ask for help →
Found a bug? Report it →
Last updated