Skip to main content
Glama
Bargainer MCP Server

Bargainer MCP Server

Bargainer MCP Client πŸ›οΈ

A powerful Model Context Protocol (MCP) client for finding and comparing deals from multiple sources including Slickdeals, RapidAPI marketplace, and web scraping. Features a modern web-based chat interface for interactive deal searching.

Features ✨

  • Multi-Source Deal Aggregation: Integrates with Slickdeals API, RapidAPI marketplace, and web scraping

  • Interactive Chat Interface: Modern web UI with real-time messaging via Socket.IO

  • Intelligent Deal Filtering: Filter by price, rating, store, and category

  • Deal Comparison: Compare deals across multiple sources

  • MCP Protocol Integration: Full Model Context Protocol implementation with 6 specialized tools

  • Provider Pattern Architecture: Extensible design for adding new deal sources

  • TypeScript: Fully typed codebase with strict type checking

Related MCP server: Market FiyatΔ± MCP Server

Quick Start πŸš€

Prerequisites

  • Node.js 18+

  • npm or yarn

  • API keys for external services (optional, fallback to mock data)

Installation

# Clone the repository
git clone https://github.com/karthiksivaramms/bargainer-mcp-client.git
cd bargainer-mcp-client

# Install dependencies
npm install

# Build the project
npm run build

Usage

Web Chat Interface

# Start the web interface
npm run web

# Or with auto-reload for development
npm run dev:web

Then open http://localhost:3001 in your browser and start chatting!

MCP Server

# Start the MCP server
npm run dev

# Or run the built version
npm start

Demo & Testing

# Run interactive demo
npm run demo

# Test the server
npm run test:server

Available Commands πŸ’¬

Use these natural language commands in the chat interface:

  • Search deals: "Find laptop deals under $500"

  • Get top deals: "Show me today's top electronics deals"

  • Filter deals: "Gaming headphones under $100 with 4+ stars"

  • Deal details: "Tell me more about this iPhone deal"

  • Compare deals: "Compare iPad deals across sources"

  • List sources: "What deal sources are available?"

MCP Tools πŸ› οΈ

The server provides 6 specialized tools:

  1. search_deals - Search for deals by product name or keywords

  2. get_top_deals - Get trending deals from all sources

  3. filter_deals - Filter deals by price, rating, store, category

  4. get_deal_details - Get detailed information about specific deals

  5. compare_deals - Compare deals across multiple sources

  6. get_available_sources - List all configured deal sources

Architecture πŸ—οΈ

src/
β”œβ”€β”€ server.ts              # Main MCP server
β”œβ”€β”€ providers/             # Deal source providers
β”‚   β”œβ”€β”€ base.ts           # Base provider interface
β”‚   β”œβ”€β”€ slickdeals.ts     # Slickdeals API provider
β”‚   β”œβ”€β”€ rapidapi.ts       # RapidAPI marketplace provider
β”‚   └── webscraping.ts    # Web scraping provider
β”œβ”€β”€ services/
β”‚   └── aggregator.ts     # Deal aggregation service
└── types/                # TypeScript type definitions

ui/
β”œβ”€β”€ index.html            # Chat interface
β”œβ”€β”€ chat-interface.js     # Frontend JavaScript
└── server.js             # Express server with Socket.IO

test/                     # Test files
scripts/                  # Utility scripts

Contributing 🀝

Contributions are welcome! Please feel free to submit a Pull Request.

Development Setup

# Install dependencies
npm install

# Start development with auto-reload
npm run dev

# Start web interface with auto-reload
npm run dev:web

# Run linting
npm run lint

# Format code
npm run format

Adding New Deal Sources

  1. Create a new provider in src/providers/

  2. Extend BaseDealProvider

  3. Implement required methods

  4. Register in aggregator.ts

API Documentation πŸ“š

Deal Object Structure

interface Deal {
  id: string;
  title: string;
  price: number;
  originalPrice?: number;
  discount?: number;
  rating?: number;
  store: string;
  url: string;
  imageUrl?: string;
  description?: string;
  category?: string;
  source: string;
  timestamp: Date;
}

License πŸ“„

This project is licensed under the MIT License - see the LICENSE file for details.

Author πŸ‘¨β€πŸ’»

Karthik Sivaram M

Support πŸ’‘

If you have any questions or run into issues, please open an issue on GitHub.

Roadmap πŸ—ΊοΈ

  • More deal source integrations

  • Deal alerts and notifications

  • Price history tracking

  • Advanced filtering options

  • Mobile app version

  • Deal sharing features


Made with ❀️ for bargain hunters everywhere!

Available Tools

6 tools
compare_dealsC

Compare similar deals and find the best options

Inputs: deals (required).

filter_dealsC

Filter deals using advanced criteria

Inputs: deals (required), categories, stores, priceRange, +2 more.

get_available_sourcesB

Get list of available deal sources/providers

Inputs: no named parameters.

get_deal_detailsC

Get detailed information about a specific deal

Inputs: dealId (required), source.

get_top_dealsC

Get top/trending deals from all or specific sources

Inputs: limit, sources.

search_dealsC

Search for deals across multiple sources based on text query and filters

Inputs: query (required), category, minPrice, maxPrice, +6 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 6 tools

    Disambiguation4/5

    Most tools have distinct purposes, but 'search_deals' and 'filter_deals' could cause some confusion as both involve filtering criteria. The descriptions clarify that search is text-based with filters, while filter uses advanced criteria, but the boundary is slightly fuzzy. Other tools like 'compare_deals', 'get_deal_details', and 'get_top_deals' are clearly differentiated.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case, such as 'compare_deals', 'filter_deals', 'get_available_sources', 'get_deal_details', 'get_top_deals', and 'search_deals'. The verbs are descriptive and uniform, making the set predictable and easy to understand.

    Tool Count5/5

    With 6 tools, the server is well-scoped for a bargain/deal-finding domain. Each tool serves a specific function without redundancy, covering key operations like searching, filtering, comparing, and retrieving details. This count is appropriate and manageable for the intended purpose.

    Completeness4/5

    The tool set covers core deal-finding workflows, including discovery (search, filter, get top deals), comparison, and detailed viewing. A minor gap is the lack of tools for user-specific actions like saving deals or setting alerts, but the existing tools provide a solid foundation for agent interactions without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers