An MCP server to interact with a the Bauplan API.
Project description
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
-
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
- On macOS:
-
Add the following:
{
"mcpServers": {
"mcp-nvd": {
"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
}
}
}
}
-
Replace
/path/to/uvxwith the absolute path to theuvxexecutable. Find the path withwhich uvxcommand in a terminal. This ensures that the correct version ofuvxis used when starting the server. -
Restart Claude Desktop to apply the changes.
Development
Setup
-
Prerequisites:
- Python 3.10 or higher.
- A Bauplan API key (request here).
uvpackage manager (installation).
-
Clone the Repository:
git clone https://github.com/marcoeg/mcp-bauplan
cd mcp-nvd
-
Set Environment Variables:
- Create a
.envfile in the project root:BAUPLAN_API_KEY=your-api-key BAUPLAN_BRANCH=your-branch BAUPLAN_NAMESPACE=your-namespace
- Create a
-
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=8078if 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
stdioandssetransport types in the inspector. To usesseyou 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
9090by default.
Then open the browser to the URL indicated by the MCP Inspector. Select SSE Transport Type.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_bauplan-0.9.1.tar.gz.
File metadata
- Download URL: mcp_bauplan-0.9.1.tar.gz
- Upload date:
- Size: 45.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd007feb6e857301ad669ab6191b29db3f80c60c4a08610817d1080ac18cb369
|
|
| MD5 |
cb48ae9b61361642f09de2d7efbda30e
|
|
| BLAKE2b-256 |
21609ba2baea0111a243b693d5a8661969107d5fa8d1dd25b168d3030f6e1cd2
|
File details
Details for the file mcp_bauplan-0.9.1-py3-none-any.whl.
File metadata
- Download URL: mcp_bauplan-0.9.1-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9eb77c739f6720fd89abe10ef3385683e80484ca75b0bc0fb5f2902f5f2b9ce4
|
|
| MD5 |
a03f673381c8eb263a73e0bf5149f302
|
|
| BLAKE2b-256 |
4bc179ecfcd5ec6f90bca95ffa5ed3657dcd89d019739bd336f958a44b94a097
|