Skip to main content
Glama

QuickBase MCP Server

setup.js3.58 kB
#!/usr/bin/env node import { readFileSync, writeFileSync, existsSync } from 'fs'; import { createInterface } from 'readline'; const rl = createInterface({ input: process.stdin, output: process.stdout }); function question(prompt) { return new Promise((resolve) => { rl.question(prompt, resolve); }); } async function setup() { console.log('🚀 QuickBase MCP Server Setup\n'); console.log('This script will help you configure your QuickBase MCP server.\n'); // Check if .env already exists if (existsSync('.env')) { const overwrite = await question('📁 .env file already exists. Overwrite? (y/N): '); if (overwrite.toLowerCase() !== 'y') { console.log('✅ Setup cancelled. Using existing .env file.'); rl.close(); return; } } try { // Get QuickBase configuration console.log('📋 QuickBase Configuration:'); const realm = await question(' QuickBase Realm (e.g., yourcompany.quickbase.com): '); const userToken = await question(' User Token: '); const appId = await question(' App ID (e.g., btr3r3fk5): '); // Optional settings console.log('\n⚙️ Optional Settings (press Enter for defaults):'); const timeout = await question(' Timeout in ms (default: 30000): ') || '30000'; const maxRetries = await question(' Max retries (default: 3): ') || '3'; const serverName = await question(' Server name (default: quickbase-mcp): ') || 'quickbase-mcp'; // Validate required fields if (!realm || !userToken || !appId) { console.error('❌ Error: Realm, User Token, and App ID are required!'); process.exit(1); } // Create .env content const envContent = `# QuickBase Configuration QB_REALM=${realm} QB_USER_TOKEN=${userToken} QB_APP_ID=${appId} # Optional: Default settings QB_DEFAULT_TIMEOUT=${timeout} QB_MAX_RETRIES=${maxRetries} # MCP Server Configuration MCP_SERVER_NAME=${serverName} MCP_SERVER_VERSION=1.0.0 `; // Write .env file writeFileSync('.env', envContent); console.log('\n✅ .env file created successfully!'); // Test connection console.log('\n🔍 Testing connection...'); try { const { QuickBaseClient } = await import('./dist/quickbase/client.js'); const client = new QuickBaseClient({ realm, userToken, appId, timeout: parseInt(timeout), maxRetries: parseInt(maxRetries) }); const connected = await client.testConnection(); if (connected) { console.log('✅ Connection successful!'); // Get app info const appInfo = await client.getAppInfo(); console.log(`📱 Connected to app: ${appInfo.name || 'Unknown'}`); const tables = await client.getAppTables(); console.log(`📊 Found ${tables.length} tables`); } else { console.log('❌ Connection failed. Please check your credentials.'); } } catch (error) { console.log('⚠️ Could not test connection (server may need to be built first)'); console.log(' Run: npm run build && npm start'); } console.log('\n🎉 Setup complete! Next steps:'); console.log(' 1. Build the server: npm run build'); console.log(' 2. Start the server: npm start'); console.log(' 3. Add to your MCP client configuration'); console.log('\n📖 See README.md for detailed usage instructions.'); } catch (error) { console.error('❌ Setup failed:', error.message); process.exit(1); } rl.close(); } setup().catch(console.error);

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/LawrenceCirillo/QuickBase-MCP-Server'

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