Skip to main content
Glama
bpamiri
by bpamiri

list_databases

Discover available databases on SQL Server by querying sys.databases, excluding system databases by default and respecting blocklist configurations to identify accessible data sources.

Instructions

List all available databases on the SQL Server.

Queries sys.databases to discover accessible databases. System databases (master, tempdb, model, msdb) are excluded by default. Databases in the blocklist (MSSQL_BLOCKED_DATABASES) are always excluded. Args: include_system: If True, include system databases in the list Returns: Dictionary with: - databases: List of available database names - current_database: The currently active database - count: Number of databases returned - blocked_count: Number of databases hidden due to blocklist

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
include_systemNo

Implementation Reference

  • The handler function for the 'list_databases' tool. It queries sys.databases, filters out blocked and system databases (unless include_system=True), and returns a dict with the list of databases, current database, count, and blocked count.
    @mcp.tool() def list_databases(include_system: bool = False) -> dict[str, Any]: """List all available databases on the SQL Server. Queries sys.databases to discover accessible databases. System databases (master, tempdb, model, msdb) are excluded by default. Databases in the blocklist (MSSQL_BLOCKED_DATABASES) are always excluded. Args: include_system: If True, include system databases in the list Returns: Dictionary with: - databases: List of available database names - current_database: The currently active database - count: Number of databases returned - blocked_count: Number of databases hidden due to blocklist """ try: manager = get_connection_manager() config = manager.config blocked_databases = config.blocked_databases # Query all databases query = """ SELECT name, database_id, state_desc FROM sys.databases WHERE state_desc = 'ONLINE' ORDER BY name """ rows = manager.execute_query(query) # Filter databases databases = [] blocked_count = 0 for row in rows: db_name = row["name"] db_name_lower = db_name.lower() # Check if blocked if db_name_lower in blocked_databases: blocked_count += 1 continue # Check if system database if not include_system and db_name_lower in SYSTEM_DATABASES: continue databases.append(db_name) # Get current database current_db_query = "SELECT DB_NAME() AS current_database" current_db_result = manager.execute_query(current_db_query) current_database = current_db_result[0]["current_database"] if current_db_result else None return { "databases": databases, "current_database": current_database, "count": len(databases), "blocked_count": blocked_count, } except Exception as e: logger.error(f"Error listing databases: {e}") return {"error": str(e)}

Latest Blog Posts

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/bpamiri/mssql-mcp'

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