关于 mcp-dealfinder
MCP DealFinder 是面向联盟营销者的 MCP 服务,可搜索商品 Feed,并使用营销者自己的联盟 ID 返回跟踪购买链接。支持本地或 URL 上的 CSV、JSON Feed,跟踪链接附带披露文本。
主要功能
- 01搜索和筛选商品 Feed
- 02比较商品价格
- 03生成跟踪联盟链接
- 04支持 CSV 和 JSON Feed
- 05跟踪链接附带披露文本
适用场景
- 01根据联盟 Feed 推荐商品
- 02比较列表中商品的价格
- 03为购物指南查找商品
- 04按商家或网络研究商品
MCP 相关
提供 MCP 工具,用于搜索商品、比较商品、获取联盟链接及查看 Feed 状态。结果可使用为受支持网络或链接模板配置的联盟 ID。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sort | enum | 否 | relevance | price_asc | price_desc |
| limit | integer | 否 | |
| query | string | 是 | 关键词,例如 'noise cancelling headphones'。忽略变音符号。 |
| sub_id | string | 否 | 可选的跟踪标签(例如活动或帖子名称)。 |
| network | string | 否 | 限制为一个联盟网络键。 |
| currency | string | 否 | ISO 代码,例如 EUR。仅匹配使用此货币的商品。 |
| merchant | string | 否 | 限制为名称包含此文本的商家。 |
| max_price | number | 否 | |
| min_price | number | 否 |
详细介绍
MCP DealFinder
将你的联盟营销商品 Feed 转化为 AI 购物答案,并附上你的跟踪链接和清晰的披露说明。
面向联盟营销人员的 MCP 服务,可让 AI 助手搜索来自 Awin、Amazon、Commission Junction、Impact、2Performant 及任何联盟网络的商品 Feed,并返回使用你自己的联盟 ID生成的购买链接。适用于 Claude、ChatGPT、Cursor 及任何兼容 MCP 的 AI。
⚡ 快速安装
添加到 Cursor
**一键安装:**点击上方徽章,或使用此深层链接:
cursor://anysphere.cursor-deeplink/mcp/install?name=dealfinder&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1kZWFsZmluZGVyIl19
**手动设置:**添加到 Cursor MCP 设置或 .cursor/mcp.json:
{
"mcpServers": {
"dealfinder": {
"command": "npx",
"args": ["-y", "mcp-dealfinder"],
"env": { "DEALFINDER_CONFIG": "/absolute/path/to/dealfinder.config.json" }
}
}
}
添加到 Claude
Claude Code(CLI):
claude mcp add dealfinder -- npx -y mcp-dealfinder
**Claude Desktop:**添加到 claude_desktop_config.json:
{
"mcpServers": {
"dealfinder": {
"command": "npx",
"args": ["-y", "mcp-dealfinder"],
"env": { "DEALFINDER_CONFIG": "/absolute/path/to/dealfinder.config.json" }
}
}
}
添加到 VS Code
一键安装:在 VS Code 中安装
**手动设置:**在工作区中创建或编辑 .vscode/mcp.json:
{
"mcpServers": {
"dealfinder": {
"command": "npx",
"args": ["-y", "mcp-dealfinder"],
"env": { "DEALFINDER_CONFIG": "/absolute/path/to/dealfinder.config.json" }
}
}
}
使用 npx 运行
npx -y mcp-dealfinder
环境变量
将 DEALFINDER_CONFIG 设置为配置文件的绝对路径,该文件包含联盟网络凭据和 Feed URL。
**演示模式:**不设置 DEALFINDER_CONFIG 即可使用虚构的演示商品进行测试。
“查找 150 EUR 以下的降噪耳机,并比较最好的两款”
⭐ 如果这个仓库对你有帮助,请为它点星! → 点亮星标
🎬 演示

