MCP数据管道连接器
npm mcp-data-pipeline-connector 包裹
一个MCP服务器用于所有数据源——具有跨源SQL连接,没有外部查询服务。DuckDB运行嵌入式进程内,因此您可以在一个查询中针对Postgres表针对RESTneneneba API响应加入CSV文件,完全在您的机器上。代理无需特定于源的知识或多个MCP服务器配置即可处理您的数据。
主要特点
- 统一查询接口:通过DuckDB跨所有连接源的SQL,包括跨源连接。
- 多种来源类型:单个服务器中的CSV/JSON文件、PostgreSQL数据库和REST API端点。
- 自动模式检测:从CSV标头和Postgres元数据推断列名和类型。
- REST缓存:使用可配置的TTL缓存REST API响应,以避免冗余调用。
- 模式规范化:将源代码特定类型映射到标准集(字符串、数字、日期、布尔值、json)。
- 进程中查询引擎:DuckDB运行嵌入式——无需安装或管理单独的查询服务。
为什么这比单独的每个源MCP服务器更重要?
常见的替代方案是为每个数据源运行一个MCP服务器——postgres MCP服务器、CSV MCP服务器、REST MCP服务器。每个人单独工作都很好,但他们不能互相交谈。
| mcp数据管道连接器 | 每个源服务器单独 | |
|---|---|---|
| 跨源连接 | 通过嵌入式DuckDB进行本机SQL | 不可能——代理必须手动获取和连接 |
| 配置复杂性 | MCP配置中有一个服务器条目 | 每种源类型一个条目 |
| 查询引擎 | DuckDB正在处理中——无需安装,无需服务 | 取决于每个源的查询能力 |
| 模式统一 | 将所有类型标准化为字符串/整数/数字/日期时间/布尔值/json/未知 | 每个源使用自己的类型系统 |
| 数据驻留 | 所有查询都在本地运行 | 取决于每个连接器的实现 |
如果你问的问题涉及多个数据源——“将我的销售CSV与用户表连接起来”——这是一个正确的工具。如果你只查询一种源类型,那么专用的单源服务器会更简单。
免责声明
mcp-data-pipeline-connector 连接到您配置的数据源,并代表您的代理对其执行查询。确保代理只具有所需的数据库权限。连接字符串从不被记录或传输;将它们从版本控制的配置文件中删除。使用环境变量作为凭据。
需求
- Node.js v20.19或更新版本。
- npm。
- 可选:Postgres连接器的一个正在运行的PostgreSQL实例。
入门
将以下配置添加到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客户端配置
放大器·克劳德码·克莱恩·光标·VS码·风帆·泽德
您的第一个提示
将CSV文件放置在 ~/data/sample.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
拒绝任何不符合以下条件的SQL语句 SELECT 查询。强制对所有源进行只读访问。
类型: boolean 违约: true
通过传递旗帜 args JSON配置中的属性:
{
"mcpServers": {
"data-connector": {
"command": "npx",
"args": ["-y", "mcp-data-pipeline-connector@latest", "--max-rows=5000", "--rest-cache-ttl=60"]
}
}
}验证
在发布新版本之前,使用MCP Inspector验证服务器,以确认所有工具都已正确公开,协议握手成功。
交互式用户界面 (打开浏览器):
npm run build && npm run inspectCLI模式 (脚本/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注册表 和 MCP市场.
故障排除
- REST源连接失败:确认URL可访问,并且设置了任何auth-env变量。使用
check_health启动后重新测试。 - 跨源加入不返回任何结果:确保两个来源都是CSV类型,并在使用前注册
source='_all'. - 查询返回
truncated: true:增加--max-rows或添加LIMIT将子句添加到SQL中。
