A side-by-side look at the Db Access MCP and SmartDB MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Db Access MCP for databases work as a local process; choose SmartDB MCP for databases as a local process. You can also run both side by side in one mcpServers block.
dialect_list, connection_list, connection_find.DATABASE_CONFIG_FILE, CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN_EXPIRE_MINUTES, REFRESH_TOKEN_EXPIRE_DAYS, TOKEN_SECRET_KEY, OAUTH_USER_NAME, OAUTH_USER_PASSWORD.execute_sql, get_db_health, get_table_desc.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Databases | Databases |
| Quality signal | 56/100 · Good | 57/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | OAuth 2.0 |
| Pricing | Not declared | Free |
| Required env vars | None listed | DATABASE_CONFIG_FILECLIENT_IDCLIENT_SECRETACCESS_TOKEN_EXPIRE_MINUTESREFRESH_TOKEN_EXPIRE_DAYSTOKEN_SECRET_KEYOAUTH_USER_NAMEOAUTH_USER_PASSWORD |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 77 |
| Directory activity | 1 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 11 | 8 |
| Full listing | View Db Access MCP | View SmartDB MCP |
dialect_listLists the supported database dialects: name (the `type` value for connections), default port and the plan format `query_plan` produces.connection_listLists configured connections: key, type, description, `read_only`, host/port/database, tunnel name, metadata. Credentials are **never** returned (allowlist-based sanitization; connection strings are parsed only for host/port/database).connection_findFinds connections by `host`, `port`, `database`, `type`, `read_only` and/or `metadata` key-value pairs. All filters are combined with **AND**. `user`/`password` filters are ignored (and noted in the response).connection_testEnd-to-end health check: secrets → tunnel → pool → one-row server-info query. Returns `ok: true` with server version/user/database/latency, or `ok: false` with the failure code and hint (an unreachable DB is a valid result, not a tool error).queryExecutes SQL on a connection. Accepts `connection`, `query`, optional `database` (see multi-database connections), `max_rows` and `timeout_ms` overrides. Results are truncated to the row cap with `truncated: true`.query_to_fileExecutes a query and writes the result to a file (`csv`/`jsonl`, inferred from the extension) instead of the model context. `file_path` is relative to the export dir (default `/tmp/db-access-mcp/exports`, created on demand), or an absolute/`~` path **under** the export dir or a configured `allow_ex…query_planReturns the execution plan without running the query: `EXPLAIN (FORMAT JSON)` for postgres, `EXPLAIN FORMAT=JSON` for mysql, text `EXPLAIN` for redshift, `SHOWPLAN_XML` for mssql.up_tunnelOpens (or reuses) the tunnel configured for a connection and returns `{host, port, tunnel_id, reused}`. Optional `local_port` binds an exact local port; if the tunnel is already open on a different port or the port is taken, the call fails with the current port in the error.down_tunnelCloses a tunnel by `tunnel_id`. By default only the up_tunnel pin is released — if query pools still hold the tunnel it stays open (`remaining_holders`); `force: true` drains the holder pools and closes it unconditionally.tunnel_listLists the tunnels currently open in this MCP instance with a live health probe: `tunnel_id`, tunnel name/type, local and remote endpoints, `healthy`, holder pools (`connections`), up_tunnel `pins`, external PIDs.config_reloadRe-reads the config files into the running server so connections/tunnels added or edited on disk become usable without a restart. **Never disturbs live state** — see below.execute_sqlSQL execution tool that can execute ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE", "CREATE", "ALTER", "DROP", "TRUNCATE"] commands based on permission configurationget_db_healthAnalyzes database health status (connection status, transaction status, running status, lock detection) and outputs professional diagnostic reports and solutionsget_table_descSearches for table structures in the database based on table names, supports multi-table queriesget_table_indexSearches for table indexes in the database based on table names, supports multi-table queriesget_table_nameDatabase table name query tool. Used to query all table names in the database or search for corresponding table names based on Chinese table names or table descriptionsget_db_versionDatabase version query toolsql_creatorSQL query generation tool that generates corresponding SQL query statements based on different database typessql_optimizeA professional SQL performance optimization tool that provides expert optimization suggestions based on execution plans, table structure information, table data volume, and table indexes.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"rheopyrin-db-access-mcp": {
"command": "npx",
"args": [
"-y",
"@rheopyrin/db-access-mcp"
]
}
}
}
{
"mcpServers": {
"wenb1n-dev-smartdb-mcp": {
"command": "uvx",
"args": [
"SmartDB-MCP"
],
"env": {
"DATABASE_CONFIG_FILE": "YOUR_DATABASE_CONFIG_FILE_HERE",
"CLIENT_ID": "YOUR_CLIENT_ID_HERE",
"CLIENT_SECRET": "YOUR_CLIENT_SECRET_HERE",
"ACCESS_TOKEN_EXPIRE_MINUTES": "YOUR_ACCESS_TOKEN_EXPIRE_MINUTES_HERE",
"REFRESH_TOKEN_EXPIRE_DAYS": "YOUR_REFRESH_TOKEN_EXPIRE_DAYS_HERE",
"TOKEN_SECRET_KEY": "YOUR_TOKEN_SECRET_KEY_HERE",
"OAUTH_USER_NAME": "YOUR_OAUTH_USER_NAME_HERE",
"OAUTH_USER_PASSWORD": "YOUR_OAUTH_USER_PASSWORD_HERE"
}
}
}
}