📋 目录
为什么选择 MCP DealFinder?
**你是一名联盟营销人员。**你希望 AI 从你的 Feed 中推荐商品,并使用你的跟踪链接——而不是把客户引到带有别人联盟 ID 的 Amazon 页面,也不是编造商品详情。
DealFinder 可以解决这些问题:
- ✅ 搜索来自任意联盟网络的自有商品 Feed
- ✅ 每个链接都包含你的联盟 ID(绝不会使用通用 ID 或遗漏 ID)
- ✅ 每个跟踪链接都附带清晰的披露文本
- ✅ 支持 Awin、Amazon、CJ、Impact、2Performant 及任何深层链接网络
- ✅ 按相关性或价格排序,绝不按佣金排序(保持公正)
- ✅ 支持本地 CSV/JSON Feed(无需 API 密钥、没有速率限制、无外部依赖)
功能
工具
| 工具 | 描述 | 关键参数 |
|---|---|---|
| search_products | 按关键词搜索联盟商品 Feed。返回包含价格、商家和购买链接的商品。可按价格范围、货币(不进行换算)、网络和商家筛选。搜索不区分变音符号。最多返回 20 个结果,并按相关性或价格排序。 | query(必填)、max_price、min_price、currency、network、merchant、sort、limit、sub_id |
| compare_products | 根据 ref 对 2–5 件商品进行并排比较。如果所有商品使用同一种货币,则标出最便宜的商品。包含完整的商品详情。 | refs(2-5 个 ref,必填)、sub_id |
| get_buy_link | 返回一件商品的联盟链接(包含你的 ID 和披露文本)。使用搜索结果中的 ref。 | ref(必填)、sub_id |
| dealfinder_status | 显示已加载的 Feed(数量、上次刷新时间、错误)以及哪些网络会生成可跟踪链接。提供配置诊断信息。 | 无 |
所有工具均接受可选的 sub_id 参数,用于给链接添加跟踪标签(例如活动名称、帖子 ID 或页面别名)。该标签会显示在你的网络报告中。
核心功能
- 支持多个网络:Awin、Amazon Associates、CJ、Impact、2Performant、Profitshare,或任何支持深层链接模板的网络
- Feed 灵活性:支持 CSV 或 JSON、本地文件或 URL,并自动解压
.gz - 欧洲价格解析:支持
1.299,99、19,99和€ 24.50等格式 - 优雅降级:如果无法生成可跟踪链接(缺少配置),则返回普通商家 URL,并将其标记为
tracked: false - 验证工具:在连接 AI 之前,运行
npm run check加载 Feed,并报告商品数量、覆盖范围、价格区间和示例链接
使用场景与示例提示词
1. 商品推荐
“找一把 300 美元以下、符合人体工学的最佳办公椅”
“展示这些商家有售的降噪耳机:TechGear、SoundPro”
2. 价格比较
“比较价格在 200–400 EUR 之间的 3 款热门意式咖啡机”
“从我的 Awin Feed 中找出最便宜的 16GB RAM 笔记本电脑”
3. 小众品类调研
“搜索 Impact 商家提供的纯素蛋白粉”
“我目前的 Feed 中有哪些 800 EUR 以下的相机?”
4. 内容创作
“找 5 件 150 美元以下的冬季夹克,并撰写一篇包含联盟链接的对比文章”
“搜索平价游戏键盘,并制作一份购买指南”
比较
截至 2026 年 10 月。欢迎提出更正意见。
| 功能 | MCP DealFinder | OpenAffiliate | Affiliate.com MCP | Fewsats amazon-mcp |
|---|---|---|---|---|
| 使用自己的联盟 ID | ✅ 支持所有网络 | ❌ 仅注册表,不支持个性化 | ✅ 基于账户 | ✅ 仅支持 Amazon |
| 本地 Feed(无需 API) | ✅ CSV/JSON | ❌ 托管注册表 | ❌ 需要 API 订阅 | ❌ 托管后端 |
| 多网络 | ✅ Awin、Amazon、CJ、Impact、2Performant、通用模板 | ✅ 349+ 个计划(注册表) | ✅ 网络搜索 | ❌ 仅支持 Amazon |
| 产品搜索 | ✅ 关键词、价格、商家筛选 | ✅ 计划搜索 | ✅ 产品搜索 | ⚠️ 已停止服务 |
| 跟踪链接生成 | ✅ 按网络配置 | ❌ 仅提供计划信息 | ✅ 基于 OAuth | ⚠️ 服务已停机 |
| 包含披露信息 | ✅ 每个链接都包含 | ➖ 不适用 | ➖ 取决于网络 | ➖ 不适用 |
| 设置复杂度 | ⭐⭐(配置文件 + Feed) | ⭐(一个 URL) | ⭐⭐⭐(OAuth + 订阅) | ⚠️ 已不再维护 |
| 费用 | 免费,MIT | 免费,MIT | 付费订阅 | 曾经付费(已停用) |
以下情况适合使用 DealFinder:
- 你已经从 Awin、Amazon 或其他网络获取了联盟 Feed
- 你希望完全掌控自己的数据(本地 CSV,无外部 API 依赖)
- 你需要使用自己的 ID 生成跟踪链接,而不是发现计划
以下情况可考虑其他方案:
- OpenAffiliate — 你正在探索新的联盟计划,需要可搜索的注册表(而非产品搜索)。
- Affiliate.com MCP — 你已经是 Affiliate.com 的客户,希望使用集成 OAuth 的产品搜索。
配置 Feed
将 examples/dealfinder.config.example.json 复制为 dealfinder.config.json(已加入 gitignore),并设置 DEALFINDER_CONFIG 环境变量。
配置结构
{
"networks": {
"awin": {
"kind": "awin",
"publisherId": "YOUR_PUBLISHER_ID",
"apiKey": "YOUR_API_KEY"
},
"amazon": {
"kind": "amazon",
"tag": "yourtag-20"
}
},
"feeds": [
{
"url": "https://example.com/feed.csv.gz",
"network": "awin",
"refreshHours": 6,
"columns": {
"name": "product_name",
"price": "price",
"currency": "currency",
"url": "deep_link"
}
}
]
}
networks— 按网络名称配置你的联盟账户详情(用于生成跟踪链接)feeds— 产品数据源:CSV 或 JSON、本地文件路径或 URL,自动处理.gzcolumns— 将 Feed 的列名映射到 DealFinder 所需的字段
安全提示: Feed URL 通常包含 API 密钥。请将其保存在
dealfinder.config.json中,切勿提交到版本控制系统。
支持的网络
网络 kind | 链接生成方式 | 要求 |
|---|---|---|
amazon | 向 amazon.* 产品 URL 添加 tag(+ ascsubtag) | Feed 必须包含产品 URL。Amazon 不提供官方 Feed;请自行提供产品列表。 |
awin | 生成 awin1.com/cread.php 深层链接 | 每个 Feed 都需要 publisherId 和 merchantId(awinmid)。 |
template | CJ、Impact、2Performant 等网络的通用模板 | 从你的网络链接生成器中复制深层链接格式,并在目标 URL 所在位置填写 {urlEncoded}。还可使用:{url}、{subId}、params 中的任意键。 |
推导链接模板(适用于 CJ、Impact 等)
不确定你的网络使用什么链接格式?在网络控制面板中生成一个测试链接,然后运行:
npm run link-template -- --link "<generated link>" --url "<product URL>" --name mynetwork
此命令会提取你的 ID,将目标地址替换为 {urlEncoded},打印 networks 配置项,并通过重新生成链接进行验证。
优雅降级
如果无法生成跟踪链接(账户配置缺失或包含占位符),DealFinder 会返回商家原始 URL,并将其标记为 tracked: false。不会生成失效链接。
连接前进行验证
DEALFINDER_CONFIG=$PWD/dealfinder.config.json npm run check
加载所有 Feed 并报告:
- 产品数量和字段覆盖情况
- 价格范围和货币分布
- 链接示例(跟踪链接和原始链接)
- 会导致无法跟踪的配置错误
合规事项 — 请阅读
法律要求
- ✅ 仅使用官方 Feed/API。抓取数据违反了大多数网络的服务条款。
- ✅ 使用前查看各计划的条款,包括是否允许通过 AI 辅助推广。
- ✅ 在自己的流量中使用自己的联盟 ID。网络会将销售归因于引导访客的发布者——请勿轮换或共享 ID。
- ❌ 请勿通过自己的联盟链接购买。大多数计划都禁止自我推荐。
- ✅ 在联盟链接旁清晰展示披露声明。DealFinder 会在每个跟踪链接中附带披露文本——请确保 AI 将其展示出来。
数据准确性
- 价格反映最近一次 Feed 刷新时的数据(
refreshHours,默认值为 6),且不会进行货币换算。 - 请始终显示产品的原生货币,避免误导客户。
基于此构建
DealFinder 导出的是一个库 API。使用 startServer 或 createServer,并通过 registerExtras(server, toolkit) 回调添加自己的 MCP 工具,同时复用产品展示和链接构建功能:
import { startServer, z } from "mcp-dealfinder";
await startServer({
name: "my-dealfinder",
registerExtras: (server, kit) => {
server.registerTool(
"cheapest_of",
{ inputSchema: { refs: z.array(z.string()).min(2) } },
async ({ refs }) => {
const { products } = kit.resolveRefs(refs);
const cheapest = [...products].sort((a, b) => a.price - b.price)[0]!;
return kit.text(kit.present(cheapest));
}
);
},
});
此示例添加了一个 cheapest_of 工具,该工具接收产品引用并返回价格最低的产品。你可以通过自定义筛选、评分或集成逻辑扩展 DealFinder,而无需分叉项目。
开发
npm install
npm test # node:test: links, link-template, feeds, search, check, MCP server
npm run dev # run from source over stdio
npm run build # compile TypeScript to dist/
项目结构
src/
config.ts Config schema + loader (falls back to demo data)
feeds.ts CSV/JSON/gzip loading, price parsing, FeedStore
search.ts Ranked keyword search (relevance or price)
links.ts Affiliate deep-link builders per network
link-template.ts Derive a network template from one generated link
check.ts Config/feed validation report
server.ts MCP tools + extension hook
bootstrap.ts Config → feeds → server over stdio
lib.ts Public library API
常见问题
为什么 DealFinder 需要我的联盟 ID?
没有你的 ID,AI 就会返回普通商家 URL(你无法获得佣金),或者返回他人的联盟链接。DealFinder 可确保每个跟踪链接都使用你的凭据。
我可以将 DealFinder 与 Amazon Associates 搭配使用吗?
可以,但 Amazon 不提供官方产品 Feed,而且 Creators API 要求在 30 天内至少有 10 笔符合条件的销售。你必须提供自己的 Amazon 产品 URL 列表。DealFinder 会将你的 tag 添加到每个链接中。
DealFinder 支持网络 API,还是仅支持 CSV Feed?
目前支持 CSV/JSON Feed(本地文件或 URL)。API 集成(Awin Product API、CJ Product Catalog 等)计划在未来版本中推出。
如果产品价格在 Feed 刷新后发生变化怎么办?
AI 看到的是最近一次刷新时的价格。在 Feed 配置中设置 refreshHours(默认值为 6 小时),以平衡数据新鲜度和负载。请务必在披露声明中告知客户“价格可能会发生变化”。
我可以跟踪哪些页面或帖子带来了销售吗?
可以!每个工具都接受可选的 sub_id 参数。传入一个唯一标识符(例如 post-123、email-campaign-nov),它就会包含在你的联盟链接中,并显示在网络的报告里。
我的 Feed 数据会被发送到其他地方吗?
不会。DealFinder 通过 stdio 在本地运行。Feed 会加载到内存中,不会传输。你的配置文件(可能包含 API 密钥)会保留在你的设备上。
贡献
欢迎贡献!请:
- 保持改动集中,并充分测试
- 为新的网络模板添加测试
- 为新功能更新文档
请参阅 GitHub Issues 查看待处理任务和功能请求。
许可证
MIT License - 详情请参阅 LICENSE。
版权所有 © 2026 Stefan Petrovici
特此免费授予任何获得本软件及相关文档文件副本的人不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向其提供本软件的人也这样做,但须遵守以下条件:
本软件的所有副本或实质性部分均须包含上述版权声明和本许可声明。
本软件按「原样」提供,不附带任何明示或默示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。无论在任何情况下,对于因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任,无论是合同诉讼、侵权诉讼还是其他诉讼,作者或版权所有者均不承担责任。
关于作者
由软件工程师 Stefan Petrovici 开发,现居罗马尼亚雅西。
我正在寻找工作机会。 我开发 Web 和移动应用,能将创意从最初草图推进到正式上线,并与全球客户按项目或工时合作。如果你需要 MCP 服务、面向商店的 AI 助手,或需要帮助将联盟营销与 AI 集成——欢迎联系我。
⭐ 支持此项目
如果 MCP DealFinder 对你有帮助,请为此代码仓库点亮星标!
GitHub 星标能帮助其他联盟营销人员发现此项目,也能激励我持续维护它。感谢你支持开源!
作者的更多项目
Stefan Petrovici 开发的 MCP 服务:
| 项目 | 描述 |
|---|---|
| mcp-security-guard | 审计 MCP 服务,检查工具投毒、恶意接管和 OWASP MCP Top 10 漏洞 |
| mcp-cost-optimizer | 跟踪并降低各服务提供商的 AI API 成本 |
| mcp-database-doctor | 分析数据库架构并提供优化建议 |
| mcp-dependency-doctor | 检查依赖项健康状况并扫描漏洞 |
| mcp-seo-auditor | 分析网站 SEO 并提供建议 |
| mcp-api-guardian | 分析 API 安全性和速率限制 |
| mcp-marketplace | 浏览完整的 MCP 服务合集 |
在 mcp-marketplace 中探索完整合集。
MCP DealFinder 与本文档中提及的 Awin、Amazon、Commission Junction、Impact、2Performant 或任何其他联盟网络均无关联。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。