Add DBConvert Streams (Federated SQL) - #4847
Open
slotix wants to merge 1 commit into
Open
Conversation
A read-only MCP server for PostgreSQL, MySQL, S3 buckets and local data files, where one query can join across all of them. The image is published by us rather than built from source: the server is proprietary, and the same build is listed in the official MCP registry as com.dbconvert/streams, carrying the io.modelcontextprotocol.server.name label.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
dbconvert-streams— a read-only MCP server for PostgreSQL, MySQL, S3-compatiblebuckets and folders of Parquet / CSV / JSON files. Its distinguishing feature is
that one query can join across those sources: a live PostgreSQL table against
a Parquet file in a bucket, or a CSV against the table it was exported from, with
no copying and no staging step. Federation runs in-process on DuckDB.
21 tools, all of them reads. There is no tool that writes — not disabled, absent
— and every tool carries
readOnlyHint, withdestructiveHint: falseandopenWorldHint: truestated explicitly.About the image
The image is our own (
slotix/stream-mcp) rather than one built from source inthis PR: the server is proprietary software, distributed as a binary. It carries
LABEL io.modelcontextprotocol.server.name="com.dbconvert/streams", and the samebuild is published in the official MCP registry as
com.dbconvert/streams, wherethe DNS-verified
dbconvert.comdomain vouches for it.source.projectpoints at our public repository, which holds the documentation,examples and release artifacts for the product; the server binary itself is not
open source. If a Dockerfile in a public repository is a hard requirement, tell
us and we will find another shape.
Configuration
connections— connection strings, repeated.postgres://…,mysql://…ors3://bucket/prefix?region=…, each optionally prefixed withname=to choosewhat the source is called in chat.
paths— folders of data files, mounted and passed to the server, followingthe pattern used by
filesystem.AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY— needed only for S3-compatiblestorage that is not AWS (MinIO, R2, Spaces). Keys are never read from the URL.
Verification
task validate -- --name dbconvert-streamspasses every check.task catalog -- dbconvert-streamsgenerates the catalog entry.tools.jsonwas captured from the running container with theMCP inspector, not written by hand.
docker run -i --rm slotix/stream-mcp "pagila=postgres://…" "sakila=mysql://…" "lake=s3://…" /datalists all foursources and answers a federated join across them.
Docs: https://streams.dbconvert.com/docs/mcp/standalone