npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@intentsolutions/databricks-workspace-mcp

v0.1.0

Published

MCP server for the Databricks control plane — cluster forensics, instance pools, DLT pipeline event logs, and Unity Catalog external locations / storage credentials. The 6 endpoint families no managed Databricks MCP exposes. Pairs with the Databricks mana

Readme


Why this server exists

Databricks ships five managed MCP servers (Genie, Genie Space, Vector Search, Databricks SQL, Unity Catalog Functions) — all data plane. None of them expose live control-plane state: cluster event timelines, instance-pool idle stats, DLT pipeline event logs, or the Unity Catalog external-location / storage-credential wiring. That's the gap this server fills.

The split is deliberate. A consuming skill calls this server for typed control-plane state, and the managed Databricks SQL MCP (/api/2.0/mcp/sql) for everything in system.* (billing, audit, information_schema) — OAuth- and UC-governed on Databricks' side. Two MCPs, one diagnostic picture; no skill should ever have to shell out to the databricks CLI to fill a gap.

Everything here is read-only — no create/edit/terminate. It inventories and diagnoses; it does not mutate your workspace.

Tool surface (8)

| Tool | Endpoint | What it does | |---|---|---| | clusters_list | GET /api/2.0/clusters/list | Inventory all clusters — state, autotermination, autoscale, node types, creator. Find never-auto-terminating clusters. | | clusters_get | GET /api/2.0/clusters/get | Full config + state of one cluster — DBR version, Photon vs standard, autoscale bounds, state_message. | | clusters_events | POST /api/2.0/clusters/events | The event timeline (CREATING → STARTING → RUNNING → RESIZING → TERMINATING, init-script events). THE source for cold-start / launch-failure forensics. | | instance_pools_list | GET /api/2.0/instance-pools/list | All instance pools with live used/idle/pending stats — find pools holding warm idle VMs that bill cloud compute. | | pipelines_get | GET /api/2.0/pipelines/{id} | A DLT pipeline's definition + latest state — edition, channel, serverless flag, continuous vs triggered, latest_updates. | | pipelines_get_event_log | GET /api/2.0/pipelines/{id}/events | Page the structured event log (flow/update/maintenance progress, data-quality expectations, backpressure). Supports a filter expression. | | external_locations_list | GET /api/2.1/unity-catalog/external-locations | UC external locations — each binds a storage URL (s3/abfss/gs) to a credential, with owner + read-only + binding mode. | | storage_credentials_list | GET /api/2.1/unity-catalog/storage-credentials | UC storage credentials — the cloud-IAM principals UC assumes for storage access. Trace the IAM wiring behind external locations. |

Auth — three flows

Resolution is lazy: the server starts and tools/list succeeds even with no credentials, so a consuming skill can detect "MCP present but unauthenticated" and degrade cleanly. Set DATABRICKS_HOST plus one credential:

| Flow | Env | Mode | |---|---|---| | PAT | DATABRICKS_TOKEN | CLI only (not supported in App mode) | | OAuth U2M | DATABRICKS_OAUTH_TOKEN (from databricks auth login) | CLI | | OAuth M2M | DATABRICKS_CLIENT_ID + DATABRICKS_CLIENT_SECRET | CLI and the only flow accepted in Databricks App mode |

See .env.example for the full template.

Install

A) Claude Code / any .mcp.json consumer (stdio)

{
  "mcpServers": {
    "databricks-workspace": {
      "command": "npx",
      "args": ["-y", "@intentsolutions/databricks-workspace-mcp"],
      "env": {
        "DATABRICKS_HOST": "https://dbc-xxxx.cloud.databricks.com",
        "DATABRICKS_TOKEN": "dapi..."
      }
    }
  }
}

B) Databricks App (HTTP, OAuth M2M)

The same codebase serves over Streamable HTTP for deployment as a custom Databricks App, which makes the control-plane tools discoverable by the Mosaic AI Agent Framework and the AI Playground in addition to Claude Code. PAT is unsupported in this mode — use a service principal (DATABRICKS_CLIENT_ID / DATABRICKS_CLIENT_SECRET).

Develop

pnpm install
pnpm build        # tsc → dist/, chmods dist/index.js executable
pnpm check        # typecheck + vitest (run against recorded fixtures, no live workspace)
pnpm dev          # tsc --watch

Tests run entirely against recorded JSON fixtures in tests/fixtures/ — no Databricks workspace or credentials required to run the suite.

License

MIT © Jeremy Longshore / Intent Solutions