About mcp-dealfinder
MCP DealFinder is an MCP server for affiliate marketers that searches product feeds and returns tracked purchase links using the marketer’s own affiliate IDs. It supports local or URL-based CSV and JSON feeds and includes disclosure text with tracked links.
Key features
- 01Search and filter product feeds
- 02Compare product prices
- 03Build tracked affiliate links
- 04Support CSV and JSON feeds
- 05Include disclosure with tracked links
Use cases
- 01Recommend products from affiliate feeds
- 02Compare prices across listed products
- 03Find products for buying guides
- 04Research products by merchant or network
MCP support
Provides MCP tools to search products, compare items, retrieve affiliate links, and check feed status. Results can use affiliate IDs configured for supported networks or link templates.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| sort | enum | No | relevance | price_asc | price_desc |
| limit | integer | No | |
| query | string | Yes | Keywords, e.g. 'noise cancelling headphones'. Diacritics are ignored. |
| sub_id | string | No | Optional tracking tag (e.g. a campaign or post name). |
| network | string | No | Restrict to one affiliate network key. |
| currency | string | No | ISO code, e.g. EUR. Only products in this currency match. |
| merchant | string | No | Restrict to merchants whose name contains this text. |
| max_price | number | No | |
| min_price | number | No |
Details
From the project READMEMCP DealFinder
Turn your affiliate feeds into AI shopping answers with your tracked links and a clear disclosure.
MCP server for affiliate marketers that lets AI assistants search product feeds from Awin, Amazon, Commission Junction, Impact, 2Performant, and any network — and return buy links built with your own affiliate IDs. Works with Claude, ChatGPT, Cursor, and any MCP-compatible AI.
⚡ Quick Install
Add to Cursor
One-click install: Click the badge above or use this deeplink:
cursor://anysphere.cursor-deeplink/mcp/install?name=dealfinder&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1kZWFsZmluZGVyIl19
Manual setup: Add to your Cursor MCP settings or .cursor/mcp.json:
{
"mcpServers": {
"dealfinder": {
"command": "npx",
"args": ["-y", "mcp-dealfinder"],
"env": { "DEALFINDER_CONFIG": "/absolute/path/to/dealfinder.config.json" }
}
}
}
Add to Claude
Claude Code (CLI):
claude mcp add dealfinder -- npx -y mcp-dealfinder
Claude Desktop: Add to claude_desktop_config.json:
{
"mcpServers": {
"dealfinder": {
"command": "npx",
"args": ["-y", "mcp-dealfinder"],
"env": { "DEALFINDER_CONFIG": "/absolute/path/to/dealfinder.config.json" }
}
}
}
Add to VS Code
One-click install: Install in VS Code
Manual setup: Create or edit .vscode/mcp.json in your workspace:
{
"mcpServers": {
"dealfinder": {
"command": "npx",
"args": ["-y", "mcp-dealfinder"],
"env": { "DEALFINDER_CONFIG": "/absolute/path/to/dealfinder.config.json" }
}
}
}
Run with npx
npx -y mcp-dealfinder
Environment Variables
Set DEALFINDER_CONFIG to the absolute path of your configuration file containing affiliate network credentials and feed URLs.
Demo Mode: Run without DEALFINDER_CONFIG to test with fictional demo products.
"Find noise-cancelling headphones under 150 EUR and compare the top two"
⭐ Star this repository if it helps you! → Give a star
🎬 Demo

