关于 Dataset Join & Merge
Dataset Join & Merge 是用于按共享键合并 JSON 行列表的远程 MCP 服务。它提供七种连接模式、可配置的键匹配与字段冲突处理,并汇总匹配和未匹配行。
主要功能
- 01七种连接类型,包括并集
- 02不区分大小写或精确匹配键
- 03支持不同名称及复合键
- 04选择要复制的右侧字段
- 05可配置重复键处理方式
- 06匹配状态与摘要报告
适用场景
- 01用账单记录补充潜在客户数据
- 02找出 CRM 中尚无记录的潜在客户
- 03合并键字段名称不同的列表
MCP 相关
通过远程 HTTP 端点向 MCP 客户端提供 `list_capabilities` 和 `join_rows`。客户端提交两个 JSON 行列表、键字段和连接模式,获取合并结果及匹配摘要。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://dataset-join-merge.nerolabs.workers.dev/mcpclaude mcp add --transport http nero-engine-dataset-join-merge https://dataset-join-merge.nerolabs.workers.dev/mcp{"mcpServers":{"nero-engine-dataset-join-merge":{"type":"http","url":"https://dataset-join-merge.nerolabs.workers.dev/mcp"}}}在 Cursor 中打开{"servers":{"nero-engine-dataset-join-merge":{"type":"http","url":"https://dataset-join-merge.nerolabs.workers.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"nero-engine-dataset-join-merge":{"type":"http","url":"https://dataset-join-merge.nerolabs.workers.dev/mcp"}}}{"mcpServers":{"nero-engine-dataset-join-merge":{"serverUrl":"https://dataset-join-merge.nerolabs.workers.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
2此工具无需参数。
详细介绍
数据集联接与合并(远程 MCP 服务)
只需一次工具调用,即可根据共享键联接两个 JSON 行列表,类似 SQL 联接或电子表格中的 VLOOKUP。 提供一个主列表和一个查找列表,指定键并选择联接类型,即可获得合并后的列表,以及精确的统计结果,说明两侧各有多少行匹配,以及其余行未匹配的原因。
专为 AI Agent 打造。无需安装、API 密钥或注册。通过 URL 连接并调用即可。
https://dataset-join-merge.nerolabs.workers.dev/mcp
抢先体验期间可免费使用。
功能介绍
- 七种联接类型。
left保留所有左侧行,并添加匹配的右侧字段(适用于 VLOOKUP 和数据补全场景,也是默认类型)。inner仅保留重叠部分。right保留所有右侧行。full保留两侧的所有内容。leftAnti返回右侧没有匹配项的左侧行(“这些潜在客户中,哪些还不在 CRM 里?”)。rightAnti则相反。union将两个列表堆叠在一起,无需键。 - 按真实数据的样子匹配键。 默认情况下,键匹配不区分大小写,并忽略首尾空格和重复空格;
123也会匹配"123"。因此,抓取器中的" [email protected]"可以匹配账单导出中的"[email protected]"。如需严格匹配,可将keyMatching设为exact。 - 两侧的键名可以不同。 左侧使用
email,右侧使用contact_email。也支持复合键:["firstName", "lastName"]。 - 控制哪些内容会被带过来。 只复制指定的右侧字段,并选择两侧字段同名时的处理方式:保留两者(右侧字段改名为
right_status)、保留左侧值,或用右侧值覆盖。 - 重复键的 SQL 或 VLOOKUP 行为。
multipleMatches: "all"会为每一对匹配项返回一行;"first"只使用第一个匹配的右侧行,因此每个左侧行只会出现一次。
工具会如实说明未能匹配的内容。每行都会带有 _joinStatus(matched、left_only、right_only)和 _matchCount 标记;摘要会报告匹配率,并对缺少键的行、右侧的重复键,以及完全没有出现在任何行中的键字段(通常是拼写错误)发出警告。
工具
| 工具 | 功能 |
|---|---|
list_capabilities | 列出所有联接类型、匹配模式、冲突策略和重复键模式、每行新增的字段以及行数限制。不处理任何数据。 |
join_rows | 根据指定的键字段联接 leftRows 和 rightRows,并返回联接后的行和摘要。 |
连接
Claude Code
claude mcp add --transport http dataset-join-merge https://dataset-join-merge.nerolabs.workers.dev/mcp
Claude Desktop / claude.ai: 依次选择 Settings、Connectors、Add custom connector,然后粘贴上方的 URL。
Cursor、Windsurf、VS Code 及其他 MCP 客户端
{
"mcpServers": {
"dataset-join-merge": {
"url": "https://dataset-join-merge.nerolabs.workers.dev/mcp"
}
}
}
示例
左侧有四条抓取到的潜在客户记录,右侧有三条账单记录。电子邮件地址的大小写和空格不同,且两侧的键名不同:
{
"leftRows": [
{"email": "[email protected] ", "name": "Ana Silva", "status": "lead"},
{"email": "[email protected]", "name": "Ben Okafor", "status": "lead"},
{"email": "[email protected]", "name": "Cara Lind", "status": "lead"},
{"email": "[email protected]", "name": "Dev Patel", "status": "lead"}
],
"rightRows": [
{"contact_email": "[email protected]", "plan": "Pro", "mrr": 49, "status": "active"},
{"contact_email": "[email protected] ", "plan": "Starter", "mrr": 19, "status": "trial"},
{"contact_email": "[email protected]", "plan": "Enterprise", "mrr": 499, "status": "active"}
],
"leftKeyFields": ["email"],
"rightKeyFields": ["contact_email"],
"joinType": "left"
}
所有潜在客户都会出现在结果中,两位客户的记录会补充其套餐信息,且两个 status 字段都会保留:
{
"rows": [
{"email": "[email protected] ", "name": "Ana Silva", "status": "lead", "plan": "Pro", "mrr": 49, "right_status": "active", "_joinStatus": "matched", "_matchCount": 1},
{"email": "[email protected]", "name": "Ben Okafor", "status": "lead", "plan": "Starter", "mrr": 19, "right_status": "trial", "_joinStatus": "matched", "_matchCount": 1},
{"email": "[email protected]", "name": "Cara Lind", "status": "lead", "_joinStatus": "left_only", "_matchCount": 0},
{"email": "[email protected]", "name": "Dev Patel", "status": "lead", "_joinStatus": "left_only", "_matchCount": 0}
],
"summary": {
"leftRecordCount": 4,
"rightRecordCount": 3,
"joinType": "left",
"keyMatching": "normalized",
"multipleMatches": "all",
"leftKeyFields": ["email"],
"rightKeyFields": ["contact_email"],
"counts": {"matchedRows": 2, "passthroughRows": 2, "leftRowsMatched": 2, "rightRowsMatched": 2, "leftRowsUnmatched": 2, "rightRowsUnmatched": 1},
"leftMatchRate": 0.5,
"rightMatchRate": 0.667,
"outputRowCount": 4,
"warnings": []
}
}
将 joinType 改为 leftAnti,同一次调用就只会返回 Cara 和 Dev,也就是没有账单记录的潜在客户。
限制
- 每次调用最多 500 行,
leftRows和rightRows的总行数均计入限制。对于较大的列表,如果使用左联接、内联接或leftAnti联接,可将leftRows拆分为多次调用,并在每次调用中发送相同的rightRows。 - 每次调用最多 500 条输出行。只有多对多联接(两侧都包含重复键,且
multipleMatches设为all)才可能产生比输入更多的行。如果输出超出限制,调用会被拒绝,并告知预测的行数和可调整的选项,不会截断结果:multipleMatches: "first"始终不会超出限制。
超出任何限制时,都会返回清晰的提示,而不会静默失败。
隐私
你的行数据只会在内存中处理,绝不会存储。为了了解使用了哪些工具,每次调用都会记录工具名称、行数、调用是否成功、应用报告的客户端名称、国家/地区,以及调用者 ID 的单向哈希值。你的数据、调用参数和 IP 地址绝不会保存在该日志中。
另外也可使用
同一引擎也在 Apify Store 上以 Dataset Join & Merge 的形式提供。它同样可以读取 Apify 数据集、CSV、Excel 和 JSON 文件,以及通过 URL 访问的 Google Sheets,并支持两侧各最多 100,000 行;可将结果导出为 CSV 或 Excel,追加到一个在多次运行中逐渐累积数据的命名数据集中,也可以通过 POST 将结果发送到 Webhook。
由 Nero Labs 构建。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。