71
/ 100
5 days ago
glama

FastAPI Database MCP Server

Provides read-only SQL query access to Postgres and DuckDB databases via MCP tools, with extensive security hardening for public endpoints.

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.

Install from

M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.

// key findings
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
🔐
You'll be asked for 1 credential: AUTH0_CLIENT_SECRET
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// required environment variables
This server reads these from process.env. You'll be asked to provide them before it can run.
configSUPABASE_POSTGRESYes — Postgres connection string (use a read-only user)
configDUCKDB_FILEYes ./data/t20_cricket.duckdb Path to .duckdb file
configRATE_LIMITNo 30/minute Per-IP rate limit (SlowAPI format, e.g. 60/hour, 100/minute)
configPG_STATEMENT_TIMEOUT_MSSet statement_timeout on application roles (matches your )
configDUCKDB_QUERY_TIMEOUT_MSNo 15000 DuckDB query timeout in milliseconds
configMAX_JSON_ROWS11. Auto-append LIMIT — queries without an outer LIMIT automatically get one (configurable via / MAX_TSV_ROWS)
configMAX_TSV_ROWS11. Auto-append LIMIT — queries without an outer LIMIT automatically get one (configurable via MAX_JSON_ROWS / )
configMAX_RESPONSE_BYTES12. Response size limit — responses exceeding the byte limit are rejected with HTTP 413 (configurable via , default: 1MB)
configPG_POOL_MINNo 3 Postgres connection pool minimum size
configPG_POOL_MAXNo 6 Postgres connection pool maximum size
configPG_POOL_ACQUIRE_TIMEOUTNo 15 Seconds to wait for a pool connection before returning 503
configMAX_CONCURRENT_PER_IPNo 4 Max simultaneous queries per IP
configMAX_CONCURRENT_GLOBALNo 10 Max simultaneous queries server-wide
configGLOBAL_RATE_LIMITNo 200/minute Global rate limit across all IPs
configDUCKDB_MEMORY_LIMITNo 512MB DuckDB memory limit
configDUCKDB_THREADSNo 2 DuckDB thread limit
configDUCKDB_TEMP_DIRNo /tmp/duckdb DuckDB temporary directory
configDUCKDB_MAX_TEMP_DIR_SIZENo 2GB DuckDB temp directory size cap
configCORS_ALLOW_ORIGINSNo Comma-separated allowed origins
configLOG_LEVELNo INFO Logging level
configAUTH0_DOMAINNo — Auth0 tenant domain (enables /mcp-secure when set)
configAUTH0_AUDIENCENo — Auth0 API identifier
configAUTH0_CLIENT_IDNo — Auth0 application client ID
🔐 secretAUTH0_CLIENT_SECRETNo — Auth0 application client secret
configAPI_MONITOR_APP_NAME
configAUTH_FAIL_MAX24. Failed-auth rate limiter — in-memory counter blocks IPs after repeated failed JWT attempts on /mcp-secure (configurable via and AUTH_FAIL_WINDOW)
configAUTH_FAIL_WINDOW24. Failed-auth rate limiter — in-memory counter blocks IPs after repeated failed JWT attempts on /mcp-secure (configurable via AUTH_FAIL_MAX and )
// full audit trail
The full breakdown of what we checked, the deductions that landed, the network hosts, the dependency advisories, and concrete fix guidance is available to verified publishers.
// improvement guidance — verified publishers only
We have 2 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/amararun-shared-fastapi-database-mcp-ly3xsr)](https://m8ven.ai/mcp/amararun-shared-fastapi-database-mcp-ly3xsr)
commit: 0264b56edfc7bfc76a86342f6711033b36d6feb4
code hash: 91e607624e86faab52dd7c6696dfc387b88c1b1a018751877154994f38b87616
verified: 6/24/2026, 9:45:27 AM
view raw JSON →