home / mcp / bauplan mcp server

Bauplan MCP Server

Provides programmatic access to Bauplan lakehouse data and operations via the MCP API for local development.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "bauplanlabs-bauplan-mcp-server": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

The Bauplan MCP Server lets AI assistants interact with your Bauplan lakehouse by running queries, inspecting schemas, managing data branches, and orchestrating pipelines through a simple, open interface. It enables local development workflows where your assistant can help you explore and operate your data lakehouse efficiently.

How to use

You connect an MCP client (for example Claude Code, Claude Desktop, or Cursor) to the MCP server, then start asking questions about your data lakehouse. The server exposes actions for data exploration, schema inspection, branch and namespace management, table operations, pipeline actions, and general project-oriented tasks. Start a session with a clear prompt that guides the client on how to best leverage the server’s capabilities. Begin your interactions by using your client to query tables, inspect schemas, create or merge branches, and run data-related operations.

How to install

Prerequisites you need on your machine before installing the MCP server are a Python runtime and a way to run network services (such as uv or a Python virtual environment). You will also need an API key for Bauplan if you plan to access data lakehouse resources during development.

Option 1: Quick start using a Python virtual environment and editable install. This sets up a local development instance you can run and test right away.

python -m venv venv
source venv/bin/activate
pip install -e .

Available tools

list_tables

List all tables in a given branch or namespace.

get_schema

Retrieve the schema for all tables in a branch or namespace.

get_table

Get the schema for a specific table to inspect its structure.

run_query

Execute SELECT queries against tables to fetch data.

run_query_to_csv

Run a query and export results to a CSV file.

get_branches

List branches with optional filters to explore versions.

get_commits

Show commit history for branches.

create_branch

Create a new branch from a reference.

has_branch

Check if a specific branch exists.

merge_branch

Merge branches with a commit message.

delete_branch

Delete a branch with safety checks.

get_namespaces

List available namespaces within a branch.

create_namespace

Create a new namespace in a branch.

has_namespace

Verify if a namespace exists in a branch.

delete_namespace

Remove a namespace from a branch.

get_tags

List tags with optional filters.

create_tag

Create a new tag from a reference.

has_tag

Check if a tag exists.

delete_tag

Delete a tag.

create_table

Create a table from an S3 location using schema detection.

plan_table_creation

Generate a YAML import plan for a table from S3.

apply_table_creation_plan

Apply a table creation plan to resolve schema conflicts.

has_table

Check if a table exists in a given branch.

delete_table

Delete a table from a branch.

import_data

Import data into an existing table from S3.

revert_table

Revert a table from a source to a target branch.

project_run

Run a Bauplan project from a directory and reference.

code_run

Run a Bauplan project from code provided as a dictionary.

list_jobs

List jobs with optional filters.

get_job

Get detailed information about a specific job.

cancel_job

Cancel a running job and check status.

get_user_info

Get information about the current authenticated user.

get_instructions

Get detailed instructions for specific Bauplan use cases.