mcp-bauplan MCP Server

A minimalist MCP server for interacting with Bauplan data tables

README.md

mcp-bauplan

A mimimalist Model Context Protocol MCP server to interact with data tables and running Bauplan queries.

Bauplan manages a data store of Iceberg tables in S3.

Features

  • Get Bauplan data tables and their schemas in the configured namespace
  • Query Bauplan data tables using SQL (SELECT only)

It supports both SSE and STDIO transports.

Tools

The server implements the following tools to interact with Bauplan data tables:

  • list_tables:
    • Lists all the tables in the configured namespace
  • get_schema:
    • Get the schema of a data tables
  • run_query:
    • Run a SELECT query on the specified table

Configuration

  1. Create _or edit the Claude Desktop configuration file located at:

    • On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • On Windows: %APPDATA%/Claude/claude_desktop_config.json
  2. Add the following:

{
  "mcpServers": {
    "mcp-bauplan": {
      "command": "/path/to/uvx",
      "args": ["mcp-bauplan"],
      "env": {
        "BAUPLAN_API_KEY": "your-api-key",
        "BAUPLAN_BRANCH": "your-branch",
        "BAUPLAN_NAMESPACE": "your-namespace",
        // Optional
        "BAUPLAN_TIMEOUT": "query-timeout-secs" // default 30 seconds
      }
    }
  }
}
  1. Replace /path/to/uvx with the absolute path to the uvx executable. Find the path with which uvx command in a terminal. This ensures that the correct version of uvx is used when starting the server.

  2. Restart Claude Desktop to apply the changes.

Run the stand-alone SSE server

Create a .env file from .env.example and then execute the following command:

$ uvx --env-file /path/to/.env mcp-bauplan --transport sse --port 9090

Note the use of nvx and not uvx will fetch mcp-bauplan from the default registry https://pypi.org.

Future Development

Development - work in progress

  1. Documentation of Bauplan (SDK and Platform) as Resource
  2. Automation of Bauplan Execution - more commands and run a pipeline
  3. Query Generation
  4. Code Generation Using Templates
  5. Data Governance & Compliance
  6. Testing & Validation
  7. Integration Ecosystem

Setup

  1. Prerequisites:

  2. Clone the Repository:

git clone https://github.com/marcoeg/mcp-bauplan
cd mcp-nvd
  1. Set Environment Variables:

    • Create a .env file in the project root:
      BAUPLAN_API_KEY=your-api-key
      BAUPLAN_BRANCH=your-branch
      BAUPLAN_NAMESPACE=your-namespace
      
  2. Install Dependencies:

uv sync
uv pip install -e .

Run with the MCP Inspector

cd /path/to/the/repo
source .env

CLIENT_PORT=8077 SERVER_PORT=8078 npx @modelcontextprotocol/inspector \
     uv run mcp-bauplan

Note: omit CLIENT_PORT=8077 SERVER_PORT=8078 if the standard ports are not conflicting.

Then open the browser to the URL indicated by the MCP Inspector, typically http://localhost:8077?proxyPort=8078

Switch freely between stdio and sse transport types in the inspector. To use sse you need to run the server as explained below.

Testing with the SSE transport

Run the Server:
cd /path/to/the/repo
source .env

uv run mcp-bauplan --transport sse --port 9090
  • Runs with SSE transport on port 9090 by default.

Then open the browser to the URL indicated by the MCP Inspector. Select SSE Transport Type.

Tools 3

list_tablesLists all the tables in the configured namespace
get_schemaGet the schema of a data table
run_queryRun a SELECT query on the specified table

Environment Variables

BAUPLAN_API_KEYrequiredYour Bauplan API key
BAUPLAN_BRANCHrequiredThe Bauplan branch to use
BAUPLAN_NAMESPACErequiredThe Bauplan namespace to target
BAUPLAN_TIMEOUTQuery timeout in seconds

Try it

List all the tables available in my current Bauplan namespace.
Get the schema for the 'users' table.
Run a query to select the first 10 rows from the 'orders' table.
Show me the structure of the 'transactions' table.

Frequently Asked Questions

What are the key features of mcp-bauplan?

List data tables within a configured namespace. Retrieve schemas for specific data tables. Execute read-only SELECT SQL queries against Iceberg tables. Supports both SSE and STDIO transport protocols.

What can I use mcp-bauplan for?

Quickly inspecting table schemas without leaving the Claude interface. Running ad-hoc data analysis queries on Iceberg tables in S3. Integrating Bauplan data exploration into AI-assisted data workflows.

How do I install mcp-bauplan?

Install mcp-bauplan by running: uvx mcp-bauplan

What MCP clients work with mcp-bauplan?

mcp-bauplan works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Conare · memory for coding agents

Turn this server into reusable context

Keep mcp-bauplan docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Set up free$npx conare@latest