Amazon Cart MCP Server
Allows AI assistants to search Amazon for products, add items to cart, view current cart contents, and check login status through browser automation.
Click on "Install 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., "@Amazon Cart MCP ServerSearch for a 4K monitor on Amazon"
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.
Amazon Cart MCP Server
Local MCP (Model Context Protocol) server that enables AI assistants to interact with your personal Amazon cart through browser automation. Works with Claude Desktop, Poke, and any MCP-compatible client.
⚠️ Important Disclaimer
This tool uses browser automation to interact with Amazon.com.
Users are solely responsible for ensuring their use complies with Amazon's Terms of Service
This project is for personal, educational use only - not for commercial automation or reselling
Use at your own risk - the authors assume no liability for any violations of Amazon's policies or consequences thereof
Not affiliated with Amazon - this is an independent, unofficial tool
Amazon may change their website or policies at any time, potentially breaking functionality
Excessive automation may result in account restrictions or bans
By using this software, you acknowledge and accept these risks.
Features
🔍 Search Amazon - Find products by search query
🛒 Add to Cart - Add items to your Amazon cart automatically
👀 View Cart - Check current cart contents and subtotal
🔐 Login Persistence - Session saved locally for seamless use
🌐 Secure Access - Bearer token authentication via ngrok tunnel
Quick Start
Prerequisites
Node.js v20 or higher
npm or yarn
ngrok account (free tier works)
Installation
Clone the repository:
git clone https://github.com/meimakes/amazon-mcp-server.git cd amazon-mcp-serverInstall dependencies:
npm installConfigure environment:
cp .env .env.local # Optional: keep your settings separateEdit
.envand set:AUTH_TOKEN- Generate a secure random token (required)HEADLESS=false- For first-time loginAMAZON_DOMAIN=amazon.com- Or your local Amazon domain
Build the project:
npm run buildStart the server:
npm startFirst-time login:
A Chrome browser window will open
Log into your Amazon account manually
Session will be saved in
./user-data/After logging in once, you can:
Stop the server (Ctrl+C)
Set
HEADLESS=truein.envRestart with headless mode
Expose via ngrok (in a separate terminal):
npm run tunnel # Note the HTTPS URL (e.g., https://abc123.ngrok.io)
Connecting to Poke
Copy your ngrok URL from the terminal
In Poke, add a custom MCP integration:
URL:
https://your-ngrok-url.ngrok.io/sseAPI Key: Your
AUTH_TOKENfrom.envType: MCP Server
Important: Always use the
/sseendpoint!Test the connection by asking Poke:
"What tools do you have?"
"Search Amazon for wireless mouse"
Connecting to Claude Desktop
Build the project:
npm run buildOpen Claude Desktop → Settings → Developer → Edit Config
Add to
mcpServers:
{
"mcpServers": {
"amazon-cart": {
"command": "node",
"args": ["/absolute/path/to/amazon-mcp-server/dist/server.js"],
"env": {
"AUTH_TOKEN": "your-token-here",
"HEADLESS": "true",
"AMAZON_DOMAIN": "amazon.com"
}
}
}
}Restart Claude Desktop
You should see the Amazon tools available in the tools menu (🔧)
First-time setup: Run the server once with
HEADLESS=falseto log into Amazon manually. After that, setHEADLESS=truefor Claude Desktop.
Available Tools
Tool | Description | Parameters |
| Search for products on Amazon |
|
| Add a product to cart |
|
| View current cart contents | None |
| Verify Amazon login status | None |
Architecture
┌─────────────────┐
│ Poke.com │ (Remote AI Assistant)
│ (Cloud) │
└────────┬────────┘
│ HTTPS
↓
┌─────────────────┐
│ ngrok │ (Secure Tunnel)
│ Public HTTPS │
└────────┬────────┘
│ Local
↓
┌─────────────────┐
│ MCP Server │ (Port 3000)
│ SSE + HTTP │
└────────┬────────┘
│
↓
┌─────────────────┐
│ Puppeteer │ (Browser Automation)
│ + Chrome │
│ (Persistent │
│ Session) │
└─────────────────┘Configuration
Environment Variables
Variable | Default | Description |
|
| Server port |
| required | Bearer token for authentication |
|
| Amazon domain (e.g., amazon.co.uk) |
|
| Run browser in headless mode |
|
| Chrome user data directory |
Example .env
PORT=3000
AUTH_TOKEN=a1b2c3d4-e5f6-4789-a012-3b4c5d6e7f8a
AMAZON_DOMAIN=amazon.com
HEADLESS=false
USER_DATA_DIR=./user-dataSecurity
⚠️ Important Security Considerations
AUTH_TOKEN Protection
Never commit
.envto Git (already in.gitignore)Use a cryptographically secure random token
Generate with:
openssl rand -hex 32
ngrok Security
Free tier URLs are public but unguessable
Consider ngrok's authentication features for extra security
Upgrade to ngrok paid plan for reserved domains and IP restrictions
Session Data
Login sessions stored in
./user-data/Contains cookies and authentication tokens
Never share or commit this directory
Already excluded via
.gitignore
Network Security
Server only accepts authenticated requests
All traffic through ngrok is HTTPS encrypted
Local server binds to localhost only
Browser Automation
Puppeteer runs with sandbox disabled (required for some systems)
Session isolation via Chrome user data directory
No data sent to third parties
Best Practices
✅ Use strong, unique AUTH_TOKEN
✅ Never share your ngrok URL publicly
✅ Regularly rotate AUTH_TOKEN
✅ Monitor server logs for suspicious activity
✅ Keep dependencies updated (
npm audit)✅ Use HEADLESS=true in production
⚠️ This is for personal use only - not production-ready for multi-user scenarios
Troubleshooting
Tools Not Showing in Poke
Restart the server
Delete and re-add the MCP connection in Poke
Check server logs for
tools/listrequestVerify ngrok tunnel is active
Items Not Added to Cart
Verify you're logged into Amazon:
Check the browser window (if visible)
Or ask Poke to run
check_login
If not logged in:
Set
HEADLESS=falseRestart server
Log in manually in the browser window
Connection Keeps Dropping
Normal behavior - Poke reconnects as needed
If persistent, check ngrok connection:
curl https://your-url.ngrok.io/health
Computer Sleep Mode
Server and ngrok pause when computer sleeps
Poke will reconnect automatically on wake
To prevent sleep: Run
caffeinatein a separate terminal (macOS)
Development
Project Structure
amazon-mcp/
├── src/
│ ├── server.ts # MCP server + SSE implementation
│ ├── amazon.ts # Amazon automation logic
│ ├── browser.ts # Puppeteer browser management
│ └── types.ts # TypeScript interfaces
├── dist/ # Compiled JavaScript (gitignored)
├── user-data/ # Chrome session data (gitignored)
├── .env # Environment config (gitignored)
└── package.jsonRunning in Development
npm run dev # Uses ts-node, no build requiredBuilding
npm run build # Compiles TypeScript to dist/Testing
Health Check
curl http://localhost:3000/healthExpected response:
{"status":"ok","server":"amazon-mcp-server"}Test SSE Connection
curl -H "Authorization: Bearer YOUR_TOKEN" \
http://localhost:3000/sseShould maintain an open connection with heartbeats.
Compliance Notes
This project is designed for personal, single-user use only. It is not intended for:
❌ Multi-tenant deployments
❌ Production SaaS applications
❌ SOC 2 Type II compliance scenarios
❌ HIPAA or other regulated data handling
❌ Commercial automation at scale
If you need enterprise-grade compliance, consider:
Implementing proper authentication (OAuth 2.0)
Adding audit logging
Using encrypted storage for sessions
Deploying to compliant infrastructure (AWS, GCP with compliance certifications)
Implementing rate limiting and abuse prevention
Contributing
Contributions welcome! Please:
Fork the repository
Create a feature branch
Make your changes
Submit a pull request
License
MIT License - see LICENSE file for details.
Support
🐛 Issues: GitHub Issues
📧 Contact: via GitHub
Author
Created by @meimakes
Note: Keep your computer awake while running the server. The ngrok tunnel and SSE connections are sensitive to network interruptions.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/meimakes/amazon-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server