blinkit-mcp
<p align="center">
<img src="assets/logo.png" alt="Blinkit MCP Logo" width="120" height="120" style="border-radius:30px;">
</p>
<h1 align="center">Unofficial Blinkit MCP</h1>
<p align="center">
A Model Context Protocol (MCP) server that lets Claude Desktop browse, search, and order from Blinkit in real time.
</p>
<p align="center">
<a href="LICENSE">
<img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="MIT License">
</a>
<img src="https://img.shields.io/badge/python-3.12+-green.svg" alt="Python 3.12+">
<img src="https://img.shields.io/badge/MCP-Claude%20Desktop-purple.svg" alt="Claude MCP">
</p>
---
## ⨠What is Blinkit MCP?
**Blinkit MCP** is a plug-and-play MCP server that allows Claude Desktop to automate your grocery shopping on Blinkit.
Your AI can:
- š Search for products (groceries, electronics, etc.)
- š Add items to your cart
- š Manage delivery locations
- š³ Automate checkout and UPI payments
- š Login securely with phone and OTP
- š Review past orders and recurring buying patterns
No manual clicking required. Just ask Claude to buy milk.
---
## š¬ Quick Demo
https://github.com/user-attachments/assets/531f09ad-648a-4ee2-9271-5993ce637093
> š” *Ask Claude: "Buy milk from Blinkit"*
---
## š Quick Start (30 seconds)
1. **Install `uv`** (if you don't have it):
**macOS / Linux**
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
**Windows**
```powershell
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
```
2. **(Optional) Pre-install Browsers**
If you want to speed up the first run:
```bash
uvx playwright install chromium
# OR if you have Node.js:
# npx playwright install chromium
```
3. **Download the MCP bundle**
š [blinkit-mcp.mcpb](https://github.com/hereisSwapnil/blinkit-mcp/releases/download/v1.1.0/blinkit-mcp.mcpb)
4. **Double-click** the `.mcpb` file ā Claude Desktop installs it automatically.
5. **Open Claude Desktop** and start shopping.
---
## š„ Key Features
| Feature | Description |
|---------|-------------|
| š **Secure Auth** | Login via Phone Number & OTP (Session persisted locally) |
| š **Smart Search** | Find products by name and get pricing/details |
| š **Cart Management** | Add items, check cart status, and verify availability |
| š **Location** | Detect or manually set delivery location |
| š³ **Payment Automation** | **New!** Select saved UPI IDs or enter new ones automatically |
| š **Checkout Flow** | Handles address selection and ordering flow seamlessly |
---
## š¦ One-Click Installation (Recommended)
Download and install directly in Claude Desktop:
<p align="center">
<a href="https://github.com/hereisSwapnil/blinkit-mcp/releases/download/v1.1.0/blinkit-mcp.mcpb">
<img src="https://img.shields.io/badge/Download-blinkit--mcp.mcpb-orange?style=for-the-badge" alt="Download">
</a>
</p>
**Supports:** macOS ⢠Windows ⢠Linux
---
## š ļø Manual Installation
If you prefer to run from source:
1. **Clone and Run**:
```bash
git clone https://github.com/hereisSwapnil/blinkit-mcp.git
cd blinkit-mcp
# Install uv (if needed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install Python dependencies
uv sync
# Install Playwright browsers
uv run playwright install chromium
# Run the server
uv run main.py
```
2. **Configure Claude Desktop**:
Add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"blinkit-mcp": {
"command": "/usr/local/bin/uv",
"args": ["run", "main.py"],
"cwd": "/absolute/path/to/blinkit-mcp",
"env": {
"HEADLESS": "false"
}
}
}
}
```
*(Set `HEADLESS` to `false` to see the browser action, or `true` for background mode)*
## š§° Available MCP Tools
| Tool | Description |
|------|-------------|
| `check_login` | Check if currently logged in |
| `login` | Login with phone number |
| `enter_otp` | Verify login with OTP |
| `set_location` | Manually search and set delivery location |
| `search` | Search for products |
| `add_to_cart` | Add product to cart by index |
| `remove_from_cart` | Remove item from cart |
| `check_cart` | View cart contents |
| `checkout` | Proceed to checkout |
| `get_addresses` | Get list of saved addresses |
| `select_address` | Select a delivery address |
| `proceed_to_pay` | Proceed to payment page |
| `get_upi_ids` | List available UPI payment options |
| `select_upi_id` | Select a specific UPI ID for payment |
| `pay_now` | Click the final Pay Now button |
| `get_order_history` | Fetch recent orders (date, total, status, and items) in an LLM-friendly format |
---
## š¬ Example Queries
- *"Buy milk from Blinkit to my home and use my UPI for payment"*
- *"Order 2 packets of Maggi and pay via UPI"*
- *"Get me some chips, deliver to office, and checkout"*
---
## š Project Structure
```
blinkit-mcp/
āāā main.py # MCP server entry point
āāā src/
ā āāā auth/ # Authentication module
ā ā āāā service.py # Auth service implementation
ā āāā order/ # Order management module
ā ā āāā blinkit_order.py # Main order controller
ā ā āāā services/ # Domain services
ā ā āāā base.py # Base service class
ā ā āāā search.py # Search logic
ā ā āāā location.py # Location logic
ā ā āāā cart.py # Cart logic
ā ā āāā checkout.py # Checkout & Payment logic
ā ā āāā history.py # Order history logic
ā āāā server.py # MCP Tool definitions
āāā test/
ā āāā cli.py # CLI for testing independent of Claude
āāā README.md
```
---
## š License
Licensed under the [MIT License](LICENSE).
---
<b>Blinkit MCP turns Claude into your personal grocery assistant.</b>
</p>
---
## ā ļø Disclaimer
This project is an **experimental** proof of concept and is **not affiliated, associated, authorized, endorsed by, or in any way officially connected with Blinkit (Grofers India Private Limited)**, or any of its subsidiaries or its affiliates. The official Blinkit website can be found at [blinkit.com](https://blinkit.com).
## Star History
[](https://www.star-history.com/#hereisSwapnil/blinkit-mcp&type=date&legend=top-left)
---
TDQS
Scored across 15 tools
Several tools overlap around the checkout/payment flow (checkout, proceed_to_pay, select_payment_method, pay_now all 'click the proceed/pay button'), and address handling is split across set_location, get_addresses, and select_address. The descriptions repeatedly warn 'do not use X here, use Y instead,' which signals real ambiguity an agent could misstep on, though the warnings do mitigate it.
All names use snake_case and mostly follow a verb_noun or verb_verb pattern (get_order_history, add_to_cart, select_address). A few single-word/verb-only names (login, search, checkout) deviate slightly but remain readable and predictable.
15 tools is reasonable for a full e-commerce ordering lifecycle (auth, search, cart, address, checkout, payment). The multi-step checkout/payment segment is somewhat heavy with four separate tools, but each maps to a distinct UI action.
The surface covers the core ordering lifecycle: login/OTP, search, add/remove cart, address selection, checkout, and payment. Minor gaps like order tracking or quantity-update beyond add/remove exist, but the essential flow is complete.