tablebridge
Turns a folder of CSV, Parquet, and JSON files into a single SQL-queryable source for AI agents, supporting JOINs across files with read-only sandboxed access.
README
<!-- mcp-name: io.github.Michael-WhiteCapData/tablebridge-mcp -->
tablebridge
Turn a folder of CSV / Parquet / JSON files into one SQL-queryable source for your AI agent.
Small businesses don't have a data warehouse â they have a folder full of exports: customers.csv, last month's orders.xlsx, a regions.json someone emailed over. tablebridge is an MCP server that points DuckDB at that folder, exposes each file as a SQL table, and lets your agent run read-only SQL â including JOINs across files â to answer questions over all of them at once. Scattered spreadsheets become one queryable source of truth.
It's read-only and sandboxed: files are loaded into an in-memory database, the data directory is the only thing it can see, and queries are validated so an agent can't write, escape to other paths, or call raw file functions.
Why you'd want this
- ð One source over many files. JOIN
orders.csvtocustomers.csvtoregions.jsonin a single query â no ETL, no database to stand up. - ðĶ DuckDB-powered. Fast analytical SQL over CSV, TSV, Parquet, JSON/NDJSON.
- ð Safe by design. Files are materialized into memory; queries are validated read-only; raw file-access functions and out-of-sandbox paths are rejected.
- ðĪ Agent-friendly.
list_sourcesâdescribeâqueryis a natural flow the agent can follow on its own. - ðŠķ Two dependencies (
mcp,duckdb), fully typed and tested.
Install
uvx tablebridge # run directly
# or
pip install tablebridge # then run: tablebridge
Claude Code
TABLEBRIDGE_DATA_DIR=/path/to/your/data claude mcp add tablebridge -- uvx tablebridge
Claude Desktop / Cursor
{
"mcpServers": {
"tablebridge": {
"command": "uvx",
"args": ["tablebridge"],
"env": { "TABLEBRIDGE_DATA_DIR": "/path/to/your/data" }
}
}
}
Tools
| Tool | Description |
|---|---|
list_sources |
List the tables (one per data file) with column counts â start here |
describe |
A table's columns and types |
preview |
First N rows of a table |
query |
Run read-only SQL (DuckDB dialect) across the tables, JOINs included |
refresh |
Re-scan the data directory for added/changed files |
server_info |
Effective config (data dir, row cap, supported formats) |
Example
With a folder containing customers.csv, orders.csv, and regions.json:
You: Who are my top 3 customers by total spend, and what region are they in?
Agent: (calls
list_sources, thenquery)SELECT c.name, r.region, SUM(o.total) AS spend FROM customers c JOIN orders o ON o.customer_id = c.id JOIN regions r ON r.customer_id = c.id GROUP BY c.name, r.region ORDER BY spend DESC LIMIT 3;
Configuration
| Variable | Default | Description |
|---|---|---|
TABLEBRIDGE_DATA_DIR |
. |
Directory of files to expose (the sandbox boundary) |
TABLEBRIDGE_MAX_ROWS |
1000 |
Max rows returned per query/preview |
TABLEBRIDGE_RECURSIVE |
1 |
Scan subdirectories too |
Supported formats: .csv, .tsv, .parquet, .json, .ndjson.
Security model
- Sandboxed to
TABLEBRIDGE_DATA_DIRâ only files under it are loaded. - Materialized into an in-memory DuckDB, then external filesystem access is disabled â queries can't reach other paths.
- Validated SQL â a single read-only statement only; writes and raw file-reader functions are rejected.
Development
git clone https://github.com/Michael-WhiteCapData/tablebridge-mcp
cd tablebridge-mcp
uv pip install -e ".[dev]"
ruff check .
pytest # uses real DuckDB over temp files
See CONTRIBUTING.md.
License
MIT ÂĐ Michael Tierney
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.