Skip to main content
Glama
TROUBLESHOOTING.mdโ€ข5.33 kB
# Comprehensive Troubleshooting Guide ## MCP Protocol Issues ### JSON Parsing Errors (Resolved) ``` Expected ',' or ']' after array element in JSON at position 5 (line 1 column 6) ``` **Problem**: Console logging polluting stdout stream used by MCP protocol **Solution**: Use default `--log-mode file` or specify log mode explicitly: ```bash # MCP-safe logging (default) node dist/index.js --url file:///tmp/test.db # For development debugging node dist/index.js --url file:///tmp/test.db --log-mode console # Both console and file logging node dist/index.js --url file:///tmp/test.db --log-mode both ``` ### Logging Configuration ``` Logs not appearing where expected ``` **Solutions**: - Default mode is `file` - check log file location in console output - Use `--log-mode console` for immediate console output (development) - Use `--log-mode both` for comprehensive logging - Use `--log-mode none` to disable all logging ## Database Connection Issues ### Connection Refused ``` Error: Connection refused to http://127.0.0.1:8080 ``` **Solutions:** - Verify database server is running - Check firewall settings for HTTP URLs - Test with file database: `file:///tmp/test.db` - Ensure database is accessible from WSL2 if using Windows ### File Database Permissions ``` Error: SQLITE_CANTOPEN: unable to open database file ``` **Solutions:** - Check file permissions: `chmod 644 /path/to/database.db` - Ensure directory exists: `mkdir -p /path/to/directory` - Test with `/tmp/test.db` for quick verification ## Query Execution Issues ### Query Validation Errors ``` Error: Only SELECT queries are allowed ``` **Solutions:** - Use correct tool for operation type: - `read-query`: SELECT statements only - `write-query`: INSERT/UPDATE/DELETE only - `create-table`: CREATE TABLE only - `alter-table`: ALTER TABLE only - Check for prohibited operations or system table access ### Transaction Failures ``` Error: Transaction rolled back due to constraint violation ``` **Solutions:** - Check table constraints and foreign key relationships - Verify data types match column definitions - Use `useTransaction: false` to bypass transaction wrapper if needed ## Performance Issues ### Slow Query Performance ``` Query execution time > 30 seconds ``` **Solutions:** - Add appropriate indexes for query patterns - Use LIMIT clauses for large result sets - Check database file size and consider optimization - Monitor connection pool health ### Memory Issues with Large Results ``` Error: Result set too large (> 10,000 rows) ``` **Solutions:** - Add LIMIT clauses to queries - Use pagination for large datasets - Consider batch processing for bulk operations ## Development Issues ### Hot Reload Not Working ``` pnpm dev not detecting file changes ``` **Solutions:** - Check nodemon configuration in `nodemon.json` - Restart development server: `Ctrl+C` then `pnpm dev` - Clear Node.js cache: `rm -rf node_modules/.cache` ### Test Failures ``` Tests failing with connection errors ``` **Solutions:** - Ensure no other instances are running on test database - Clean test environment: `pnpm test:clean` - Check for proper test isolation and cleanup ## Verification Commands ### macOS ```bash # Test server locally with console logging mcp-libsql --url file:///tmp/test.db --log-mode console # Or for local installation cd /path/to/mcp-libsql node dist/index.js --url file:///tmp/test.db --log-mode console # Check build output ls -la dist/ # Test database connectivity sqlite3 /tmp/test.db "SELECT 1" # Find Node.js path `which node` or `whereis node` or `locate node` # Check Node.js version node --version # Verify pnpm installation pnpm --version # Find Claude Desktop config ls -la ~/Library/Application\ Support/Claude/claude_desktop_config.json ``` ### Linux ```bash # Test server locally with console logging mcp-libsql --url file:///tmp/test.db --log-mode console # Or for local installation cd /path/to/mcp-libsql node dist/index.js --url file:///tmp/test.db --log-mode console # Check build output ls -la dist/ # Test database connectivity sqlite3 /tmp/test.db "SELECT 1" # Find Node.js path `which node` or `whereis node` or `locate node` # Check Node.js version node --version # Verify pnpm installation pnpm --version # Find Claude Desktop config ls -la ~/.config/Claude/claude_desktop_config.json ``` ### Windows (WSL2) ```bash # Test server locally with console logging (in WSL2) mcp-libsql --url file:///tmp/test.db --log-mode console # Or for local installation cd /path/to/mcp-libsql node dist/index.js --url file:///tmp/test.db --log-mode console # Check build output ls -la dist/ # Test database connectivity sqlite3 /tmp/test.db "SELECT 1" # Check Node.js version node --version # Verify WSL2 status (in PowerShell) wsl -l -v # Find Claude Desktop config (in Windows) dir "%APPDATA%\Claude\claude_desktop_config.json" ``` ### Platform-agnostic debugging ```bash # Check if Claude Desktop can access the files # Run this from the directory containing your MCP server ls -la dist/index.js file dist/index.js # Test with minimal database echo "CREATE TABLE test (id INTEGER);" | sqlite3 /tmp/minimal.db mcp-libsql --url file:///tmp/minimal.db --log-mode console # Verify configuration syntax cat claude_desktop_config.json | jq . # Requires jq for JSON validation ```

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Xexr/mcp-libsql'

If you have feedback or need assistance with the MCP directory API, please join our Discord server