关于 mcp-data-pipeline-connector
通过内嵌 DuckDB 查询 CSV、JSON 文件、PostgreSQL 和 REST API 的 MCP 服务。适合需要跨数据源处理数据的团队和 Agent,可在单个连接器中执行跨源 SQL 联接并统一模式。
主要功能
- 01跨已配置数据源执行 SQL
- 02联接文件、PostgreSQL 与 REST API
- 03自动检测模式
- 04缓存 REST 响应
- 05规范化数据源类型
- 06内嵌 DuckDB 查询引擎
适用场景
- 01将销售 CSV 与 PostgreSQL 表联接
- 02同时查询 REST 数据和本地文件
- 03检查数据源的表与模式
- 04将查询限制为 SELECT 语句
MCP 相关
提供连接和列出数据源、检查模式、查询或转换数据以及检查健康状态的 MCP 工具。数据源通过 YAML 文件配置。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Data Pipeline Connector
npm mcp-data-pipeline-connector 包
一个 MCP 服务,连接你的所有数据源,并支持跨数据源 SQL 联接,无需外部查询服务。DuckDB 以嵌入式方式在进程内运行,因此你可以在一条查询中联接 CSV 文件、Postgres 表和 REST API 响应,全程都在本机完成。Agent 无需了解各数据源的专属知识,也不需要配置多个 MCP 服务,即可使用你的数据。
主要功能
- 统一查询接口:通过 DuckDB 使用 SQL 查询所有已连接的数据源,包括跨数据源联接。
- 多种数据源类型:在一个服务中连接 CSV/JSON 文件、PostgreSQL 数据库和 REST API 端点。
- 自动检测架构:根据 CSV 标题和 Postgres 元数据推断列名和类型。
- REST 缓存:缓存 REST API 响应,并可配置 TTL 以避免重复调用。
- 架构标准化:将特定于数据源的类型映射到一组标准类型(string、number、date、boolean、json)。
- 进程内查询引擎:DuckDB 以嵌入式方式运行,无需安装或管理独立的查询服务。
为什么选择它,而不是为每种数据源单独使用 MCP 服务?
常见的替代方案是为每种数据源运行一个 MCP 服务,例如 postgres MCP 服务、CSV MCP 服务和 REST MCP 服务。每个服务单独使用时都很好,但它们无法彼此交互。
| mcp-data-pipeline-connector | 按数据源分别运行的服务 | |
|---|---|---|
| 跨数据源联接 | 通过嵌入式 DuckDB 使用原生 SQL | 无法实现 — Agent 必须手动获取并联接数据 |
| 配置复杂度 | MCP 配置中只需一个服务条目 | 每种数据源类型都需要一个条目 |
| 查询引擎 | 进程内运行的 DuckDB — 无需安装,也无需服务 | 取决于各数据源的查询能力 |
| 架构统一 | 将所有类型标准化为 string/integer/number/datetime/boolean/json/unknown | 每种数据源使用自己的类型系统 |
| 数据驻留 | 所有查询都在本地运行 | 取决于各连接器的实现 |
如果你需要查询多个数据源中的信息,例如“将我的销售 CSV 与用户表联接”,那么这是合适的工具。如果你始终只查询一种数据源类型,那么专用的单数据源服务会更简单。
免责声明
mcp-data-pipeline-connector 会连接你配置的数据源,并代表你的 Agent 对这些数据源执行查询。请确保 Agent 仅拥有所需的数据库权限。连接字符串不会被记录或传输;请勿将其放入版本控制的配置文件中。请使用环境变量存储凭据。
要求
- Node.js v20.19 或更高版本。
- npm。
- 可选:运行中的 PostgreSQL 实例,用于 Postgres 连接器。
开始使用
将以下配置添加到你的 MCP 客户端:
{
"mcpServers": {
"data-connector": {
"command": "npx",
"args": ["-y", "mcp-data-pipeline-connector@latest"]
}
}
}
在 ~/.mcp/data-sources.yaml 中定义数据源:
sources:
- name: sales
type: csv
path: ~/data/sales-2025.csv
- name: users
type: postgres
connection_string: "${POSTGRES_URL}"
tables: [users, subscriptions]
请将连接字符串存储在环境变量中,不要直接写入 YAML 文件。
MCP 客户端配置
Amp · Claude Code · Cline · Cursor · VS Code · Windsurf · Zed
你的第一个提示词
在 ~/data/sample.csv 中放置一个 CSV 文件,在配置中将其添加为数据源,然后输入:
What columns are in the sample table? Show me the first 5 rows.
你的客户端应返回架构和数据预览。
工具
数据源(2 个工具)
connect_sourcelist_sources
架构(2 个工具)
list_tablesget_schema
数据(2 个工具)
querytransform
健康状态(1 个工具)
check_health
配置
--config / --sources-config
定义数据源的 YAML 文件路径。
类型:string
默认值:~/.mcp/data-sources.yaml
--rest-cache-ttl
缓存 REST API 响应的生存时间,单位为秒。设为 0 可禁用缓存。
类型:number
默认值:300
--max-rows
单次 query 调用返回的最大行数。可防止意外返回大量结果。
类型:number
默认值:1000
--read-only
拒绝所有非 SELECT 查询的 SQL 语句。对所有数据源强制执行只读访问。
类型:boolean
默认值:true
通过 JSON 配置中的 args 属性传递标志:
{
"mcpServers": {
"data-connector": {
"command": "npx",
"args": ["-y", "mcp-data-pipeline-connector@latest", "--max-rows=5000", "--rest-cache-ttl=60"]
}
}
}
验证
发布新版本前,使用 MCP Inspector 验证服务,确认所有工具均已正确公开,且协议握手成功。
交互式 UI(打开浏览器):
npm run build && npm run inspect
CLI 模式(适用于脚本 / CI):
# List all tools
npx @modelcontextprotocol/inspector --cli node dist/index.js --method tools/list
# List resources and prompts
npx @modelcontextprotocol/inspector --cli node dist/index.js --method resources/list
npx @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 arguments
npx @modelcontextprotocol/inspector --cli node dist/index.js \
--method tools/call --tool-name list_sources --tool-arg key=value
发布前运行此检查,以发现工具注册和运行时启动方面的回归问题。
贡献
每个连接器都位于 src/connectors/ 中,并且必须实现 DataConnector 接口。在 tests/fixtures/ 下添加集成测试所需的固定数据文件。切勿记录连接字符串或凭据;在输出任何内容或错误消息之前,务必进行脱敏。
npm install && npm test
收录目录
mcp-data-pipeline-connector 已收录于 MCP Registry 和 MCP Market。
故障排除
- REST 数据源连接失败:确认 URL 可访问,并已设置任何需要的身份验证环境变量。启动后使用
check_health重新测试。 - 跨数据源联接未返回结果:确保两个数据源均为 CSV 类型,并且在使用
source='_all'之前已完成注册。 - 查询返回
truncated: true:增大--max-rows的值,或在 SQL 中添加LIMIT子句。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。