Mcp Data Pipeline Connector

io.github.dbsectrainer由 GitHub 账号 dbsectrainer 发布v1.0.1更新于 Nov 4, 2026

Universal data connector for CSV, Postgres, and REST APIs via DuckDB

概览

AI 生成的概览

本地 MCP 服务器,可注册 CSV 文件、PostgreSQL 数据库和 REST API,并让助手通过内嵌 DuckDB 用 SQL 查询和转换这些数据。

可以做什么
  • 注册、列出并检查 CSV 文件、Postgres 数据库和 REST 接口等数据源的连接状态
  • 列出各数据源中的表,查看指定表的列名与类型
  • 用 DuckDB 执行 SQL 查询,支持 CSV 源之间的跨源连接,并可限制行数与分页
  • 对表执行聚合、筛选、重命名或列选择,并返回或保存结果
适用场景
适合助手需要跨多个数据源回答问题的情况,例如把销售 CSV 与 Postgres 用户表连接查询,而无需为每种数据源单独配置服务器。若只查询单一数据源,专用连接器更简单。
运行要求
通过 npx 以 stdio 在本地运行,需要 Node.js v20.19 或更高版本及 npm。数据源在 YAML 文件(默认 ~/.mcp/data-sources.yaml)中定义,连接字符串应来自环境变量。使用 Postgres 连接器需要运行中的 PostgreSQL 实例,REST 数据源需要网络访问。声明了一个必需的环境变量 YOUR_API_KEY。
安装前请注意
服务器会对你配置的数据源执行 SQL,应只授予助手所需的数据库权限。默认开启只读模式并拒绝非 SELECT 语句,但该模式可以关闭。凭据应放在环境变量中,例如 YOUR_API_KEY 和 Postgres 连接字符串变量,不要写入受版本控制的 YAML。REST 响应默认缓存 300 秒。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Mcp Data Pipeline Connector,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

MCP Data Pipeline Connector

npm mcp-data-pipeline-connector package

One MCP server for all your data sources — with cross-source SQL joins and no external query service. DuckDB runs embedded in-process, so you can join a CSV file against a Postgres table against a REST API response in a single query, entirely on your machine. Agents work with your data without needing source-specific knowledge or multiple MCP server configs.

Tool reference | Configuration | Contributing | Troubleshooting

Key features

  • Unified query interface: SQL across all connected sources via DuckDB — including cross-source joins.
  • Multiple source types: CSV/JSON files, PostgreSQL databases, and REST API endpoints in a single server.
  • Auto schema detection: Infers column names and types from CSV headers and Postgres metadata.
  • REST caching: REST API responses are cached with a configurable TTL to avoid redundant calls.
  • Schema normalization: Maps source-specific types to a standard set (string, number, date, boolean, json).
  • In-process query engine: DuckDB runs embedded — no separate query service to install or manage.

Why this over separate per-source MCP servers?

The common alternative is running one MCP server per data source — a postgres MCP server, a CSV MCP server, a REST MCP server. Each works fine in isolation, but they can't talk to each other.

mcp-data-pipeline-connectorSeparate per-source servers
Cross-source joinsNative SQL via embedded DuckDBNot possible — agent must fetch and join manually
Config complexityOne server entry in your MCP configOne entry per source type
Query engineDuckDB in-process — no install, no serviceDepends on each source's query capabilities
Schema unificationNormalizes all types to string/integer/number/datetime/boolean/json/unknownEach source uses its own type system
Data residencyAll queries run locallyDepends on each connector's implementation

If you're asking questions that span multiple data sources — "join my sales CSV with the users table" — this is the right tool. If you only ever query one source type, a dedicated single-source server is simpler.

Disclaimers

mcp-data-pipeline-connector connects to data sources you configure and executes queries against them on behalf of your agent. Ensure agents only have the database permissions they need. Connection strings are never logged or transmitted; keep them out of version-controlled config files. Use environment variables for credentials.

Requirements

  • Node.js v20.19 or newer.
  • npm.
  • Optional: A running PostgreSQL instance for the Postgres connector.

Getting started

Add the following config to your MCP client:

json
{  "mcpServers": {    "data-connector": {      "command": "npx",      "args": ["-y", "mcp-data-pipeline-connector@latest"]    }  }}

