woolies-coles-mcp
by johnvouros
README.md
# Woolworths & Coles Integration
Search and compare products from Woolworths and Coles, two major Australian supermarket chains.
Available as **both an MCP server and a Claude Desktop plugin** - choose the option that works best for you!
## Features
- **Search Woolworths**: Find products, prices, and availability at Woolworths
- **Search Coles**: Find products, prices, and availability at Coles
- **Compare Prices**: Compare products between both stores with price analysis
- **Zero Dependencies**: Uses only Node.js built-in modules
## Installation Options
### Option 1: MCP Server (Recommended for Power Users)
Best for: Users who want a standalone service, multiple AI system integration, or need more control.
**Quick Install:**
1. Add to your Claude Desktop config (`~/.config/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"woolies-coles": {
"command": "node",
"args": ["/absolute/path/to/woolies-coles-mcp/index.mjs"]
}
}
}
```
2. Restart Claude Desktop
See [SETUP.md](SETUP.md) for detailed instructions.
### Option 2: Claude Desktop Plugin (Simpler)
Best for: Users who want easy installation with minimal configuration.
**Quick Install:**
1. Copy plugin files to your plugins directory:
```bash
mkdir -p ~/.claude/plugins/woolies-coles
cp plugin.mjs plugin-package.json ~/.claude/plugins/woolies-coles/
```
2. Restart Claude Desktop
See [PLUGIN_INSTALL.md](PLUGIN_INSTALL.md) for detailed instructions.
## Requirements
No installation required! Uses only Node.js built-in modules (Node.js 14+).
## Usage
Once installed (either as MCP server or plugin), you can ask Claude natural language questions like:
- "Search for milk at Woolworths"
- "What's the price of bread at Coles?"
- "Compare prices for coffee between Woolworths and Coles"
- "Show me organic products at Woolworths"
- "Find the cheapest olive oil between both stores"
Claude will automatically use the appropriate tool based on your request.
## Available Tools
### 1. search_woolworths
Search for products at Woolworths supermarket.
**Parameters:**
- `query` (string, required): Product search query
**Returns:** Product names, prices, availability, unit information, and product links
### 2. search_coles
Search for products at Coles supermarket.
**Parameters:**
- `query` (string, required): Product search query
**Returns:** Product names, prices, availability, unit information, and product links
### 3. compare_prices
Compare prices for a product between Woolworths and Coles.
**Parameters:**
- `query` (string, required): Product to compare
**Returns:** Results from both stores with average price comparison and analysis
## Comparison: MCP Server vs Plugin
| Feature | MCP Server | Plugin |
|---------|------------|--------|
| **Installation** | Config file | Copy to directory |
| **Process** | Separate process | In-process |
| **Debugging** | Full logs | Limited |
| **Flexibility** | High | Medium |
| **Ease of use** | Medium | High |
| **Best for** | Power users, developers | General users |
Both options provide the same functionality - choose based on your preference!
## Project Structure
```
woolies-coles-mcp/
├── index.mjs # MCP server implementation
├── plugin.mjs # Claude Desktop plugin implementation
├── plugin-package.json # Plugin metadata
├── test.mjs # Test script for MCP server
├── claude_desktop_config.example.json # Example MCP config
├── README.md # Main documentation (this file)
├── SETUP.md # Detailed MCP server setup
└── PLUGIN_INSTALL.md # Detailed plugin installation
```
## API Notes
This server attempts to query the public APIs of Woolworths and Coles. Note that:
- These APIs are not officially documented for third-party use
- API endpoints and response formats may change without notice
- Rate limiting may apply
- Some requests may require additional headers or authentication in the future
- The server uses only Node.js built-in modules (no external dependencies)
## Requirements
- Node.js 14+ (with ES modules support)
## License
MIT
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing