list_databases
Retrieve all databases in a CockroachDB cluster, with an option to include system databases like postgres and defaultdb.
Instructions
List all databases in the cluster.
Args:
include_system: Include system databases (postgres, defaultdb, etc.).
Returns:
List of databases.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| include_system | No |
Implementation Reference
- Core implementation of list_databases tool: executes SHOW DATABASES query, filters blocked/system databases, returns list with metadata.async def list_databases(include_system: bool = False) -> dict[str, Any]: """List all databases in the cluster. Args: include_system: Include system databases. Returns: List of databases. """ conn = await connection_manager.ensure_connected() try: async with conn.cursor() as cur: await cur.execute("SHOW DATABASES") rows = await cur.fetchall() databases = [] system_dbs = {"system", "postgres", "defaultdb", "crdb_internal"} for row in rows: db_name = row.get("database_name", "") # Skip blocked databases if _is_blocked_database(db_name): continue # Skip system databases unless requested is_system = db_name in system_dbs if is_system and not include_system: continue databases.append( { "name": db_name, "is_system": is_system, } ) return { "databases": databases, "count": len(databases), "current_database": connection_manager.current_database, } except Exception as e: return {"status": "error", "error": str(e)}
- src/cockroachdb_mcp/server.py:122-136 (registration)MCP tool registration for list_databases using @mcp.tool() decorator, thin wrapper delegating to tables.list_databases.@mcp.tool() async def list_databases(include_system: bool = False) -> dict[str, Any]: """List all databases in the cluster. Args: include_system: Include system databases (postgres, defaultdb, etc.). Returns: List of databases. """ try: return await tables.list_databases(include_system) except Exception as e: return {"status": "error", "error": str(e)}