mcpField
M
mcp-dealfinder

mcp-dealfinder

Local
github.com/petrovicistefanBusiness & Marketing0Updated 1w ago

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

  1. 01Search and filter product feeds
  2. 02Compare product prices
  3. 03Build tracked affiliate links
  4. 04Support CSV and JSON feeds
  5. 05Include disclosure with tracked links

Use cases

  1. 01Recommend products from affiliate feeds
  2. 02Compare prices across listed products
  3. 03Find products for buying guides
  4. 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.

mcp.json · Universal config
{
"mcpServers": {
"petrovicistefan-mcp-dealfinder": {
"command": "npx",
"args": [
"-y",
"mcp-dealfinder"
]
}
}
}
Run commandnpx -y mcp-dealfinder

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-dealfinder0.1.1

Tools

4

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
sortenumNorelevance | price_asc | price_desc
limitintegerNo
querystringYesKeywords, e.g. 'noise cancelling headphones'. Diacritics are ignored.
sub_idstringNoOptional tracking tag (e.g. a campaign or post name).
networkstringNoRestrict to one affiliate network key.
currencystringNoISO code, e.g. EUR. Only products in this currency match.
merchantstringNoRestrict to merchants whose name contains this text.
max_pricenumberNo
min_pricenumberNo

Details

From the project README

MCP 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.

npm version npm downloads Glama License: MIT GitHub stars


⚡ Quick Install

Add to Cursor

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

DealFinder Demo



📋 Table of Contents


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

ToolDescriptionKey Parameters
search_productsSearch 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_productsSide-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_linkReturns the affiliate link for one product (with your IDs and disclosure text). Use ref from search results.ref (required), sub_id
dealfinder_statusShows 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, .gz automatically decompressed
  • European price parsing: Handles 1.299,99, 19,99, and € 24.50 formats
  • 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 check loads 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.

FeatureMCP DealFinderOpenAffiliateAffiliate.com MCPFewsats 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
CostFree, MITFree, MITPaid subscriptionWas 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, .gz automatically handled
  • columns — 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 kindHow It Builds LinksRequirements
amazonAdds tag (+ ascsubtag) to amazon.* product URLsFeed must contain product URLs. Amazon offers no official feeds; supply your own product list.
awinBuilds awin1.com/cread.php deep linksNeeds publisherId and merchantId (awinmid) per feed.
templateGeneric 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:

ProjectDescription
mcp-security-guardAudit MCP servers for tool poisoning, rug pulls, and OWASP MCP Top 10 vulnerabilities
mcp-cost-optimizerTrack and reduce AI API costs across providers
mcp-database-doctorDatabase schema analysis and optimization recommendations
mcp-dependency-doctorDependency health checks and vulnerability scanning
mcp-seo-auditorSEO analysis and recommendations for websites
mcp-api-guardianAPI security and rate limiting analyzer
mcp-marketplaceBrowse 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

Markdown supported

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.