vibedasher-mcp
An MCP server that exposes the Vibedasher data engine — datasets, CSV upload + ETL, headless SQL query, and dashboard (viz) management — as tools a customer's AI (Claude Code, Cursor, ...) can drive directly.
This is the control plane (VD-601, PIVOT/PLAN.md EP-6). It wraps the published
vibedasher Python SDK and calls only the public, metered /api/v1/*
API. The eject tools (pull a viz's code + SDK-wiring manifest so your AI recreates
the dashboard natively in your stack) ship separately as VD-602.
Tools
| Tool | What it does |
|---|---|
list_datasets |
List datasets the key can read (id, name, cleanSQLName, status). |
get_dataset(dataset_id) |
One dataset's metadata + column schema. |
upload_dataset(name, csv_content, ...) |
Create a CSV dataset, upload, load, poll to READY. |
run_query(dataset_ids, sql, params) |
Inline alias-only SQL across your datasets (plural datasetIds, joins allowed) → typed columns + rows. |
list_vizzes(include_unpublished=False) |
List dashboards. |
get_viz(viz_id) |
One viz's metadata. |
create_viz(name, dataset_ids, seed_id/dashboard_config, ...) |
Create a viz (AI dashboard-build entry). |
build_viz(viz_id, branch) |
Compile a viz branch into a renderable bundle. |
run_query reuses the SDK's hand-written query() transport (VD-301): the caller
never sees inline-vs-presigned delivery, MessagePack, or retries — one call in,
typed rows out. Each dataset id resolves server-side to that dataset's
cleanSQLName alias under the VD-203 RLS/alias-rewrite; SQL references only aliases.
Auth
API key only, via X-Api-Key (handled by the SDK's create_client). Set:
export VIBEDASHER_API_KEY=... # mint via `POST /v1/api-keys` or the console
export VIBEDASHER_REGION=eu-central-1 # or us-east-1
# export VIBEDASHER_BASE_URL=... # optional override (on-prem/staging)
The key is read once at first tool call and is never logged or echoed in any tool result.
Metering
Every tool hits the public, metered endpoints (create_dataset is credit-gated;
run_query is metered via the usage/credits event). The MCP adds no side channel
and bypasses no metering.
Run
pip install vibedasher-mcp # (monorepo dev: also make `vibedasher` importable)
vibedasher-mcp # stdio MCP server
# or: python -m vibedasher_mcp
MCP client config (Claude Code / Cursor):
{
"mcpServers": {
"vibedasher": {
"command": "vibedasher-mcp",
"env": { "VIBEDASHER_API_KEY": "...", "VIBEDASHER_REGION": "eu-central-1" }
}
}
}
Development
The package depends on the sibling SDK at ../sdk/py. Tests wire that path
automatically (tests/conftest.py), so from packages/mcp:
python -m pytest tests/ -q
Note:
fastmcpis a client-side dependency of this standalone package; it is not bundled into the API Lambdas, so theexport_requirements.pystep in the rootCLAUDE.mddoes not apply here.
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 vibedasher_mcp-0.1.0.tar.gz.
File metadata
- Download URL: vibedasher_mcp-0.1.0.tar.gz
- Upload date:
- Size: 52.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
573efbf0d6340df5d808e232e569114112afbfe9a54569b30eb4fb354b6e9744
|
|
| MD5 |
9feedfc89184f45e26128824ce172f58
|
|
| BLAKE2b-256 |
b81e2c37fe4ba486c9542e29c662723d7ee90b0e15cee71cb1e89bfd25750747
|
File details
Details for the file vibedasher_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: vibedasher_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 40.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8846d63bf43c06e0d5bd5bd08a729207723c5c497c7c019c1715fb63c8285005
|
|
| MD5 |
fc8205f4139f70e8aa0c0a42b3c0857a
|
|
| BLAKE2b-256 |
a0c7efa882019bb93f365180376450d5189913d673cf88b15ea9ca3363a65868
|