A Model Context Protocol (MCP) server for interacting with oda.com
概览
A Model Context Protocol (MCP) server for interacting with oda.com If this project is just what you needed and/or has been helpful to you, please consider buying me a coffee ☕ This MCP server provides tools to programmatically interact with Oda's grocery shopping platform: - - Search for groceries with support for Norwegian terms - - Search, filter, and view recipe details - - View your saved lists, add or remove products, and import a whole list into the cart - - See your most frequently ordered products - - View cart contents and recommendations, add/remove items or set exact quantities, add recipe ingredients - - See upcoming delivery slots, prices and ordering deadlines (read-only) - - All operations available as CLI subcommands in addition to MCP tools - - Maintains login session across restarts Session data is stored by default in ~/.mcp-oda Running npx github:gbbirkisson/mcp-oda with no arguments prints help. The mcp subcommand starts the MCP server.
README
mcp-oda
A Model Context Protocol (MCP) server for interacting with oda.com
If this project is just what you needed and/or has been helpful to you, please consider buying me a coffee ☕
Table of contents
Features
This MCP server provides tools to programmatically interact with Oda’s grocery shopping platform:
- Search products - Search for groceries with support for Norwegian terms
- Browse recipes - Search, filter, and view recipe details
- Saved shopping lists - View your saved lists, add or remove products, and import a whole list into the cart
- Purchase history - See your most frequently ordered products
- Manage shopping cart - View cart contents and recommendations, add/remove items or set exact quantities, add recipe ingredients
- Delivery slots - See upcoming delivery slots, prices and ordering deadlines (read-only)
- CLI access - All operations available as CLI subcommands in addition to MCP tools
- Session persistence - Maintains login session across restarts
Installation
This project requires Node.js (v18+).
Usage
Initial Setup
Authenticate with your Oda account:
read -rsp "Oda password: " ODA_PASSWORD; printf '\n'
printf '%s' "$ODA_PASSWORD" | npx github:gbbirkisson/mcp-oda auth login --user [email protected] --pass-stdin
unset ODA_PASSWORD
Verify your login status:
npx github:gbbirkisson/mcp-oda auth user
[!NOTE] Session data is stored by default in
~/.mcp-oda
CLI Commands
Running npx github:gbbirkisson/mcp-oda with no arguments prints help. The mcp subcommand
starts the MCP server. All other operations are available as subcommands:
# Start the MCP server
npx github:gbbirkisson/mcp-oda mcp
# Products
npx github:gbbirkisson/mcp-oda product search melk
npx github:gbbirkisson/mcp-oda product search melk --page 2
npx github:gbbirkisson/mcp-oda product add 132
# Saved shopping lists
npx github:gbbirkisson/mcp-oda saved-list list
npx github:gbbirkisson/mcp-oda saved-list details 123
# Adds a product to a saved list; requires an explicit confirmation string
npx github:gbbirkisson/mcp-oda saved-list add-product 123 456 --confirmation "UPDATE SAVED LIST"
# Removes a product from a saved list; requires an explicit confirmation string
npx github:gbbirkisson/mcp-oda saved-list remove-product 123 456 --confirmation "UPDATE SAVED LIST"
# Adds every list item to the cart; requires an explicit confirmation string
npx github:gbbirkisson/mcp-oda saved-list add 123 --confirmation "ADD SAVED LIST TO CART"
# Purchase history
npx github:gbbirkisson/mcp-oda purchases frequent
npx github:gbbirkisson/mcp-oda purchases frequent --limit 10 --max-orders 50
# Cart
npx github:gbbirkisson/mcp-oda cart list
npx github:gbbirkisson/mcp-oda cart recommendations --limit 10 --exclude-in-cart
npx github:gbbirkisson/mcp-oda cart remove 132
# Sets the total quantity of a product; 0 removes it
npx github:gbbirkisson/mcp-oda cart set 132 --count 3
# Clears the whole cart; requires an explicit confirmation string
npx github:gbbirkisson/mcp-oda cart clear --confirmation "CLEAR CART"
# Recipes
npx github:gbbirkisson/mcp-oda recipe search pizza
npx github:gbbirkisson/mcp-oda recipe details 123
npx github:gbbirkisson/mcp-oda recipe add 123 --portions 4
npx github:gbbirkisson/mcp-oda recipe remove 123
# Delivery slots and ordering deadlines (read-only)
npx github:gbbirkisson/mcp-oda delivery slots
# Authentication
read -rsp "Oda password: " ODA_PASSWORD; printf '\n'
printf '%s' "$ODA_PASSWORD" | npx github:gbbirkisson/mcp-oda auth login --user [email protected] --pass-stdin
unset ODA_PASSWORD
npx github:gbbirkisson/mcp-oda auth logout
npx github:gbbirkisson/mcp-oda auth user
# Maintenance
npx github:gbbirkisson/mcp-oda clean
Configuration
Claude Desktop
Claude Desktop configuration example:
{
"mcpServers": {
"oda": {
"command": "npx",
"args": ["-y", "github:gbbirkisson/mcp-oda", "mcp"]
}
}
}
Claude Code
/plugin marketplace add gbbirkisson/mcp-oda
/plugin install mcp-oda@mcp-oda
Gemini CLI
gemini extensions install https://github.com/gbbirkisson/mcp-oda
Troubleshooting
Session not persisting
If your login session is not persisting between runs:
- Try running with the
cleansubcommand to remove old session data:npx github:gbbirkisson/mcp-oda clean - Re-authenticate:
read -rsp "Oda password: " ODA_PASSWORD; printf '\n' printf '%s' "$ODA_PASSWORD" | npx github:gbbirkisson/mcp-oda auth login --user [email protected] --pass-stdin unset ODA_PASSWORD - Make sure you’re using the same
--data-dirfor all commands if you’ve overridden the default.
安装
npx -y github:gbbirkisson/mcp-oda mcp配置
{
"mcpServers": {
"oda": {
"command": "npx",
"args": ["-y", "github:gbbirkisson/mcp-oda", "mcp"]
}
}
}