📋 Table of Contents
- Why MCP DealFinder?
- Features
- Use Cases & Example Prompts
- How It Compares
- Configure Your Feeds
- Supported Networks
- Compliance
- Build on It (Library API)
- Development
- FAQ
- Contributing
- License
- About the Author
Why MCP DealFinder?
You're an affiliate marketer. You want AI to recommend products from your feeds with your tracked links — not send customers to Amazon with someone else's affiliate ID, or hallucinate product details.
DealFinder solves this:
- ✅ Search your own product feeds from any affiliate network
- ✅ Every link includes your affiliate IDs (never generic or missing)
- ✅ Clear disclosure text ships with every tracked link
- ✅ Works with Awin, Amazon, CJ, Impact, 2Performant, and any deep-link network
- ✅ Ranked by relevance or price, never commission (keeps it honest)
- ✅ Local CSV/JSON feeds (no API keys, no rate limits, no external dependencies)
Features
Tools
| Tool | Description | Key Parameters |
|---|---|---|
| search_products | Search affiliate product feeds by keywords. Returns products with price, merchant, and buy link. Filters by price range, currency (no conversion), network, and merchant. Diacritics-insensitive. Returns up to 20 results ranked by relevance or price. | query (required), max_price, min_price, currency, network, merchant, sort, limit, sub_id |
| compare_products | Side-by-side comparison of 2–5 products by ref. Marks the cheapest when all share one currency. Full product details included. | refs (2-5 refs, required), sub_id |
| get_buy_link | Returns the affiliate link for one product (with your IDs and disclosure text). Use ref from search results. | ref (required), sub_id |
| dealfinder_status | Shows loaded feeds (counts, last refresh, errors) and which networks produce tracked links. Config diagnostics. | None |
All tools accept an optional sub_id parameter to tag links for tracking (e.g., campaign name, post ID, or page slug). This appears in your network's reports.
Core Capabilities
- Multi-network support: Awin, Amazon Associates, CJ, Impact, 2Performant, Profitshare, or any network with a deep-link template
- Feed flexibility: CSV or JSON, local files or URLs,
.gzautomatically decompressed - European price parsing: Handles
1.299,99,19,99, and€ 24.50formats - Graceful fallback: If a tracked link can't be built (missing config), returns the plain merchant URL and marks it
tracked: false - Validation tool:
npm run checkloads feeds and reports product counts, coverage, price ranges, and sample links before you connect an AI
Use Cases & Example Prompts
1. Product Recommendations
"Find the best ergonomic office chair under $300"
"Show me noise-cancelling headphones available from these merchants: TechGear, SoundPro"
2. Price Comparisons
"Compare the top 3 espresso machines between 200-400 EUR"
"Find the cheapest laptop with 16GB RAM from my Awin feed"
3. Niche Research
"Search for vegan protein powder from Impact merchants"
"What cameras under 800 EUR are in my feeds right now?"
4. Content Creation
"Find 5 winter jackets under $150 and write a comparison post with affiliate links"
"Search for budget gaming keyboards and create a buying guide"
How It Compares
As of October 2026. Corrections welcome.
| Feature | MCP DealFinder | OpenAffiliate | Affiliate.com MCP | Fewsats amazon-mcp |
|---|---|---|---|---|
| Your own affiliate IDs | ✅ All networks | ❌ Registry only, no personalization | ✅ Account-based | ✅ Amazon only |
| Local feeds (no API) | ✅ CSV/JSON | ❌ Hosted registry | ❌ Requires API subscription | ❌ Hosted backend |
| Multi-network | ✅ Awin, Amazon, CJ, Impact, 2Performant, generic templates | ✅ 349+ programs (registry) | ✅ Network search | ❌ Amazon only |
| Product search | ✅ Keyword, price, merchant filters | ✅ Program search | ✅ Product search | ⚠️ Discontinued |
| Tracked link generation | ✅ Per network config | ❌ Program info only | ✅ OAuth-based | ⚠️ Service down |
| Disclosure included | ✅ On every link | ➖ N/A | ➖ Network dependent | ➖ N/A |
| Setup complexity | ⭐⭐ (config file + feeds) | ⭐ (one URL) | ⭐⭐⭐ (OAuth + subscription) | ⚠️ No longer maintained |
| Cost | Free, MIT | Free, MIT | Paid subscription | Was paid (defunct) |
DealFinder is for you if:
- You already have affiliate feeds from Awin, Amazon, or other networks
- You want full control over your data (local CSVs, no external API dependencies)
- You need tracked links with your IDs, not program discovery
Consider alternatives if:
- OpenAffiliate — You're exploring new affiliate programs and need a searchable registry (not product search).
- Affiliate.com MCP — You're already an Affiliate.com customer and want OAuth-integrated product search.
Configure Your Feeds
Copy examples/dealfinder.config.example.json to dealfinder.config.json (gitignored) and set the DEALFINDER_CONFIG environment variable.
Configuration Structure
{
"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— Your affiliate account details by network name (used to build tracked links)feeds— Product data sources: CSV or JSON, local file path or URL,.gzautomatically handledcolumns— Maps your feed's column names to DealFinder's expected fields
Security: Feed URLs often contain API keys. Keep them in
dealfinder.config.json, never commit to version control.
Supported Networks
Network kind | How It Builds Links | Requirements |
|---|---|---|
amazon | Adds tag (+ ascsubtag) to amazon.* product URLs | Feed must contain product URLs. Amazon offers no official feeds; supply your own product list. |
awin | Builds awin1.com/cread.php deep links | Needs publisherId and merchantId (awinmid) per feed. |
template | Generic template for CJ, Impact, 2Performant, etc. | Copy the deep-link format from your network's link builder and put {urlEncoded} where the destination URL goes. Also available: {url}, {subId}, any key from params. |
Derive a Link Template (for CJ, Impact, etc.)
Not sure about your network's link format? Generate one test link in your network's dashboard, then run:
npm run link-template -- --link "<generated link>" --url "<product URL>" --name mynetwork
It extracts your IDs, replaces the destination with {urlEncoded}, prints the networks config entry, and verifies by rebuilding your link.
Graceful Fallback
If a tracked link cannot be built (missing account config or placeholder), DealFinder returns the plain merchant URL and marks it tracked: false. You never get a broken link.
Validate Before Connecting
DEALFINDER_CONFIG=$PWD/dealfinder.config.json npm run check
Loads every feed and reports:
- Product counts and field coverage
- Price ranges and currency distribution
- Sample links (tracked and plain)
- Configuration errors that would prevent tracking
Compliance — Please Read
Legal Requirements
- ✅ Use official feeds/APIs only. Scraping violates most networks' terms of service.
- ✅ Check each program's terms before use, including whether AI-assisted promotion is allowed.
- ✅ Use your own affiliate IDs on your own traffic. Networks attribute sales to the publisher who referred the visitor — do not rotate or share IDs.
- ❌ Do not buy through your own affiliate links. Most programs forbid self-referral.
- ✅ Keep the disclosure visible next to affiliate links. DealFinder includes disclosure text with every tracked link — make sure your AI shows it.
Data Accuracy
- Prices reflect the last feed refresh (
refreshHours, default 6) and are not converted between currencies. - Always display the product's native currency to avoid misleading customers.
Build on It
DealFinder exports a library API. Use startServer or createServer with a registerExtras(server, toolkit) callback to add your own MCP tools while reusing product presentation and link building:
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));
}
);
},
});
This example adds a cheapest_of tool that takes product references and returns the cheapest one. You can extend DealFinder with custom filtering, scoring, or integration logic without forking.
Development
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/
Project Structure
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
FAQ
Why does DealFinder need my affiliate IDs?
Without your IDs, the AI would return plain merchant URLs (no commission for you) or someone else's affiliate link. DealFinder ensures every tracked link uses your credentials.
Can I use DealFinder with Amazon Associates?
Yes, but Amazon offers no official product feeds, and the Creators API requires ≥10 qualifying sales in 30 days. You must supply your own list of Amazon product URLs. DealFinder will add your tag to each link.
Does DealFinder work with network APIs, or only CSV feeds?
Currently CSV/JSON feeds (local or URL). API integrations (Awin Product API, CJ Product Catalog, etc.) are planned for future releases.
What if a product's price changed since the feed was refreshed?
The AI sees the last refresh's price. Set refreshHours in your feed config (default 6 hours) to balance freshness and load. Always tell customers "prices subject to change" in your disclosure.
Can I track which page or post generated a sale?
Yes! Every tool accepts an optional sub_id parameter. Pass a unique identifier (e.g., post-123, email-campaign-nov) and it will be included in your affiliate links, visible in your network's reporting.
Is my feed data sent anywhere?
No. DealFinder runs locally via stdio. Feeds are loaded into memory, never transmitted. Your config file (which may contain API keys) stays on your machine.
Contributing
Contributions are welcome! Please:
- Keep changes focused and well-tested
- Add tests for new network templates
- Update documentation for new features
See GitHub Issues for open tasks and feature requests.
License
MIT License - see LICENSE for details.
Copyright © 2026 Stefan Petrovici
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
About the Author
Built by Stefan Petrovici, software engineer based in Iași, Romania.
I'm open to work. I build web and mobile apps, take ideas from first sketch to production, and work project-based or time-based with clients worldwide. If you need an MCP server, an AI assistant for your shop, or help integrating affiliate marketing with AI — get in touch.
⭐ Support This Project
If MCP DealFinder helps you, star this repository!
A GitHub star helps other affiliate marketers discover the project and keeps me motivated to maintain it. Thank you for supporting open source!
More by the Author
MCP servers by Stefan Petrovici:
| Project | Description |
|---|---|
| mcp-security-guard | Audit MCP servers for tool poisoning, rug pulls, and OWASP MCP Top 10 vulnerabilities |
| mcp-cost-optimizer | Track and reduce AI API costs across providers |
| mcp-database-doctor | Database schema analysis and optimization recommendations |
| mcp-dependency-doctor | Dependency health checks and vulnerability scanning |
| mcp-seo-auditor | SEO analysis and recommendations for websites |
| mcp-api-guardian | API security and rate limiting analyzer |
| mcp-marketplace | Browse the full MCP server collection |
Explore the full collection at mcp-marketplace.
MCP DealFinder is not affiliated with Awin, Amazon, Commission Junction, Impact, 2Performant, or any other affiliate network mentioned in this document.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.