#!/bin/bash
echo "========================================="
echo " Quickbase MCP Connector Configurator"
echo " Part 2: Credentials Setup"
echo "========================================="
# Prompt for Quickbase credentials
echo
echo "Setting up Quickbase credentials..."
echo
echo "Please enter your Quickbase credentials:"
read -p "Quickbase Realm Host (e.g., your-realm.quickbase.com): " realm_host
read -p "Quickbase User Token: " user_token
read -p "Quickbase App ID: " app_id
# Create .env file in the current directory
echo "QUICKBASE_REALM_HOST=${realm_host}
QUICKBASE_USER_TOKEN=${user_token}
QUICKBASE_APP_ID=${app_id}
MCP_SERVER_PORT=3535" > .env
echo "Credentials saved to .env file in $(pwd)"
# Set up Claude Desktop configuration
echo
echo "Setting up Claude Desktop configuration..."
# Determine the platform and Claude Desktop config path
if [[ "${OSTYPE}" == "darwin"* ]]; then
config_dir="${HOME}/Library/Application Support/Claude"
config_file="${config_dir}/claude_desktop_config.json"
elif [[ "${OSTYPE}" == "linux-gnu"* ]]; then
config_dir="${HOME}/.config/Claude"
config_file="${config_dir}/claude_desktop_config.json"
elif [[ "${OSTYPE}" == "msys"* || "${OSTYPE}" == "cygwin"* || "${OSTYPE}" == "win32"* ]]; then
config_dir="${APPDATA}/Claude"
config_file="${config_dir}/claude_desktop_config.json"
else
echo "Unsupported operating system. Please configure Claude Desktop manually."
config_file=""
fi
# Check if config file already exists
config_backup=""
if [ -f "${config_file}" ]; then
config_backup="${config_file}.backup"
echo "Backing up existing Claude Desktop configuration to ${config_backup}"
cp "${config_file}" "${config_backup}"
# Read existing config
existing_config=$(cat "${config_file}")
if [[ "${existing_config}" == *"\"mcpServers\""* ]]; then
echo "Warning: Existing MCP servers configuration found."
read -p "Would you like to overwrite it? (y/n): " overwrite
if [[ "${overwrite}" != "y" && "${overwrite}" != "Y" ]]; then
echo "Please manually update your Claude Desktop configuration. See the README.md for instructions."
exit 0
fi
fi
fi
if [ ! -z "${config_file}" ]; then
# Create config directory if it doesn't exist
mkdir -p "${config_dir}"
# Get absolute paths
current_dir=$(pwd)
node_path=$(which node)
server_path="${current_dir}/src/quickbase/server.js"
# Create or update Claude Desktop config
echo "{
\"mcpServers\": {
\"quickbase\": {
\"command\": \"${node_path}\",
\"args\": [
\"${server_path}\"
],
\"env\": {
\"QUICKBASE_REALM_HOST\": \"${realm_host}\",
\"QUICKBASE_USER_TOKEN\": \"${user_token}\",
\"QUICKBASE_APP_ID\": \"${app_id}\",
\"MCP_SERVER_PORT\": \"3535\"
}
}
}
}" > "${config_file}"
echo "Claude Desktop configuration created at: ${config_file}"
if [ ! -z "${config_backup}" ]; then
echo "Your previous configuration was backed up to: ${config_backup}"
fi
fi
echo
echo "======================================================"
echo " Configuration Complete! 🎉"
echo "======================================================"
echo
echo "Configuration:"
echo "- Claude Desktop is configured to use the connector"
echo "- Your Quickbase credentials are saved in .env"
echo
echo "Next steps:"
echo "1. Restart Claude Desktop if it's already running"
echo "2. In Claude Desktop, try a prompt like:"
echo " \"List all tables in my Quickbase app\""
echo
echo "For more information, see the README.md in the installation directory"
echo "======================================================"