Skip to main content
Glama

Convex MCP server

Official
by get-convex
run_backend.sh2.83 kB
#! /bin/bash export DATA_DIR=${DATA_DIR:-/convex/data} export TMPDIR=${TMPDIR:-"$DATA_DIR/tmp"} export STORAGE_DIR=${STORAGE_DIR:-"$DATA_DIR/storage"} export SQLITE_DB=${SQLITE_DB:-"$DATA_DIR/db.sqlite3"} # Database driver flags matching DbDriverTag values POSTGRES_DB_FLAGS=(--db postgres-v5) MYSQL_DB_FLAGS=(--db mysql-v5) set -e mkdir -p "$TMPDIR" "$STORAGE_DIR" source ./read_credentials.sh # Determine database configuration if [ -n "$POSTGRES_URL" ]; then DB_SPEC="$POSTGRES_URL" DB_FLAGS=("${POSTGRES_DB_FLAGS[@]}") elif [ -n "$MYSQL_URL" ]; then DB_SPEC="$MYSQL_URL" DB_FLAGS=("${MYSQL_DB_FLAGS[@]}") elif [ -n "$DATABASE_URL" ]; then echo "Warning: DATABASE_URL is deprecated. Please use POSTGRES_URL for PostgreSQL or MYSQL_URL for MySQL connections instead." DB_SPEC="$DATABASE_URL" DB_FLAGS=("${POSTGRES_DB_FLAGS[@]}") # Maintain backwards compatibility with existing DATABASE_URL behavior else # Otherwise fallback to SQLite DB_SPEC="$SQLITE_DB" DB_FLAGS=() fi # Check if all required S3 environment variables are present MISSING_VARS=() [ -z "$AWS_REGION" ] && MISSING_VARS+=("AWS_REGION") [ -z "$AWS_ACCESS_KEY_ID" ] && MISSING_VARS+=("AWS_ACCESS_KEY_ID") [ -z "$AWS_SECRET_ACCESS_KEY" ] && MISSING_VARS+=("AWS_SECRET_ACCESS_KEY") [ -z "$S3_STORAGE_EXPORTS_BUCKET" ] && MISSING_VARS+=("S3_STORAGE_EXPORTS_BUCKET") [ -z "$S3_STORAGE_SNAPSHOT_IMPORTS_BUCKET" ] && MISSING_VARS+=("S3_STORAGE_SNAPSHOT_IMPORTS_BUCKET") [ -z "$S3_STORAGE_MODULES_BUCKET" ] && MISSING_VARS+=("S3_STORAGE_MODULES_BUCKET") [ -z "$S3_STORAGE_FILES_BUCKET" ] && MISSING_VARS+=("S3_STORAGE_FILES_BUCKET") [ -z "$S3_STORAGE_SEARCH_BUCKET" ] && MISSING_VARS+=("S3_STORAGE_SEARCH_BUCKET") if [ ${#MISSING_VARS[@]} -eq 0 ]; then STORAGE_FLAGS=(--s3-storage) else if [ ${#MISSING_VARS[@]} -lt 8 ]; then echo "Warning: Some AWS/S3 environment variables are missing. Falling back to local storage." echo "Missing variables: ${MISSING_VARS[*]}" fi STORAGE_FLAGS=(--local-storage "$STORAGE_DIR") fi # --port and --site-proxy-port are internal to the container, so we pick them to # avoid conflicts in the container. # --convex-origin and --convex-site are how the backend can be contacted from # the outside world. They show up in storage urls, action callbacks, etc. exec ./convex-local-backend "$@" \ --instance-name "$INSTANCE_NAME" \ --instance-secret "$INSTANCE_SECRET" \ --port 3210 \ --site-proxy-port 3211 \ --convex-origin "$CONVEX_CLOUD_ORIGIN" \ --convex-site "$CONVEX_SITE_ORIGIN" \ --beacon-tag "self-hosted-docker" \ ${DISABLE_BEACON:+--disable-beacon} \ ${REDACT_LOGS_TO_CLIENT:+--redact-logs-to-client} \ ${DO_NOT_REQUIRE_SSL:+--do-not-require-ssl} \ "${DB_FLAGS[@]}" \ "${STORAGE_FLAGS[@]}" \ "$DB_SPEC"

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/get-convex/convex-backend'

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