NAME
MCP::Picnic - MCP Server for Picnic Supermarket API
VERSION
version 0.001
SYNOPSIS
# As a stdio MCP server (for Claude Desktop, etc.)
use MCP::Picnic;
MCP::Picnic->run_stdio;
# Or with the bundled script:
# mcp-picnic
# Set the environment variables:
export PICNIC_USER="you@email.de"
export PICNIC_PASS="your-password"
export PICNIC_COUNTRY="de" # or "nl"
DESCRIPTION
MCP::Picnic provides an MCP (Model Context Protocol) server that gives AI assistants such as Claude access to the Picnic supermarket API.
The server supports:
Product search
Cart management (add, remove, clear)
Viewing and selecting delivery time windows
Viewing the user profile
2FA authentication (interactive, driven through the AI assistant)
2FA AUTHENTICATION
Picnic often requires two-factor authentication via SMS. The MCP server handles this interactively:
- 1. On the first request, a login is attempted automatically.
- 2. If 2FA is required, an SMS is sent to your phone number.
- 3. The AI assistant asks you for the code.
- 4. You provide the code and the assistant verifies it.
- 5. All further requests work normally.
CLAUDE DESKTOP INTEGRATION
Add the following to your Claude Desktop MCP configuration:
{
"mcpServers": {
"picnic": {
"command": "mcp-picnic",
"env": {
"PICNIC_USER": "you@email.de",
"PICNIC_PASS": "your-password",
"PICNIC_COUNTRY": "de"
}
}
}
}
AVAILABLE TOOLS
verify_2fa
Verifies the 2FA SMS code.
Parameter: code (string, required)
search_products
Searches for products.
Parameter: query (string, required)
get_product_details
Gets details for a product.
Parameter: product_id (string, required)
get_suggestions
Gets search suggestions.
Parameter: term (string, required)
get_cart
Shows the current cart.
add_to_cart
Adds a product to the cart.
Parameter: product_id (string, required), count (integer, default: 1)
remove_from_cart
Removes a product from the cart.
Parameter: product_id (string, required), count (integer, default: 1)
clear_cart
Clears the cart.
get_delivery_slots
Shows available delivery time windows.
set_delivery_slot
Selects a delivery slot.
Parameter: slot_id (string, required)
get_user
Shows user information.
get_categories
Shows product categories.
Parameter: depth (integer, default: 0)
SEE ALSO
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-mcp-picnic/issues.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <torsten@raudss.us>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.