Define your data sources in ~/.mcp/data-sources.yaml:

yaml
sources:  - name: sales    type: csv    path: ~/data/sales-2025.csv  - name: users    type: postgres    connection_string: "${POSTGRES_URL}"    tables: [users, subscriptions]

Store connection strings in environment variables, not directly in the YAML file.

MCP Client configuration

Amp · Claude Code · Cline · Cursor · VS Code · Windsurf · Zed

Your first prompt

Place a CSV file at ~/data/sample.csv, add it as a source in your config, then enter:

What columns are in the sample table? Show me the first 5 rows.

Your client should return the schema and a preview of the data.

Tools

Sources (2 tools)

  • connect_source
  • list_sources

Schema (2 tools)

  • list_tables
  • get_schema

Data (2 tools)

  • query
  • transform

Health (1 tool)

  • check_health

Configuration

--config / --sources-config

Path to the YAML file defining data sources.

Type: string Default: ~/.mcp/data-sources.yaml

--rest-cache-ttl

Time-to-live in seconds for cached REST API responses. Set to 0 to disable caching.

Type: number Default: 300

--max-rows

Maximum number of rows returned by a single query call. Prevents accidental large result sets.

Type: number Default: 1000

--read-only

Reject any SQL statements that are not SELECT queries. Enforces read-only access across all sources.

Type: boolean Default: true

Pass flags via the args property in your JSON config:

json
{  "mcpServers": {    "data-connector": {      "command": "npx",      "args": ["-y", "mcp-data-pipeline-connector@latest", "--max-rows=5000", "--rest-cache-ttl=60"]    }  }}

Verification

Before publishing a new version, verify the server with MCP Inspector to confirm all tools are exposed correctly and the protocol handshake succeeds.

Interactive UI (opens browser):

bash
npm run build && npm run inspect

CLI mode (scripted / CI-friendly):

bash
# List all toolsnpx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
# List resources and promptsnpx @modelcontextprotocol/inspector --cli node dist/index.js --method resources/listnpx @modelcontextprotocol/inspector --cli node dist/index.js --method prompts/list
# Call a tool (example — replace with a relevant read-only tool for this plugin)npx @modelcontextprotocol/inspector --cli node dist/index.js \  --method tools/call --tool-name list_sources
# Call a tool with argumentsnpx @modelcontextprotocol/inspector --cli node dist/index.js \  --method tools/call --tool-name list_sources --tool-arg key=value

Run before publishing to catch regressions in tool registration and runtime startup.

Contributing

Each connector lives in src/connectors/ and must implement the DataConnector interface. Add fixture data files under tests/fixtures/ for integration tests. Never log connection strings or credentials — sanitize before any output or error message.

bash
npm install && npm test

Listings

mcp-data-pipeline-connector is listed on MCP Registry and MCP Market.

Troubleshooting

  • REST source fails to connect: Confirm the URL is reachable and any auth env var is set. Use check_health to retest after startup.
  • Cross-source join returns no results: Ensure both sources are CSV type and registered before using source='_all'.
  • Query returns truncated: true: Increase --max-rows or add a LIMIT clause to your SQL.

来源:README.md,提交 6914478

工具

7

connect_source

Register a data source (CSV file, Postgres database, or REST API). Credentials must be in environment variables or a YAML config file — never pass connection strings directly.

输入参数urlname必填pathtype必填source_config_path

list_sources

List all registered data sources and their connection status.

无需输入参数。

list_tables

List available tables across all sources, or just the named source.

输入参数source

get_schema

Return the column names and types for a specific table.

输入参数table必填source必填

query

Execute a SQL query against a registered data source using DuckDB. Returns up to --max-rows rows (default 1000). In read-only mode (default), only SELECT statements are allowed. Use source='_all' to query across all CSV sources with cross-source joins. Supports limit and offset for pagination.

输入参数sql必填limitoffsetsourcesourcesmax_rows

transform

Apply aggregations, filters, renaming, or column selection to a source table and return or save results.

输入参数table必填source必填operations必填output_format

check_health

Check whether registered data sources are still reachable and responsive.

输入参数source

版本历史

2
  1. v1.0.1最新Nov 4, 2026
  2. v1.0.0Sep 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分