dealfinder
DealFinder turns your affiliate product feeds into searchable, comparison-ready results with your own tracked buy links.
search_products — Keyword search across loaded feeds (diacritics-insensitive), filterable by price range, currency, network, and merchant; sort by relevance or price; up to 20 results, each with price, merchant, and a buy link plus a
reffor reuse.compare_products — Side-by-side details for 2–5 products by
ref, flagging the cheapest when all share one currency.get_buy_link — Fetch the affiliate link for a single product by
ref, with your IDs and disclosure text.dealfinder_status — Inspect loaded feeds (counts, last refresh, errors) and which networks generate tracked links.
Tracking tags — Every tool accepts an optional
sub_idto attribute clicks to a campaign, post, or page.Safe fallback — If a tracked link can't be built, the plain merchant URL is returned marked
tracked: false.Read-only, local — All tools are non-destructive and run over stdio; feed data never leaves your machine.
Builds Amazon affiliate buy links by adding your Amazon Associates tag (and optional ascsubtag) to amazon.* product URLs found in your feeds, so search results and comparisons return properly tracked Amazon links.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dealfinderfind noise-cancelling headphones under 150 EUR and compare the top two"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
⚡ 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=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1kZWFsZmluZGVyIl19Manual 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-dealfinderClaude 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-dealfinderEnvironment 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
Related MCP server: admitad-mcp
🎬 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
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. |
|
compare_products | Side-by-side comparison of 2–5 products by |
|
get_buy_link | Returns the affiliate link for one product (with your IDs and disclosure text). Use |
|
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 decompressedEuropean price parsing: Handles
1.299,99,19,99, and€ 24.50formatsGraceful fallback: If a tracked link can't be built (missing config), returns the plain merchant URL and marks it
tracked: falseValidation 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 | How It Builds Links | Requirements |
| Adds | Feed must contain product URLs. Amazon offers no official feeds; supply your own product list. |
| Builds | Needs |
| Generic template for CJ, Impact, 2Performant, etc. | Copy the deep-link format from your network's link builder and put |
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 mynetworkIt 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 checkLoads 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 APIFAQ
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 |
Audit MCP servers for tool poisoning, rug pulls, and OWASP MCP Top 10 vulnerabilities | |
Track and reduce AI API costs across providers | |
Database schema analysis and optimization recommendations | |
Dependency health checks and vulnerability scanning | |
SEO analysis and recommendations for websites | |
API security and rate limiting analyzer | |
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.
Available Tools
4 toolscompare_productsCompare productsARead-only
Side-by-side data for 2–5 products (by ref). Marks the cheapest when all share one currency.
| Name | Required | Description | Default |
|---|---|---|---|
| refs | Yes | ||
| sub_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint/openWorldHint, the description discloses a real output behavior: the cheapest product is marked, but only when all inputs share one currency. That conditional is genuinely useful context an agent could not get from the annotations. It still omits what happens on mixed currencies or output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, with the core scoping constraint and the cheapest-marking behavior front-loaded. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, no-output-schema tool whose annotations already cover the safety profile, the description covers the essentials plus the currency condition. The gap is the unexplained `sub_id` parameter, which is the main reason this is not a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full parameter burden. It explains that `refs` are product references limited to 2–5 (though the bounds already live in the schema) but says nothing about `sub_id` or its format, leaving one of two parameters entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Side-by-side data for 2–5 products') and the identifier used ('by `ref`'), which is enough to distinguish it from search_products at a glance. It does not explicitly name the sibling it complements, so differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The comparison intent is implied by the name and description, but there is no explicit when-to-use trigger, no prerequisite (e.g. obtaining refs from search_products first), and no mention of when not to use it. Adequate but inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dealfinder_statusDealFinder statusARead-only
Shows loaded feeds (counts, last refresh, errors) and which networks produce tracked links.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. Beyond that, the description discloses the shape of what is returned (feed counts, last refresh, errors, which networks produce tracked links), which is valuable since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the resource (loaded feeds) and parenthetically enumerates the key data points. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only status tool with no output schema, the description adequately covers what the agent will get back. It stops short of describing failure modes (e.g., what an error field implies) but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it reports loaded feeds with counts, last-refresh times, errors, and tracked-link networks. That is clearly distinguishable from product/link siblings like get_buy_link and search_products, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use is given. Usage is only implied by the name and content (a diagnostic/health check for the DealFinder integration), so an agent must infer that this is for verifying feed and link-tracking state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buy_linkGet buy linkCRead-only
Return the (affiliate) link for one product by ref.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| sub_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds only the parenthetical '(affiliate)', which hints at monetization context but says nothing about link lifetime, redirect behavior, required auth, or rate limits — little value beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the resource and key are front-loaded. It is efficient, though there is so little content that efficiency verges on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an openWorld affiliate-link tool with an undocumented second parameter and no output schema, the description leaves an agent guessing about ref provenance, sub_id purpose, and the link's form. Annotations cover read safety only, so the description should do substantially more.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, but it only names `ref` and never explains what a ref is or where to obtain it. The second parameter `sub_id` is not mentioned at all, leaving an affiliate sub-tracking argument completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Return ... link for one product') and names the lookup key (`ref`), so an agent can tell it apart from search_products and compare_products. It stops short of explicitly contrasting itself with those siblings, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus search_products, compare_products, or dealfinder_status, and no mention of prerequisites (e.g. needing a ref from a prior search). The implied workflow is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsSearch productsARead-only
Search the loaded affiliate product feeds by keywords. Returns products with price, merchant and a buy link. Filters: price range, currency (no conversion), network, merchant. Use the returned ref in other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | relevance | |
| limit | No | ||
| query | Yes | Keywords, e.g. 'noise cancelling headphones'. Diacritics are ignored. | |
| sub_id | No | Optional tracking tag (e.g. a campaign or post name). | |
| network | No | Restrict to one affiliate network key. | |
| currency | No | ISO code, e.g. EUR. Only products in this currency match. | |
| merchant | No | Restrict to merchants whose name contains this text. | |
| max_price | No | ||
| min_price | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds real behavioral context beyond that: results include price/merchant/buy link, filters are non-converting for currency, and the returned `ref` is meant to be passed into other tools. Pagination/result-count behavior (limit max 20) is left to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with purpose then return shape then filters then chaining. No filler; it could be marginally sharper by folding the filter list and ref note together, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter search tool with no output schema, the description covers purpose, return contents, and most filters, which is adequate. It stops short on sort/limit semantics and any note about result-set sizing or pagination, which an agent would otherwise have to dig out of the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 56%, and the description only names the filter families (price range, currency, network, merchant) without covering sort, limit, or the query semantics. The parenthetical '(no conversion)' for currency is a genuinely useful semantic addition the schema lacks, but the undocumented params (sort, limit) remain unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search the loaded affiliate product feeds by keywords') and summarizes what comes back (price, merchant, buy link). It does not explicitly distinguish itself from siblings like compare_products or get_buy_link, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'search ... by keywords', and 'Use the returned `ref` in other tools' gives useful downstream chaining guidance. However, there is no explicit when-to-use vs compare_products (which presumably also queries products) or a statement of when this is the wrong tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
compare_products - First observed
dealfinder_status - First observed
get_buy_link - First observed
search_products
TDQS
Scored across 4 tools
Each tool has a distinct primary role: search finds products, compare juxtaposes 2-5 refs, get_buy_link resolves a single ref to a link, and status reports feed health. The only mild overlap is that search_products already returns a buy link, so get_buy_link's boundary is slightly less sharp, but the single-ref use case is clear.
Three tools follow a clean verb_noun pattern (get_buy_link, search_products, compare_products). The status tool deviates slightly by prefixing the server name (dealfinder_status), but the set is still predictable and readable.
Four tools is a tight, well-scoped surface for a read-only affiliate deal finder: search, inspect feeds, compare, and resolve links. Each tool earns its place with no redundancy.
The core lifecycle of finding, comparing, and linking products is covered, plus feed status. Minor gaps exist (no explicit single-product detail fetch beyond search, no category/browse or feed refresh), but agents can work around these using search results.
Maintenance
Related MCP Connectors
AI-powered product search, affiliate links, and price negotiation for e-commerce platforms
AI-agent product catalog: search, lookup & purchase routing over verified merchant data.
Product price checks and affiliate link building for AI shopping agents.
Live product discovery for AI shopping agents, with shopper-approved retailer handoff.
1
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAffiliate product search for AI agents. Indexes structured merchant feeds — real prices, live stock, affiliate links built in. Works with any MCP client.MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to browse Admitad affiliate programs, discover product feeds, and search products directly from chat.282-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search, compare, and buy products across connected WooCommerce stores with human-in-the-loop approval.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to search products and generate affiliate links across European and global affiliate networks, automating product discovery and link creation for monetization.5MIT