mcp-backend
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CATALOG_URI | No | Iceberg REST Catalog URI | |
| S3_ENDPOINT | No | S3-compatible endpoint URL | |
| BACKEND_MODE | No | Mode: 'supabase' (full) or 'postgres' (DB + S3 storage) | |
| POSTGRES_URL | No | PostgreSQL connection string | |
| SUPABASE_URL | No | Supabase project URL (required in supabase mode) | |
| ICEBERG_TOKEN | No | Bearer token for Iceberg catalog | |
| STORAGE_BUCKET | No | Default S3 bucket name (postgres mode) | |
| STORAGE_REGION | No | S3 region (default: us-east-1) | |
| AWS_ACCESS_KEY_ID | No | S3-compatible access key | |
| ICEBERG_NAMESPACE | No | Iceberg namespace (default: audit) | |
| ICEBERG_WAREHOUSE | No | Iceberg warehouse name | |
| SUPABASE_SECRET_KEY | No | Supabase service role key (supabase mode) | |
| STORAGE_ENDPOINT_URL | No | S3-compatible endpoint (required in postgres mode) | |
| AWS_SECRET_ACCESS_KEY | No | S3-compatible secret key | |
| STORAGE_ACCESS_KEY_ID | No | S3 access key (postgres mode) | |
| SUPABASE_PUBLISHABLE_KEY | No | Supabase anon/publishable key (supabase mode) | |
| STORAGE_SECRET_ACCESS_KEY | No | S3 secret key (postgres mode) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| run_base_seedA | Runs all SQL files in base/ (02-base equivalent with real natuleadan company data) |
| run_data_seedB | Runs all SQL files in data/ (03-data.ee equivalent with real users, products, courses) |
| run_all_seedsB | Runs base seed then data seed in order |
| list_seed_filesB | Lists all SQL files available in base/ and data/ |
| query_dbA | Run a raw SQL SELECT query against the database. READ ONLY - for inspection/verification. |
| list_tablesA | List all tables in the public schema |
| execute_sqlA | Run any SQL statement (INSERT, UPDATE, DELETE, SELECT, etc.) with full bypass of RLS. Use with care. |
| execute_rls_sqlA | Run a SELECT query impersonating a user role (applies RLS). Useful to test what a role can see. Only available in supabase mode. |
| list_bucketsA | List all Supabase storage buckets with their visibility |
| list_filesB | List files in a bucket folder |
| upload_fileB | Upload any local file to a storage bucket. local_path can be absolute (/Users/...) or relative to buckets/{bucket}/ |
| delete_fileB | Delete a file from a storage bucket |
| get_signed_urlB | Generate a signed URL for a private bucket file |
| get_public_urlA | Get the public URL for a file in a public bucket |
| download_bucketA | Download files from Supabase storage to local buckets/ folder. Can download all buckets, one bucket, a specific folder, or a single file. |
| list_iceberg_tablesA | List all foreign tables in the iceberg schema (mapped via FDW in Postgres) |
| query_icebergB | SELECT from an Iceberg foreign table via Postgres FDW (e.g. 'iceberg.aud_analytics_lake') |
| list_iceberg_catalog_tablesC | List tables directly from the Iceberg REST Catalog (requires CATALOG_URI + AWS credentials) |
| bootstrap_icebergA | Bootstrap the Iceberg FDW on Postgres: creates namespace + tables in catalog, configures FDW server, maps foreign tables, and verifies connection. |
| table_infoB | Describe table schema: columns, types, constraints, indexes |
| column_statsA | Get column statistics: cardinality, NULL count, data distribution |
| validate_sqlA | Parse SQL without executing - catch syntax errors early |
| query_with_explainA | Run query with EXPLAIN ANALYZE for performance debugging |
| active_queriesC | List active/long-running queries with details (duration, memory, locks) |
| database_statsC | Database statistics: table sizes, row counts, growth metrics |
| index_infoC | List indexes with size, scan count, and usage stats |
| bulk_upload_filesB | Upload multiple local files to storage with optional filtering by file type. Can upload individual files or an entire folder with selective file extensions. |
| call_rpcA | Call a Supabase PostgreSQL function (RPC) via the REST API. Uses service_role — bypasses RLS. |
| execute_sql_fileB | Execute SQL file content (PL/pgSQL blocks, multi-statement scripts). Pass raw SQL from file as string. |
| generate_and_update_signed_urlA | Generate a signed URL for a private bucket file and update the URL in a DB media table |
| manage_bucketB | Create, update, delete or empty a storage bucket. Works with Supabase Storage (supabase mode) or S3-compatible (postgres mode). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Most tools have distinct purposes, but there is some overlap between execute_sql, query_db, and execute_rls_sql, as well as between upload_file and bulk_upload_files. However, descriptions clarify the differences, making ambiguity low overall.
The majority of tools follow a verb_noun pattern (e.g., bootstrap_iceberg, delete_file). A few, like active_queries and column_stats, deviate slightly, but the overall convention is consistent and predictable.
With 31 tools, the count is on the higher side but still reasonable given the broad scope covering database operations, storage, Iceberg, seeding, and RPC. Each tool serves a specific purpose, and the number is appropriate for the server's domain.
The tool set covers most essential operations for a backend/database server: SQL execution, storage management, Iceberg integration, seeding, and RPC calls. Missing are explicit schema modification tools, but those can be done via execute_sql. Overall, the surface is comprehensive.