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.
- 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
- Node.js 18+
- npm or yarn
- API keys for external services (optional, fallback to mock data)
# 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
# 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!
# Start the MCP server
npm run dev
# Or run the built version
npm start
# Run interactive demo
npm run demo
# Test the server
npm run test:server
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?"
The server provides 6 specialized tools:
- search_deals - Search for deals by product name or keywords
- get_top_deals - Get trending deals from all sources
- filter_deals - Filter deals by price, rating, store, category
- get_deal_details - Get detailed information about specific deals
- compare_deals - Compare deals across multiple sources
- get_available_sources - List all configured deal sources
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
Contributions are welcome! Please feel free to submit a Pull Request.
# 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
- Create a new provider in
src/providers/
- Extend
BaseDealProvider
- Implement required methods
- Register in
aggregator.ts
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;
}
This project is licensed under the MIT License - see the LICENSE file for details.
Karthik Sivaram M
- GitHub: @karthiksivaramms
If you have any questions or run into issues, please open an issue on GitHub.
- 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!