Skip to main content
Glama

list_databricks_tools

Discover available Databricks MCP tools after authentication to access and interact with Databricks-hosted applications through Claude.

Instructions

List all available tools on the remote Databricks MCP server. Must authenticate first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler function implementing the list_databricks_tools tool. It lists all discovered remote tools with their names, descriptions, and input parameters if available. Requires prior authentication.
    @mcp.tool() def list_databricks_tools() -> str: """ List all available tools on the remote Databricks MCP server. Must authenticate first. """ if not state.authenticated or not state.proxy: return "Not authenticated. Call 'authenticate' first." if not state.proxy.tools: return "No tools available." lines = [f"Available tools ({len(state.proxy.tools)}):\n"] for tool in state.proxy.tools: lines.append(f"**{tool.name}**") lines.append(f" {tool.description}") if tool.input_schema.get("properties"): lines.append(f" Parameters: {list(tool.input_schema['properties'].keys())}") lines.append("") return "\n".join(lines)
  • The authenticate tool handler which initializes the proxy, connects, and calls discover_tools to populate the list of remote tools used by list_databricks_tools.
    @mcp.tool() def authenticate() -> str: """ Authenticate with Databricks using OAuth U2M flow. Opens a browser for authorization. Uses DATABRICKS_HOST and DATABRICKS_APP_URL from app.yaml or environment. """ try: host = state.host or os.environ.get("DATABRICKS_HOST") app_url = state.app_url or os.environ.get("DATABRICKS_APP_URL") scopes = state.scopes or os.environ.get("DATABRICKS_SCOPES", DEFAULT_SCOPES) if not host: return "Error: DATABRICKS_HOST not configured. Set it in app.yaml or environment." if not app_url: return "Error: DATABRICKS_APP_URL not configured. Set it in app.yaml or environment." print(f"Starting OAuth flow for {host}...", file=sys.stderr) access_token = start_oauth_flow(host, scopes) state.proxy = DatabricksMCPProxy(host, app_url, access_token) state.proxy.connect() state.proxy.discover_tools() state.authenticated = True tool_names = [t.name for t in state.proxy.tools] return f"Authenticated successfully!\n\nAvailable tools ({len(tool_names)}):\n" + "\n".join(f" - {name}" for name in tool_names) except Exception as e: state.authenticated = False return f"Authentication failed: {e}"
  • The @mcp.tool() decorator registers the list_databricks_tools function with the FastMCP server instance.
    @mcp.tool() def list_databricks_tools() -> str: """ List all available tools on the remote Databricks MCP server. Must authenticate first. """ if not state.authenticated or not state.proxy: return "Not authenticated. Call 'authenticate' first." if not state.proxy.tools: return "No tools available." lines = [f"Available tools ({len(state.proxy.tools)}):\n"] for tool in state.proxy.tools: lines.append(f"**{tool.name}**") lines.append(f" {tool.description}") if tool.input_schema.get("properties"): lines.append(f" Parameters: {list(tool.input_schema['properties'].keys())}") lines.append("") return "\n".join(lines)

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/smaheshwari-ux/databricks-mcp-proxy'

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